在检查59个变量时验证失败但与两个一起工作

时间:2013-04-11 04:04:37

标签: php html

你好我已经创建了一个带有59文本框和复选框的表单我希望将这些框通过表单传递给php页面进行验证但是这里失败的是代码:

if(isset($_POST['REID'], $_POST['REName'],...more variables..

{

   $REID = preg_replace("[^A-Za-z0-9-]", "", $_POST['REID']);
   $REName = preg_replace("[^A-Za-z0-9-]", "", $_POST['REName']); ... more variables..

   if(empty($REID) or empty($REName) ... more variables..
   {
    echo 'oop's some value missing';
   }
   else
   {
     Insertion code goes in here.
    }


}
else
{
   echo 'The variables not set';
}

我使用这个语法有两个文本框它可以工作但不与59.我不确定天气所有变量提交或任何其他问题任何一个请????????????

1 个答案:

答案 0 :(得分:1)

  

如果提供了多个参数,则只有在设置了所有参数后,isset()才会返回TRUE。评估从左到右进行,一旦遇到未设置的变量就停止。

那来自PHP Manual。因此,如果未设置这59个变量中的任何一个,则if将失败。这是预期的行为。您可以尝试发出print_r($_POST);命令来查看这59个变量是否存在。这是在条件语句中使用如此多的变量的一个缺点,它变得非常难以调试。您可以将所有这些名称放在一个数组中,然后遍历它,这比在每个新条件下反复编写这59个名称更容易

修改

例如,你可以在这些行中尝试一些东西

<?php
$check=array();
$check[]="REID";
$check[]="REName";
$check[]="ThirdVar";
$check[]="FourthVar";


foreach($check as $index)
{
    if(!isset($_POST[$index]))
    {
    echo "POST does not have a value for $index <br>";
    }
}


?>