我正在测试php中的空函数,但它不起作用,因为无论条件是假还是真,都可以访问if语句。
<?php
if(empty($_POST) === false){
echo 'text';
}
?>
<form action="index.php" method="post">
Username:
<input type="text" name="text">
<input type="submit" name="submit">
</form>
即使输入为空,也会执行回声。
为什么?
答案 0 :(得分:4)
这是因为$_POST
收到form
内有input
值的POST请求后,永远不会为空。
如果你是var_dump
,你会看到:
textarray(2) { ["text"]=> string(0) "" ["submit"]=> string(12) "Submit Query" }
即使您的submit input
已发送(因为它是form
的一部分)。即使没有收到任何内容,$_POST
也会返回一个空集数组,因此isset
都不是检查POST失败或成功的好选择。
您需要评估特定字段,例如$_POST['text']
,以取代空白。
答案 1 :(得分:1)
if(isset $_POST["text"] && $_POST["text"] !=null)
另外,尝试使用==而不是=== ==将转换$ _POST的值,所以如果它是NULL,它将被评估为false而不是