如何检查会话是否已启动并重定向用户? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查会话是否已启动并重定向用户? [重复]相关的知识,希望对你有一定的参考价值。

我正在尝试创建一个php片段,用于检查用户是否在他们到达我的索引页面时使用Sessions进行了注册,如果他们没有,我会将它们重定向到注册页面。

我已经在用户注册后启动了会话,但我似乎无法检查我的索引页面以检查会话是否已启动。

注册PHP:

    session_start();

    //create connection

    //check for errors in the form

    if(!$error) {

        //insert values from form to sql database

        $_SESSION['login_user'] = $username;

        //email user


    }
?>

的index.php

<?PHP

    include("signupphp.php");

    if(!$username) {

        echo '<script>location.href = "https://google.com";</script>';

    }

 ?>

理想情况下,我希望当用户注册时,它会创建会话,每当他们转到index.php时,它会检查他们是否已注册,如果没有,则会将其重定向到注册页面。

答案

如果我正确理解你,你想检查会话是否已使用用户名设置,是否正确?

在这种情况下,您正在检查错误的变量。

if( !isset($_SESSION["login_user"]) ){
    header("Location: https://google.com");
    exit();
}

这应该可以解决问题。我还将您的重定向更改为PHP重定向。

另一答案

会话将在您网站的页面之间传播。所以,在注册时:

$username = $_POST['username']//The username could be obtained from a login form
sesion_start();
$_SESSION['login_user'] = $username;
$_SESSION['valid'] = true;

将保持$username可用于index.php

session_start()
if( ! $_SESSION['valid']){
    echo '<script>location.href = "https://google.com";</script>';
}

以上是关于如何检查会话是否已启动并重定向用户? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如果会话过期,如果没有活动并重定向登录页面,则烧瓶注销

会话超时后如何将用户重定向到自定义网页?

检查身份验证状态并重定向用户

如何在 django 中查找会话是不是已过期

如何使用 JSTL 检查会话中是不是存在已登录用户?

不活动后重定向用户,但保持会话活动