检查是否设置了所有$ _POST值的一些默认标准。我知道你可以做到以下几点:
if(isset($_POST['name']) && isset($_POST['username']))
但是当你遇到大型表格时会发生什么?他们会继续重复,直到通过['key']设置所有表单输入?
答案 0 :(得分:0)
你也可以写:
<?php
if (isset($_POST) && $_POST != NULL ){
foreach ($_POST as $key => $value) {
// perform validation of each item
}
?>
这是一个更详细的例子:
<?php
if (isset($_POST) && $_POST != NULL) {
$clean = array();
foreach ($_POST as $key => $value) {
switch($key)
{
case "a":
if (ctype_digit($value)){
$clean[$key] = $value;
} break;
case "b":
if ( ctype_alpha($value)){
$clean[$key] = $value;
} break;
case "c":
if ( ctype_alnum($value)){
$clean[$key] = $value;
} break;
case "d":
if (ctype_punct($value)){
$clean[$key] = $value;
} break;
default: echo $value, " is invalid data\n";
}
}
var_dump($clean);
}
?>
因此,如果您的表单中包含输入字段a,b,c,d,并且有人欺骗了您的表单并添加了字段e,则前面的代码将不接受字段e中的值。
答案 1 :(得分:0)
您可以使用此功能:
if(!array_filter($_POST)) {
//echo somthing to user to fill the form
}
array_filter迭代数组中的每个值,并将它们传递给回调函数。如果回调函数返回true,则将数组中的当前值返回到结果数组中。数组键被保留。