检查PHP中是否至少有一个字段不为空
我有以下字段:检查PHP中是否至少有一个字段不为空,php,Php,我有以下字段:weight、size\u 1、size\u 2、size\u 3 我如何检查这些字段中的至少一个是否已填充 如果低于最小值,则应输出“错误,至少填写一个” 我可以用长if语句来检查是否为空,但它们是更好的方法吗 这些字段来自表单提交,因此获取它们的方式如下: $_POST['weight']; $_POST['size_1']; $_POST['size_2']; $_POST['size_3']; 假设它们都在一个数组中: function check_for_input($
weight、size\u 1、size\u 2、size\u 3
我如何检查这些字段中的至少一个是否已填充
如果低于最小值,则应输出“错误,至少填写一个”
我可以用长if语句来检查是否为空,但它们是更好的方法吗
这些字段来自表单提交,因此获取它们的方式如下:
$_POST['weight'];
$_POST['size_1'];
$_POST['size_2'];
$_POST['size_3'];
假设它们都在一个数组中:
function check_for_input($array){
foreach($array as $value){
if($value != "") return true;
}
return false;
}
function check_for_input($array, $filter){
foreach($array as $key=>$value){
if($value != "" && in_array($key, $filter)){
return true;
}
}
return false;
}
像这样使用它:
if(check_for_input($_POST)){ /*...*/ }
else { die("Error, fill one at least"); }
$filter = array('weight', 'size_1', 'size_2', 'size_3', /*...*/);
if(check_for_input($_POST, $filter)){ /*...*/ }
else { die("Error, fill one at least"); }
使用筛选器更新:
假设它们都在一个数组中:
function check_for_input($array){
foreach($array as $value){
if($value != "") return true;
}
return false;
}
function check_for_input($array, $filter){
foreach($array as $key=>$value){
if($value != "" && in_array($key, $filter)){
return true;
}
}
return false;
}
像这样使用它:
if(check_for_input($_POST)){ /*...*/ }
else { die("Error, fill one at least"); }
$filter = array('weight', 'size_1', 'size_2', 'size_3', /*...*/);
if(check_for_input($_POST, $filter)){ /*...*/ }
else { die("Error, fill one at least"); }
假设它们都在一个数组中:
function check_for_input($array){
foreach($array as $value){
if($value != "") return true;
}
return false;
}
function check_for_input($array, $filter){
foreach($array as $key=>$value){
if($value != "" && in_array($key, $filter)){
return true;
}
}
return false;
}
像这样使用它:
if(check_for_input($_POST)){ /*...*/ }
else { die("Error, fill one at least"); }
$filter = array('weight', 'size_1', 'size_2', 'size_3', /*...*/);
if(check_for_input($_POST, $filter)){ /*...*/ }
else { die("Error, fill one at least"); }
使用筛选器更新:
假设它们都在一个数组中:
function check_for_input($array){
foreach($array as $value){
if($value != "") return true;
}
return false;
}
function check_for_input($array, $filter){
foreach($array as $key=>$value){
if($value != "" && in_array($key, $filter)){
return true;
}
}
return false;
}
像这样使用它:
if(check_for_input($_POST)){ /*...*/ }
else { die("Error, fill one at least"); }
$filter = array('weight', 'size_1', 'size_2', 'size_3', /*...*/);
if(check_for_input($_POST, $filter)){ /*...*/ }
else { die("Error, fill one at least"); }
我可以看到你发了$\u的帖子。。我在$\u POST中还有其他字段/变量,它们总是用一些值填充,所以它不能正常工作,因为如果语句总是true(因为它们总是被填充),那么
null
看起来很糟糕,它应该是!==“”
。还有,如果一个脚本kiddie发送size_4=bla,但所有字段都是空的,会发生什么情况?@yi_H——OP只希望至少有一个字段被填充是的,我就是这么说的。。。你的过滤方法至少阻止了这一点。唉,我做到了,是什么让你认为我没有做到?您是否已修复了null
?你不应该宣传不好的做法,因为有那么多人信任你的信誉点。我可以看到你发了$\u帖子。。我在$\u POST中还有其他字段/变量,它们总是用一些值填充,所以它不能正常工作,因为如果语句总是true(因为它们总是被填充),那么null
看起来很糟糕,它应该是!==“”
。还有,如果一个脚本kiddie发送size_4=bla,但所有字段都是空的,会发生什么情况?@yi_H——OP只希望至少有一个字段被填充是的,我就是这么说的。。。你的过滤方法至少阻止了这一点。唉,我做到了,是什么让你认为我没有做到?您是否已修复了null
?你不应该宣传不良行为,因为人们信任你有那么多的信誉点。