如何使用数组来检查表单验证?
这是我的代码:
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$array = array($name,$email,$message);
switch($array[]) {
case empty($array[0]):
error = "name";
break;
case empty($array[1]):
error = "email";
break;
case empty($array[2]):
error = "message";
}
然后,我想写代码来得到这个结果:
如果name为空:"请填写姓名"
如果email为空:"请填写您的电子邮件"
如果name和email为空:"请填写您的姓名和电子邮箱"
如果name和email和message为空:
如果你想连接你的消息,那么最好使用if语句:
$error = "Please fill in: ";
if (empty($array[0]))
$error .= "name ";
if (empty($array[1]))
$error .= "email ";
if (empty($array[2]))
$error .= "message ";
.=
将把该字符串与现有字符串连接。
试试下面这个语法正确的解决方案:
$empty = array();
$fields = array('name', 'email', 'message');
foreach ($fields as $key => $value){
if(empty($_POST[$value])) $empty[] = $value;
}
$error_msg = '';
$count = count($empty);
$cnct = ', ';
if ($count > 0){
$error_msg = 'Please fill in your ';
}
foreach ($empty as $key => $value){
if ($key == $count - 2){
$cnct = ' and ';
}elseif($key == $count - 1){
$cnct = '.';
}
$error_msg .= $value.$cnct;
}
您可以直接尝试:
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$error="Please fill in your ";
$array = array('name'=>$name,'email'=>$email,'message'=>$message);
foreach($array as $key=>$value){
if(empty($value)){
$error.=','.$key;
}
}
不能在switch
块的case
语句中使用变量表达式
在包括php
在内的许多语言中,开关大小写必须具有常量表达式。因此,诸如变量或函数调用之类的东西不起作用。
您最好使用conditionals
。
你的代码也缺少$
符号变量error
。
这样做:
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$array = array($name,$email,$message);
$error="Please fill in your ";
if(empty($array[0])){
$error.= "'nname";
}
if(empty($array[1])){
$error.="'nemail";
};
if(empty($array[2])){
$error.= "'nmessage";
}
echo $error;
你应该简单地写:
$error = "Please fill in: ";
if (empty($array[0]))
$error.= "name ";
if (empty($array[1]))
$error.= "email ";
if (empty($array[2]))
$error.= "message";