doutouman6245 2019-02-02 11:31
浏览 65
已采纳

电子邮件验证PHP中的一个条件和多个else语句

I will try to put email validation with have more than one case. First(if):email is required. Second(if): invalid format of email. Third(else): Email is exist(Active User) Fourth(else): Email is in approve(Admin is not approved account yet so its still in request table) Fifth(else):Everything goes well,post the data into database.

I try to solve this by if-else statement but in last two case I do not have any condition its just have to pass that validation.I also try switch statement, but it's not go after the first case:

Here is my validation:

   if(empty($_POST['email']))
     {
         $email=$_POST['email'];
         $emailError="Email is required";
         $error=true;
     }
   else
     {
          $email=$_POST['email'];
          if(!filter_var($email, FILTER_VALIDATE_EMAIL)) 
          {
            $emailError = "Invalid email format";
            $error=true;
          }
          else
              {
                 $sql="SELECT * FROM user WHERE email='$email'";
                 $res=mysqli_query($db,$sql);
                 if (mysqli_num_rows($res) > 0)
                 {
                  $emailError = "Email already exists";
                  $error=true;
                 }
               }

         else 
           {
             $sl="SELECT * FROM request WHERE email='$email'";
             $ress=mysqli_query($db,$sl);
             if (mysqli_num_rows($ress) > 0)
             {
              $emailError = "Your Accout is in process";
              $error=true;
             }
           }
      }   
  • 写回答

3条回答 默认 最新

  • douyong1886 2019-02-02 13:24
    关注

    ok I put the condition for $error & now its working fine. remember that you have to put $exist=""; in starting. here is my code:

       if(empty($_POST['email']))
       {
        $email=$_POST['email'];
        $emailError="Email is required";
        $error=true;
       }
       else {
              $email=$_POST['email'];
              if(!filter_var($email, FILTER_VALIDATE_EMAIL))
             {
               $emailError = "Invalid email format";
               $error=true;
             }
             else
                 {
                    $sql="SELECT * FROM user WHERE email='$email'";
                    $res=mysqli_query($db,$sql);
                    if (mysqli_num_rows($res) > 0)
                    {
                     $emailError = "Email already exists";
                     $error=true;
                     $exist=1;
                    }
                }
                if($exist!=1)
                {
                  $sl="SELECT * FROM request WHERE email='$email'";
                  $ress=mysqli_query($db,$sl);
                  if (mysqli_num_rows($ress) > 0)
                  {
                   $emailError = "Your Accout is in process";
                   $error=true;
                  }
                }
    
            }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧