提交表单时,isset无效

时间:2011-12-02 20:48:41

标签: php forms validation

我想在提交表单时验证表单字段,我使用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;
 }

?>

4 个答案:

答案 0 :(得分:3)

您要使用的是empty

function validateForm(){
     return !empty($_POST['fname']);
}

修改已删除isset(),因为没有必要。感谢@Julian。

答案 1 :(得分:2)

当您输入输入表单并且输入文本字段为空时,它不是NULLisset检查NULL是否为NULL。如果不是NULL则返回true,如果empty()则返回false。

我会使用{{1}}检查它是否为空。它检查传递给它的变量是否为空。如果为空则返回true,如果非空则返回false。

答案 2 :(得分:1)

使用

isset($_POST['fname']) && !empty($_POST['fname'])

如果不确定$_POST内是什么,只需打印

var_dump($_POST)

答案 3 :(得分:1)

即使该字段没有值,也会设置值“”(长度为0的字符串)。如果要检查是否存在可用的值,请使用empty()或检查字符串的长度。