我有一個PHP登錄腳本,我想用ajax執行。如果PHP腳本成功,用戶可以訪問頁面,但根據我使用的ajax請求,header
位置也會加載到$('.logresult') div
中,我怎麼做才能在成功時進入header
位置,並顯示錯誤信息如果不是,則爲$('logresult')
。下面是我的代碼:PHP登錄腳本與Ajax加載標題在同一頁
Ajax請求
$('#submit_log').click(function(e) {
e.preventDefault();
var data = $('#loginForm').serialize(),
form = $('#loginForm');
$.post($(form).attr("action"), data, function(data) {
$('.logresult').html(data);
})
});
PHP登錄腳本
session_start();
require_once ("db.php");
$db = new MyDB();
if(isset($_POST['log_name']) && isset($_POST['log_password'])) {
$username = preg_replace('#[^A-Za-z0-9]#i', '', $_POST['log_name']);
$password = preg_replace('#[^A-Za-z0-9]#i', '', $_POST['log_password']);
$sql = $db->prepare("SELECT * FROM users WHERE uname = ?");
$sql->bindParam(1, $username, SQLITE3_TEXT);
$ret = $sql->execute();
$count = $db->prepare("SELECT COUNT(*) as COUNT FROM users WHERE uname = ?");
$count->bindParam(1, $password, SQLITE3_TEXT);
$count_ret = $count->execute();
if (count($count_ret) == 1)
{
while ($row = $ret->fetchArray(SQLITE3_ASSOC))
{
$id = $row['userid'];
$regas = $row['regas'];
$uemail = $row['uemail'];
$pword = $row['pword'];
if (password_verify($password, $pword))
{
$_SESSION['log_id'] = $id;
$_SESSION['log_name'] = $username;
$_SESSION['regas'] = $regas;
$_SESSION['uemail'] = $uemail;
header("Location: index.php?log_id=$id");
exit();
}
else
{
echo "Information incorrect";
exit();
}
}
}
}
我猜問題是$('.logresult').html(data);
但真的不知道如何解決這一問題(我一般對ajax是新的)。謝謝
爲什麼使用ajax提交數據如果您使用標題重定向 – DestinatioN