繁体   English   中英

使用AJAX成功登录后重定向到主页

[英]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,你将要更新的ifif(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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM