我在一个页面上有一个表单,提交到另一个页面.在那里,它检查输入邮件是否已填满.如果是,那么做一些事情,如果没有填补,做其他事情.我不明白为什么它总是说它被设置,即使我发送一个空表格.缺少什么或错了什么?
step2.php:
<form name="new user" method="post" action="step2_check.php">
<input type="text" name="mail"/> <br />
<input type="password" name="password"/><br />
<input type="submit" value="continue"/>
</form>
Run Code Online (Sandbox Code Playgroud)
step2_check:
if (isset($_POST["mail"])) {
echo "Yes, mail is set";
} else {
echo "N0, mail is not set";
}
Run Code Online (Sandbox Code Playgroud)
oop*_*ase 215
把它改成这个:
if (!empty($_POST["mail"])) {
echo "Yes, mail is set";
} else {
echo "No, mail is not set";
}
Run Code Online (Sandbox Code Playgroud)
所以!empty()
总是设置,但其内容可能是空的.
由于!empty()
已经检查了值是否已设置,您还可以使用此版本:
if (!empty($_POST["mail"])) {
echo "Yes, mail is set";
} else {
echo "No, mail is not set";
}
Run Code Online (Sandbox Code Playgroud)
Nem*_*den 23
用!empty
而不是isset
.isset返回true,$_POST
因为$_POST
array是超全局的并且始终存在(set).
或者更好用 $_SERVER['REQUEST_METHOD'] == 'POST'