PHP在POST方法中不起作用

时间:2014-09-18 06:55:39

标签: php post isset

我尝试使用post方法制作表单,并且我想检查字段是否填充了isset()。但即使字段为空,isset也会返回true。

这是一个简化的代码:(页面名称:test.php,post方法指向自身)     

if (isset($_POST['test'])) {
    echo 'field set';
}   

?>

<form method="post" action="test.php">
    <input type="text" name="test"/>
    <input type="submit" value="Submit"/>
</form>

当你提交时,即使你没有在&#34; test&#34;中输入任何内容,它总是会回复“字段集”。输入

感谢您的回答!

4 个答案:

答案 0 :(得分:6)

因此,请检查$_POST['test']是否为空,请尝试使用

if (isset($_POST['test']) && trim($_POST['test']) != '') {
    echo 'field set';
} 

您也可以使用empty,但Note that "0" is also "empty"及其更好地使用trim输入来删除空格。另一种方法是使用strlen

检查输入的长度
if (isset($_POST['test']) && trim(strlen($_POST['test'])) > 0) {
    echo 'field set';
}

答案 1 :(得分:6)

empty()提交表单$_POST['test']后,isset()尝试使用empty()检查空白原因,即使它是空白的。所以需要查看if (!empty($_POST['test'])) { echo 'field set'; }

0
检查empty()

时,

{{1}}为空/空白

答案 2 :(得分:1)

您可以使用此代码使用empty() method.try执行此操作。

ex:echo !empty($_POST['test']) ? "field set" : "";

答案 3 :(得分:0)

它会回显你设置了字段,因为你正在检查的是test是否存在数组键isset()。只要您的表单中有一个名为test的字段,它就会创建一个空键,从而导致它被设置。

您最喜欢的是查看密钥是否已设置,以及该密钥是否为空。

你可以这样做:

if( isset( $key['test'] ) && $key['test'] !== "" ){
    //Do something
}