你好我已经创建了一个带有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.我不确定天气所有变量提交或任何其他问题任何一个请????????????
答案 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>";
}
}
?>