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

时间:2019-01-09 00:59:16

标签: php html mysql session

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

2 个答案:

答案 0 :(得分:1)

如果我对您的理解正确,那么您想检查是否已使用用户名设置了会话,对吗?

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

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

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

答案 1 :(得分: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>';
}