验证我的表单字段不为空时遇到问题.我以为我过去曾使用过isset但我在下面遇到问题.我知道我可以用==""做到这一点,但想以这种方式弄明白.
if(isset($_POST['submit'])){
$error= false;
if (isset($_POST['name'])){$name=$_POST['name'];}else{$error=true; $error_message="enter a name"; echo "no name";};
if(!$error){
//SUBMIT TO DATABASE
}else{ echo $error_message;
}
}
Run Code Online (Sandbox Code Playgroud)
但我不断收到error_message未设置的错误.
Isset()只测试变量是否存在.在POST表单中几乎总是如此(即使变量为空).为了确保它们不是,请使用empty()测试.这是代码:
if(count($_POST) > 0){
$error = false;
if (!empty($_POST['name']))
$name = $_POST['name'];
else{
$error = true;
$error_message = "enter a name";
echo "no name";
}
if(!$error)
//SUBMIT TO DATABASE
else
echo $error_message;
}
Run Code Online (Sandbox Code Playgroud)
在你的第一个后面你也有分号的语法错误.注意,设置为0的变量被检测为空.检查http://php.net/manual/en/function.empty.php