【问题标题】:How to check if session is started and redirect user? [duplicate]如何检查会话是否已启动并重定向用户? [复制]
【发布时间】:2019-06-03 17:45:45
【问题描述】:

我正在尝试创建一个 PHP 的 sn-p,用于检查用户在到达我的索引页面时是否使用 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 时,它会检查他们是否已注册,如果没有,它将重定向他们到注册页面。

【问题讨论】:

  • 为什么这被标记为“mysql”和“html”?

标签: php html mysql session


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-12
      • 2016-02-06
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      相关资源
      最近更新 更多