![](/img/trans.png)
[英]How to redirect the user to the home page with jQuery after successful login
[英]Redirect to home page after successful login using AJAX
我有一個登錄頁面,該頁面運行正常,但在設置SESSION后不會重定向。 如果需要,我希望我的Ajax顯示錯誤,如果設置了SESSION,則希望重定向。
這是我的代碼:
AJAX:
<script>
function loginUser(){
$.ajax({
type:"post",
url:"process.php",
data:$("#formsubmit").serialize(),
success:function(data){
if($session == true){
window.location.href="http://www.example.com";
}
$("#result").html(data);
}
});
}
</script>
PHP:
if (sha1($passcheck) === $record['password']){
$_SESSION['user']= $_POST['username'];
mysqli_query($db_con, $updateIP);
if($record['admin'] == 1){
$_SESSION['admin1'] = $_POST['username'];
}
}else{
echo "<font color='red'>Username or password was invalid.</font>";
}
if(isset($_SESSION['user'])){
$session = true;
echo $session;
}else{
$session = false;
echo $session;
}
?>
我沒有包括整個PHP腳本或整個HTML頁面,因為其余部分沒有用。
看來問題在於您正嘗試在JavaScript中使用php變量的名稱來訪問php響應。
success:function(data){
if($session == true){
window.location.href="http://www.example.com";
}
$("#result").html(data);
}
變量$session
未在success
函數的范圍內定義,因此if($session == true)
將始終返回false,因為$session
將是undefined
。
您的PHP代碼回聲將使用data
參數傳遞到success
函數中。 因為你的PHP代碼只是呼應0或者1,你將要更新的if
行if(data == 1)
或者甚至可能只是if (data)
,因為如果數據變量只是0應該返回false ,如果為1,則應返回true。
在PHP中,將變量設置為true
,然后回顯它,則得到1
如果將其設置為false
,則得到0
。
您需要將$session
設置$session
字符串,而不是布爾值。
if(isset($_SESSION['user'])){
$session = 'true';
echo $session;
}else{
$session = 'false';
echo $session;
}
還要改變
if($session == 'true'){
window.location.href="http://www.example.com";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.