我正在按照教程进行操作,但是如果单击提交按钮时未在名称字段中填写任何值,我将得到一个不正确的TRUE结果。 第一个测试按预期方式工作,但是第二个和第三个测试在应返回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>
答案 0 :(得分:1)
empty
执行所说的操作,检查是否为空(如果还不存在,则为空)
isset
检查变量是否存在,是否已设置
filter_has_var
与isset几乎相同
在文件顶部放置一个print_r($_POST)
,您将会了解:)
答案 1 :(得分:0)
您需要检查该值以查看其是否为空:
if(isset($_POST['name']) && !empty($_POST['name'])) {