我在一个页面上有一个表单,该表单提交到另一个页面。在那里,它检查输入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:20:26
From php.net,isset
如果var存在并且值不是NULL,则
返回TRUE,否则返回FALSE。
空格被认为是集合。您需要使用empty()来检查所有null选项。
https://stackoverflow.com/questions/13045279
复制相似问题