我在一个页面上有一个表单,该表单提交到另一个页面。在那里,它检查输入mail
是否已填充。如果是这样,那么做一些事情,如果它没有填满,做一些其他的事情。我不明白为什么它总是说设置好了,即使我发送了一个空的表单。丢失或错误的是什么?
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>
step2_check.php
if (isset($_POST["mail"])) {
echo "Yes, mail is set";
} else {
echo "N0, mail is not set";
}
发布于 2012-10-24 16:19:23
大多数表单输入总是被设置的,即使没有填满,所以你也必须检查是否为空。
由于!empty()
已经对这两种情况都进行了检查,因此可以使用以下命令:
if (!empty($_POST["mail"])) {
echo "Yes, mail is set";
} else {
echo "No, mail is not set";
}
发布于 2012-10-24 16:18:43
使用!empty
而不是isset
。对于$_POST
,isset返回true,因为$_POST
数组是超全局数组,且始终存在(set)。
或者更好地使用$_SERVER['REQUEST_METHOD'] == 'POST'
发布于 2012-10-24 16:19:21
如果发送的表单为空,则仍将发送$_POST['mail']
,但值为空。要检查该字段是否为空,您需要检查
if(isset($_POST["mail"]) && trim($_POST["mail"]) != "") { .. }
https://stackoverflow.com/questions/13045279
复制相似问题