Isset在提交表单时不起作用


isset isn't working when submitting a form

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

当你做一个输入表单,输入文本字段是空的,它不是NULLisset检查是否为NULL。如果不是NULL则返回true,如果不是NULL则返回false。

我会检查它是否为空,使用empty()。它检查传递给它的变量是否为空。

即使该字段没有值,也会设置为"(长度为0的字符串)的值。如果您想检查是否有可用的值,可以使用empty()或检查字符串的长度

use

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

如果不确定$_POST里面有什么,就打印出来

var_dump($_POST)