Search code examples
phpvalidationif-statementnested-loops

email validation one condition & more than one else statement in PHP


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;
             }
           }
      }   

Solution

  • 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;
                  }
                }
    
            }