-1

您好,我创建了一个包含 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。我不确定所有变量都在提交的天气或任何其他问题吗????????????

4

1 回答 1

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>";
    }
}


?>
于 2013-04-11T04:07:56.727 回答