2016-11-05 119 views
0

我试图检查在登录表单中密码是否有错,但电子邮件确实显示在数据库中。 这是我的AJAX/JS代码:检查密码是否不正确PHP和ajax

$.post('li-check-email.php', {'liEmail' : $liEmail, 'liPassword' : $liPassword}, function(liData) { 
     if (liData.trim() == 'existspwno') 
     { 
      liValidForm = false; 
      $logInSubmit.css('top', '72px'); 
      $liBox.css('height', '235px'); 
      $liBox.css('top', '36%'); 
      $liErrorText.text('The password entered is incorrect.'); 
     } 
     elseif (liData.trim() == 'existsno') 
     { 
      liValidForm = false; 
      $logInSubmit.css('top', '72px'); 
      $liBox.css('height', '235px'); 
      $liBox.css('top', '36%'); 
      $liErrorText.text('The email entered is not currently registered.'); 
     }; 
    }); 

这里是我的PHP代码:

<?php include("dbconnect.php") ?> 
<?php 
    $liEmail = mysqli_real_escape_string ($_POST['liEmail']) 
    $liPassword = mysqli_real_escape_string ($_POST['liPassword']) 
    $sqlEmail = "SELECT email FROM users WHERE email = '$liEmail'"; 
    $sqlPassword = "SELECT * FROM users WHERE email = '$liEmail' AND password = '$liPassword'"; 
    $selectEmail = mysqli_query($connection, $sqlEmail); 
    $selectPassword = mysqli_query($connection, $sqlPassword); 

    if (mysqli_num_rows($selectPassword) = 0) 
    { 
     echo "existspwno"; 
    } 
    else if (mysqli_num_rows($selectEmail) = 0) 
    { 
     echo "existsno"; 
    } 
?> 

我进入数据库,不正确的密码的电子邮件,但JS错误消息不是出现。

+0

你可以把你的代码上的jsfiddle? –

+0

它不会工作,你必须使用JQuery来验证字段中的值然后通过ajax发送到服务器,以便可以进行检查 –

+0

阅读文档。你正在使用'mysqli_num_rows()'错误。也=不是==。为什么你的环境没有显示错误,或者你甚至检查了? –

回答

0

试试这个,这是我的Jquery Ajax代码

$("#login").click(function() 
     { 
      var username = $("#username").val(); 
      var password = $("#password").val(); 

      $("#login").html("Authenticating...").attr("disabled", true); 

      if(username == "") 
       { 
        $("#username").addClass("error").focus(); 
        $("#login").html("Start Managing").attr("disabled", false); 
        $("#error-message").html("Username Cannot Be Left Blank...").addClass("error-message"); 
       } 
      if(password == "") 
       { 
        $("#password").addClass("error").focus(); 
        $("#login").html("Start Managing").attr("disabled", false); 
        $("#error-message").html("Password Cannot Be Left Blank...").addClass("error-message"); 
       } 
      if(username == "" && password == "") 
       { 
        $("#username").addClass("error").focus(); 
        $("#password").addClass("error"); 
        $("#login").html("Start Managing").attr("disabled", false); 
        $("#error-message").html("Please Enter Username & Password...").addClass("error-message"); 
       } 

      if(username != "" && password != "") 
       { 
        $.ajax({ 
          url: 'check.php', 
          type: 'POST', 
          dataType: 'html', 
          data: {username: username, password: password}, 
         }) 
         .done(function(resp) 
          { 
           if(resp == 0) 
            { 
             $("#password").addClass("error").focus(); 
             $("#error-message").html("Wrong Password For Username : "+username).addClass("warning-message"); 
             $("#login").html("Start Managing").attr("disabled", false); 
            } 
           else if(resp == "other") 
            { 
             $("#error-message").html("Please Contact The Admin!").addClass("error-message"); 
             $("#login").html("Start Managing").attr("disabled", false); 
            } 
           else if(resp == 1) 
            { 
             $("#username").addClass("success"); 
             $("#password").addClass("success"); 
             $("#error-message").text("Redirecting To Dashboard Now..").addClass("success-flash"); 
             $("#login").html("Authorized Successfully...").attr("disabled", true); 
             location.replace("dashboard.php"); 
            } 
           else 
            { 
             console.log(resp); 
            } 
          }) 
         .fail(function() 
          { 
           console.log("error"); 
          }); 
       } 
     }); 

而在PHP端,这是我的代码:

$query = "SELECT password FROM site_handlers WHERE username = '".$username."' OR email = '".$username."' OR mobile = '".$username."' AND password = '".$password."' "; 
        $connection = $this->establish_connection(); 
        $result = $connection->query($query); 
        $connection->close(); 
        if($result->num_rows > 0) 
         { 
          $pass = $result->fetch_object()->password; 

          if($password === $pass) 
           { 
            return 1; 
           } 
          else 
           { 
            return 0; 
           } 
         } 
        else 
         { 
          return "other"; 
         } 

下面是代码的工作example

登录详细信息

用户名:demoadmin

密码:密码