如何动态检查 $_POST 变量是否为 NULL
How to Check $_POST Variables for NULL dynamically
如何遍历表单发送的 $_POST
个变量以确保其中 none 个变量为空或 NULL。例如,如果一个表单有 15 个字段并被提交。如何检查这 15 个字段中的每一个是否实际包含 NULL 以外的内容。我有多个表单,但有一个验证器 class,所以我无法在 post 数组中指定需要为每个表单检查的变量。
我尝试使用 foreach 但似乎清除了 $_POST
数组或出于某种原因损坏了它?下面给出了无效代码。如果我 var_dump($_POST)
在我使用 foreach 之前和在 foreach 之后我得到一个空数组,但之前的值是正确的。所以我认为 foreach 是不可能的。有什么想法吗?
foreach($_POST as $key => $value)
{
if ($value==NULL)
header ("Location: index.php")
}
试试这个
foreach($_POST as $key => $value)
{
if (empty($value))
header ("Location: index.php")
}
你可以这样做:
foreach($_POST as $key => $value)
{
$valid = 15;
if(empty($value))
$valid --;
if($valid == 15)
{
//validation ok
}
else //This means at least one of the 15 fields is empty
header ("Location: index.php")
}
第二种方案:在你看来最好用array
,比如
<input type="text" name="Form[name]" />
<input type="text" name="Form[family]" />
...
<input type="text" name="Form[address]" />
在这种情况下,$_POST['Form']
是一个数组,您可以访问它的元素。例如 $_POST['Form']['name']
等于第一个文本框的值。
所以你的 foreach
应该是这样的:
foreach($_POST['Form'] as $key => $value)
...
您不会在 $_POST 数组中得到任何 NULL 值。如果表单提交成功并且 HTML 表单未被篡改,那么所有字段至少都会有一些值,否则它们将是空的 ''。不要使用 PHP 的 empty() 函数,因为它甚至将 0 和其他一些值视为空值,而这实际上可能是该值。我相信这是编写代码的正确方法:
foreach ($_POST as $key => $value) {
if ($value === '')
header("Location: index.php");
}
littlibex 给出的代码有效谢谢
foreach ($_POST as $key => $value) {
if ($value === '')
header("Location: index.php");
}
虽然我只用了两个等号。
如何遍历表单发送的 $_POST
个变量以确保其中 none 个变量为空或 NULL。例如,如果一个表单有 15 个字段并被提交。如何检查这 15 个字段中的每一个是否实际包含 NULL 以外的内容。我有多个表单,但有一个验证器 class,所以我无法在 post 数组中指定需要为每个表单检查的变量。
我尝试使用 foreach 但似乎清除了 $_POST
数组或出于某种原因损坏了它?下面给出了无效代码。如果我 var_dump($_POST)
在我使用 foreach 之前和在 foreach 之后我得到一个空数组,但之前的值是正确的。所以我认为 foreach 是不可能的。有什么想法吗?
foreach($_POST as $key => $value)
{
if ($value==NULL)
header ("Location: index.php")
}
试试这个
foreach($_POST as $key => $value)
{
if (empty($value))
header ("Location: index.php")
}
你可以这样做:
foreach($_POST as $key => $value)
{
$valid = 15;
if(empty($value))
$valid --;
if($valid == 15)
{
//validation ok
}
else //This means at least one of the 15 fields is empty
header ("Location: index.php")
}
第二种方案:在你看来最好用array
,比如
<input type="text" name="Form[name]" />
<input type="text" name="Form[family]" />
...
<input type="text" name="Form[address]" />
在这种情况下,$_POST['Form']
是一个数组,您可以访问它的元素。例如 $_POST['Form']['name']
等于第一个文本框的值。
所以你的 foreach
应该是这样的:
foreach($_POST['Form'] as $key => $value)
...
您不会在 $_POST 数组中得到任何 NULL 值。如果表单提交成功并且 HTML 表单未被篡改,那么所有字段至少都会有一些值,否则它们将是空的 ''。不要使用 PHP 的 empty() 函数,因为它甚至将 0 和其他一些值视为空值,而这实际上可能是该值。我相信这是编写代码的正确方法:
foreach ($_POST as $key => $value) {
if ($value === '')
header("Location: index.php");
}
littlibex 给出的代码有效谢谢
foreach ($_POST as $key => $value) {
if ($value === '')
header("Location: index.php");
}
虽然我只用了两个等号。