测试 PHP POST 空值 - 意外结果 - 我错过了什么?



我正在遵循教程,但是如果我单击提交按钮而不在名称字段中填写任何值,则不断得到一个正确的结果,该结果应该不正确。 第一个测试按预期工作,但第二个和第三个测试在应该返回 FALSE 时一直返回 TRUE(将输入留空(。

我错过了什么,不理解或做错了什么? 这应该很简单。 任何帮助或建议不胜感激。

这是非常简单的脚本:

<?php
//This one works correctly
if(!empty($_POST['name'])) {
echo "There is input here <br>";
} else {
echo "You have not input any info yet. <br>";
}
//This returns true even if I leave the field empty
if(isset($_POST['name'])) {
echo "A name has been input <br>";
} else {
echo "You have not input your name yet. <br>";
}
//This returns true also when it shouldn't
if(filter_has_var(INPUT_POST, 'name')) {
echo $_POST['name'] . ' <- Name Input!<br>';
} else {
echo 'No Name Input.';
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p><label for="name">Name:</label> <input type="text" name="name" 
id="name" size="30" value=""></p>
<p><input type="submit" value="SEND"></p>
</form>

empty按照所说的去做,检查是否为空(如果不存在,则为空(

isset检查 var 是否存在,如果设置了任何内容,则否

filter_has_var与isset几乎相同

在文件顶部放置一个print_r($_POST),您将了解:)

您需要检查该值以查看它是否为空:

if(isset($_POST['name']) && !empty($_POST['name'])) {

http://php.net/manual/en/function.empty.php

相关内容

最新更新