我有一個登錄頁面,其中我寫了JQuery代碼來發出ajax發佈請求,然後調用另一個php腳本來驗證用戶憑證。如果憑證正確,用戶將被重定向到php腳本本身的主頁。但是,當用戶給他的憑據,並點擊登錄,他不會被重定向,直到頁面重新加載。這是我面臨的奇怪問題。請幫我解決它。用戶沒有得到重定向,直到頁面刷新
這裏是我的jQuery代碼:
<script>
$(document).ready(function() {
$('#loginButton').click(function()
{
var username = $("#inputUsername").val();
var password = $("#inputPassword").val();
var dataString = 'inputUsername=' + username + '&inputPassword=' + password;
if ($.trim(username).length > 0 && $.trim(password).length > 0)
{
$.ajax({
type: "POST",
url: "ajaxLogin.php",
data: dataString,
cache: false,
beforeSend: function() {
$("#loginButton").val('Connecting...');
},
});
}
return false;
});
});
</script>
這是HTML登錄表單
<form>
<div class="form-group center-block">
<input type="text" class="form-control" id="inputUsername" placeholder="Username">
</div>
<div class="form-group">
<input type="password" class="form-control" id="inputPassword" placeholder="Password">
</div>
<button type="submit" class="btn btn-login center-block" id="loginButton">Login</button>
<div id="error"></div>
</form>
PHP代碼:
<?php
include("db.php");
session_start();
$username=mysqli_real_escape_string($db,$_POST['inputUsername']);
$password=mysqli_real_escape_string($db,$_POST['inputPassword']);
$result=mysqli_query($db,"SELECT user_id FROM user_info WHERE username='".$username."' and password='".$password."'");
$count=mysqli_num_rows($result);
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
// If result matched $username and $password, table row must be 1 row
if($count==1)
{
$_SESSION['login_user']=$row['user_id']; //Storing user session value.
header('Location: home.html');
}
?>
在此先感謝
您的PHP代碼是從AJAX請求中調用的,所以重定向發送到該回復,而不是頁面本身 – JohnKiller
也,您在db中存儲普通密碼,請參閱本指南:http://php.net /manual/en/faq.passwords.php – JohnKiller
...以及如果有人在用戶或密碼字段中輸入「&」會怎樣?您的查詢字符串將中斷。使用'$ .post'並將數組傳遞給第二個參數 – JohnKiller