带有OR运算符的IF语句不起作用


if($action == "send"){
$_POST['name'] =        $name ;
$_POST['email'] =       $email ;
$_POST['phone'] =       $phone  ;

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

//无论我做什么,都只显示$msg。

//也试过了

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

我想做的是一个通过电子邮件向我发送数据的表格,我希望所有字段都能填写,所以也许我写if语句的方式不对。如果我之前没有好好解释的话,我很抱歉。

您的代码为:

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

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

很肯定你不是这个意思。您想要:

如果姓名不为空,AND电子邮件不为空;AND电话不为空

使用&&而不是||,它应该可以正常工作!

我想你被这里涉及的所有负面因素弄糊涂了。我怀疑你想要的是:

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

(在我看来(最好写为:

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

相关内容

  • 没有找到相关文章

最新更新