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

t8e9dugd  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(357)

这个问题在这里已经有答案了

如何跨页面使用存储和会话变量(8个答案)
引用-这个错误在php中是什么意思(36个答案)
去年关门了。
我试图创建一个php代码片段,检查用户到达我的索引页时是否使用了会话进行了注册,如果没有,我会将他们重定向到注册页。
我已经在用户注册后启动了会话,但我似乎无法在索引页上检查会话是否已启动。
注册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

    }
?>

索引.php

<?PHP

    include("signupphp.php");

    if(!$username) {

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

    }

 ?>

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

wpx232ag

wpx232ag1#

会话将在站点的页面之间传播。所以,在注册中:

$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>';
}
fkvaft9z

fkvaft9z2#

如果我理解正确,你想检查会话是否用用户名设置,对吗?
在这种情况下,您检查了错误的变量。

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

这应该能奏效。我还将您的重定向更改为php重定向。

相关问题