2017-04-08 2 views
-1

Wenn ich mein Formular normal an PHP über action = "" sende, funktioniert es. Aber wenn ich mit AJAX einreiche, meldet es "ILD" ... Ungültige Protokollierungsdetails. Was mache ich bitte falsch?Ajax Empfangen von falschen Daten, aber PHP funktioniert einwandfrei

** Dies ist meine Form **

<form action="" method="post" onsubmit="return do_signIn()"> 
         Username: 
         <input id="#user" type="text" class="form-control" placeholder="Username" name="username" /> 
         Password: 
         <input id="#pass" type="password" class="form-control" placeholder="Password" name="password" /> 
         <br /> 
         <input id="login" type="submit" class="btn btn-danger" value="Login" name="login"/> <span><a href="#"><i class="fa fa-lock"></i> Forget Password?</a></span> 
         <br /><br /> 
         <p id="error-area"></p> 
        </form> 

** Unten ist mein AJAX JQUERY **

<script type="text/javascript"> 
     function do_signIn() { 
      var username = $("#user").val(); 
      var password = $("#pass").val(); 
      var login = $("#login").val(); 
      if(username!="" && password!=""){ 
       $("#error-area").html("<i class='fa fa-spinner fa-spin'></i> Loading..."); 
       $.ajax 
      ({ 
      type:'post', 
      url:'b-sign-in.php', 
      data:{ 
        do_signIn:"b-sign-in", 
        username:username, 
        password:password, 
        login:login, 
      }, 
        success:function(response) { 
      if(response=="VA"){ 
        alert("Verify Your Account" + response); 
        //window.location.href=""; 
      }else if(response=="SUCCESS"){ 
        alert("Success! You are In"); 
        //window.location.href=""; 
      }else if(response=="ELI"){ 
        alert("Error Loggin In"); 
        //window.location.href=""; 
      }else if(response=="ILD"){ 
        alert(response); 
        //window.location.href=""; 
      }else{ 
      $("#error-area").html("Something Went Wrong"); 
      alert(response); 
      //$("#error-area").slideUp(5000); 
      } 
      } 
      }); 
      }else{ 
      $("#error-area").html("Please fill all fileds!"); 
      //$("#error-area").slideUp(5000); 
      }  
      return false; 
      } 
</script> 

und ** Hier ist mein PHP **

if(isset($_POST['login']) && $_POST['login']=="Login"){  
     //check user input 
     $username = sanitizeMySQL($con, $_POST['username']); 
     $password = sanitizeMySQL($con, $_POST['password']); 

     //harsh the password 
     //Harsh the password 
     $harshQuery = "SELECT info_value FROM b_info WHERE info_name = 'siteHarsh'"; 
     $harshRun = mysqli_query($con, $harshQuery); 
     $harshRow = mysqli_num_rows($harshRun); 
     if(!$harshRow || $harshRow > 1 || $harshRow < 1){ 
      echo "error"; // Show An unexpected error occured 
      exit(); 
     }else{ 
      $passHarsh = mysqli_fetch_assoc($harshRun); 
      $harsh = $passHarsh['info_value']; 
      $correctPassword = md5($harsh . $password . $harsh); 
     } 

     $run = " 
        SELECT * FROM b_user 
        WHERE user_name = '$username' 
        AND user_password = '$correctPassword' 
       "; 
     $result = mysqli_query($con, $run); 
     $rowno = mysqli_num_rows($result); 

     //Check if detail match in db 
     if($rowno == 1){ 
      $row = mysqli_fetch_array($result); 
      $_SESSION['loggeduser'] = TRUE; 
      $_SESSION['username'] = $row['user_name']; 
      $_SESSION['email'] = $row['user_email']; 

      if($row['user_activation'] == 0){ 
       echo "VA"; //Verify Your Account By Entering a Valid Phone Number 
       exit(); 
      }else if($row['user_activation'] == 1){ 
       echo "SUCCESS"; 
       exit(); 
      } 
      else{ 
       echo "ELI"; //Error Logging In 
       exit(); 
      }   
     } 
     else { 
      echo "ILD"; //Invalid Login Details 
      exit(); 
     } 
//When No Post of Signup or SignIn is discovered 
}else { 
    header("Location:". SITE_HOME); 
} 
+0

einige grundlegende Debuggen Sie und melden Sie sich an Browser-Konsole Debugging-Ausgabe. Überprüfen Sie auch tatsächliche Anfrage in Browser-Dev Tools-Netzwerk, um zu sehen, dass was gesendet wird, was erwartet wird – charlietfl

Antwort

0

vor, sollten Sie nicht die Formularelemente wie folgt verwenden:

Sie id schreiben muss = "user" nicht id = "# user". Sie konnten diesen Typ auf Javascript nicht erhalten Wert. dies falsch:

<input id="#user" type="text" class="form-control" placeholder="Username" name="username" /> 

dies richtig:

<input id="user" type="text" class="form-control" placeholder="Username" name="username" /> 
+0

Vielen Dank für diese Beobachtung. Deshalb ist es sehr gut, mit einem Team zu arbeiten. Ich habe das für ein paar Stunden nicht gesehen. Ich habe nicht einmal geglaubt, dass ich so einen dummen Fehler machen kann. Vielen Dank. Du hast meinen Tag gerettet –

3

Ihre Eingabe-IDs in Ihrer HTML-Form sind # Benutzername und # Passwort. Entfernen Sie die Hashtags und es wird gut funktionieren.

+0

Wo sprichst du über liebe @Morosko? Wo sind die Eingabe-IDs, von denen du sprichst? Zeilen was von welchen der Skripte? –

Verwandte Themen