检查所有表单域是否为空

时间:2012-06-19 10:39:48

标签: php

我添加了一个检查程序,以确保表单中的所有字段都在提交表单时包含数据。

if(     (   isset($_POST['name'] == "Contact")  )
    && (    isset($_POST['company'] == "Company Name")  )
    && (    isset($_POST['address'] == "Address")   )
    && (    isset($_POST['turnover'] == "Approx. Turnover") )
    && (    isset($_POST['employees'] == "No. Of Employees")    ) 
    && (    isset($_POST['contact'] == "Contact Number")    )  
  )
    {
    //nothing has changed and we fail the form
    $_SESSION['failed'] == true;
}
else{

我收到以下错误:

  

解析错误:语法错误,意外T_IS_EQUAL,期待','或')'

有人能看出问题所在吗? 此外,这会检查所有帖子值是否包含数据?

感谢。

6 个答案:

答案 0 :(得分:2)

if(isset($_POST['name']) == "Contact") 

应该是

if(isset($_POST['name']) && $_POST['name'] == "Contact") 

(如果您需要||

,也可以使用OR

此外,它不会检查它是否有值。它仅检查是否设置了变量。 使用== ''empty()来检查它是否有值。

$_SESSION['failed'] == true;

应该是

$_SESSION['failed'] = true;

==用于比较,=用于作业

答案 1 :(得分:1)

if(   
   (isset($_POST["name"]) && $_POST["name"] == "Contact")&& 
   (    isset($_POST['company']) && $_POST["Company Name"] == "Company Name") && 
   (    isset($_POST['address']) && $_POST["Address"] == "Address")   && 
   (    isset($_POST['turnover']) && $_POST["Approx. Turnover"] == "Approx. Turnover") && 
   (    isset($_POST['employees'])&&  $_POST["No. Of Employees"] == "No. Of Employees")    && 
    (    isset($_POST['contact']) && $_POST["Contact Number"] == "Contact Number")  
    ){
    $_SESSION["failed"]=TRUE;
    }

你忘了关闭isset()并在$ _SESSION的行中你必须用=

分配

答案 2 :(得分:1)

函数issethttp://www.php.net/manual/function.isset.php)用于检查您的变量是否已定义。要检查是否输入了值,您应该使用以下内容:

if(
    empty($_POST['name']) || $_POST['name'] == "Contact"
    || empty($_POST['company']) || $_POST['company'] == "Company Name"
)
{
    $_SESSION['failed'] = true;
}

答案 3 :(得分:1)

我认为,从逻辑上讲,您应该使用OR运算符

检查空值和默认值
if(     empty($_POST['name']) ||  $_POST['name'] == "Contact"  
||     empty($_POST['company']) ||  $_POST['company']  == "Company Name"
||     empty($_POST['address']) ||  $_POST['address']  == "Address"
||     empty($_POST['turnover']) ||  $_POST['turnover']  == "Approx. Turnover"
||    empty($_POST['employees']) ||  $_POST['employees']  == "No. Of Employees"
||    empty($_POST['contact']) ||  $_POST['contact']  == "Contact Number"


 )

 {
    //nothing has changed and we fail the form
    $_SESSION['failed'] = true;
}
else{

答案 4 :(得分:0)

if(empty($_POST['name']) || ......)

然后会议失败。

答案 5 :(得分:0)

你也可以设置一个你期望的数组,并在POST数组和期望的数组之间做一个差异,如果有任何差异,那么失败...... 也就是说,如果你有硬编码的检查值...但似乎你想要检查值而不仅仅是键,所以它应该符合你的需要。