[英]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.