如果设置 $_POST

2022-08-30 07:24:12

我在一个页面上有一个表单,该表单提交到另一个页面。在那里,它检查输入是否已填充。如果是这样,那就做点什么,如果它没有被填满,做点别的事情。我不明白为什么它总是说它已经设置,即使我发送了一个空的表单。缺少或错误是什么?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";
}

答案 1

大多数表单输入始终是设置的,即使没有填满,因此您还必须检查空隙。

由于 已经检查了两者,因此您可以使用以下命令:!empty()

if (!empty($_POST["mail"])) {
    echo "Yes, mail is set";    
} else {  
    echo "No, mail is not set";
}

答案 2

请代替 使用 。isset 返回 true,因为数组是超全局的并且始终存在(set)。!emptyisset$_POST$_POST

或更好地使用$_SERVER['REQUEST_METHOD'] == 'POST'


推荐