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

问题描述 投票:0回答:2

我正在尝试创建一个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时,它会检查他们是否已注册,如果没有,则会将其重定向到注册页面。

php html mysql session
2个回答
1
投票

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

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

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

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


0
投票

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

$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>';
}
© www.soinside.com 2019 - 2024. All rights reserved.