无法使用ajax成功登录网页


Not able to get successful login in web page using ajax

这是代码尽管在控制台中进行了调试,但我无法获得成功登录的消息,而直接使用username&密码在浏览器中直接工作是完美的

我得到的输出是"登录信息不正确。请重试"。

<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<script src="/_js/jquery-2.1.3.min.js"></script>
<script>
$(document).ready(function() {
$('#login').submit(function() {
var formData = $(this).serialize();
$.post('login.php',formData,processData).error('ouch');
function processData(data) {
      console.log(data==='pass');
    if (data==='pass') {
       $('.main').html('<p>You have successfully logged in!</p>');
    } else {
       if ($('#fail').length === 0) {
         $('#formwrapper').prepend('<p id="fail">Incorrect login information. Please try again</p>');
      }
    }
  } // end processData
return false;
  }); // end submit
}); // end ready
</script>
</head>
<body>
<div class="wrapper">
<div class="header">
    <p class="logo">Demo LOGIn</p>
</div>
  <div id="content">
    <div class="main">
        <h1>Login</h1>
        <div id="formwrapper">
        <form method="POST" action="../_php/login.php" id="login">
<p>
    <label for="Username">Username:</label>
    <input type="text" name="Username" id="Username">
</p>
<p>
    <label for="Password">Password: </label>
    <input type="text" name="Password" id="Password">
</p>
<p>
    <input type="submit" name="button" id="button" value="Submit" >
 </p>
 </form>
 </div>
    </div>
 </div>
 </div>
 </body>
 </html>

这是php文件

 $Username = mysqli_real_escape_string($con,$_POST['Password']);
 $Password = mysqli_real_escape_string($con,$_POST['Username']);
$result = mysqli_query($con,"SELECT Password from Use_Pass WHERE     Username='$Username'");
 $count=mysqli_num_rows($result);
 $row=mysqli_fetch_array($result,MYSQLI_ASSOC);
 // If result matched $myusername and $mypassword, table row must be 1 row
if($count==1)
{
echo 'pass';
}
else {
echo 'fail';
}

mysqli_close($con); 
?>  

更新答案:

<script>
$(document).ready(function()
 {
 $('#login').submit(function()
  {
    var formData = $(this).serialize();
    $.post('login.php', $("#login").serialize(), function(response)
      {
        if ($.trim(response) == 'pass') {
          $('.main').html('<p>You have successfully logged in!</p>');
        } else {
          if ($('#fail').length === 0) {
            $('#formwrapper').prepend('<p id="fail">Incorrect login information. Please try again</p>');
          }
        }
      }
    );
  }
 ); // end submit
  }
); // end ready
</script>

请使用此更新的代码,确保正确传递url。我希望这会有所帮助。

在您的PHP文件中,看起来您正试图获得一个完全为$Username的用户名。您需要将它连接起来,以获得变量而不是字符串本身。

$result = mysqli_query($con,"SELECT Password from Use_Pass WHERE Username='".$Username."');