我正在构建一个表单(有趣),显然那些可能会变得乏味,因为我坐在这里编写验证函数,我想知道......
比如说我有3个字段* (姓名,姓氏,年龄) *
变量是
$fname = $_POST['name'];
$lname = $POST['lname'];
$age = $_POST['age'];
并说我想检查空箱,id
if(empty($fname) || empty($lname) || empty($age)){
//do something
}
有没有办法让这个更易于管理?因为现在说,而不是形式中的3个字段,我有100个...它变得非常不守规矩
那么有没有办法检查大众?
答案 0 :(得分:2)
$required_fields = array("name", "address", "phone", "email");
foreach ($require_fields as $field) {
if (!strlen($_POST[$field])) {
echo "$field cannot be empty";
}
}
编辑: 你可以通过
获得$ _POST数组foreach ($_POST as $key => $name) {
$required_fields[] = "$key=$name";
}
答案 1 :(得分:1)
if(empty($_POST)){..}else{...}
将为您提供结果,具体取决于如果设置了多个值;或者根本没有设置任何值。类似于True / False。
但是,您必须不为“提交按钮”本身包含value=''
,否则,它将始终为您提供真实结果。因为$_POST
全局,所以也会检查提交按钮的值。
或者,您可以从查询中扣除一个值。您可以选择按var_dump($_POST)
如果你想检查,“至少一个字段不为空”,那么,
if(count($_POST) !=0){
echo ' at least one value is set';}
else {echo 'no value is set';}
将检查,如果至少有一个项目提交。
答案 2 :(得分:1)
如果你想全部检查它们,可以按照以下方式行事。
if(!empty($_POST)){
foreach($_POST as $key => $val){
if(empty($val)){
// An empty field exists. Your action here.
}
}
}
虽然值得注意的是,如果你的页面上有复选框没有勾选,那么空的$ _POST条目将不会被发回,它根本就不存在。
因此,您需要使用if语句检查复选框。
例如,复选框名称为“同意”
if(!isset($_POST['agree'])){
// Checkbox not ticked.
}
答案 3 :(得分:0)
检查每个帖子密钥
if(isset($_POST) && count($_POST)!=0){ foreach($_POST as $key=>$val){ if(empty($key)){ /* do something */ } } }
答案 4 :(得分:0)
顺便说一句。如果你这样做
$fname = $_POST['name']
并且该字段不是您将获得的格式
注意:未定义的索引......
更好地使用
$fname = !empty($_POST['name']) ? $_POST['name'] : '';