我想在提交表单时验证表单字段,我使用isset()
来检查字段是否有值。我面临的问题是,如果字段的值不为!!!!!,则返回true
这里是HTML代码
<form action="handler.php" method="post">
<label>userName: </label><input type="text" name="fname" /><br/>
</form>
下面是PHP代码
<?php error_reporting(E_ALL);
if(validateForm()){?>
Welcome <?php echo $_POST["fname"]; ?>.<br />
}
function validateForm(){
$empty=false;
$empty=isset($_POST['fname'])?'true':'false';
echo 'empty>>>>'.$empty;
return $empty;
}
?>
您要使用的是empty
:
function validateForm(){
return !empty($_POST['fname']);
}
edit:删除isset()
,因为它不是必需的。感谢@Julian
当你做一个输入表单,输入文本字段是空的,它不是NULL
。isset
检查是否为NULL
。如果不是NULL
则返回true,如果不是NULL
则返回false。
我会检查它是否为空,使用empty()
。它检查传递给它的变量是否为空。
即使该字段没有值,也会设置为"(长度为0的字符串)的值。如果您想检查是否有可用的值,可以使用empty()
或检查字符串的长度
use
isset($_POST['fname']) && !empty($_POST['fname'])
如果不确定$_POST
里面有什么,就打印出来
var_dump($_POST)