2014-05-01 39 views
-4
if($action == "send"){ 
$_POST['name'] =  $name ; 
$_POST['email'] =  $email ; 
$_POST['phone'] =  $phone ; 


    if(!empty($name) || !empty($email) || !empty($phone)){ 

    ..... 
} else { 

    $msg = 'All fields required'; 

} 

//无论我只显示$味精。IF运算符不正常运行

//已经尝试过,太

if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_POST['phone'])){ 
    .... 
    } 

什么即时试图做的是,给我发电子邮件数据的形式,我希望所有的字段来填充,所以也许我写的if语句错误的方法。 对不起,如果我没有解释得很好。

+0

你有没有打印$ _ POST,你肯定它具有值? – sunshinejr

+0

尝试做一个print_r($ _ POST)来查看post全局变量里面的内容,然后看看你的if是否应该导致'true'。也不应该你的测试是用&&代替||。 ||没有意义。 – Nazgul

+0

如果没有更多信息,我们无法回答您的问题。这个if语句和你的逻辑公式有问题,所以它来自它上面的代码。 – Gwenc37

回答

1

你的代码读取:

如果名称不为空,或电子邮件不为空,或电话不是空

这意味着,只要至少其中一个他们是非空的,那么你很好!

很确定这不是你的意思。你想:

如果名称不是空的,邮件是不是空的,手机是不是空

使用&&,而不是||,它应该只是工作!

+0

也试过这个,没有工作 – Iury

+0

'$ _POST ['name'] = $ name;'是错误的。去掉它。如果有的话你可以做'$ name = $ _POST ['name']',但是我个人更喜欢避免“镜像”用户输入变量,因为它提醒用户输入,因此比平时更不安全。 –

+0

我之前尝试过,并没有工作,但现在我尝试了您给我的建议:使用&&代替||。现在工作得很好,感谢队友你救了我的生命hehehehe – Iury

1

我想你会对这里涉及的所有消极因素感到困惑。我怀疑你以后是:

if (!(empty($name) || empty($email) || empty($phone))) { 
    ... 
} else { 
    $msg = 'All fields required'; 
} 

这将更好的写法(在我看来)为:

if (empty($name) || empty($email) || empty($phone)) { 
    $msg = 'All fields required'; 
} else { 
    ... 
} 
+0

也试过这个,没有工作 – Iury

0
if($name=='' || $email=='' || $phone=='') 
{ 
    $msg='All fields required'; 
} 
else 
{ 
    .............. 
}