【问题标题】:Session variable clears itself (PHP)会话变量自行清除(PHP)
【发布时间】:2014-12-26 14:55:39
【问题描述】:

作为一个非常简单的登录脚本的一部分,我使用用户名创建了一个会话变量(或者至少我认为它是这样命名的),并使用它来检查用户是否已登录。该变量在登录脚本中设置,使用以下代码:

if($count==1) {
    session_start();
    $_SESSION['ed_user'] = $ed_user;
    header("location:main.php");
} else {
    echo "Incorrect user or password, please try again.";
}

我知道这个 if 语句的第一部分已经运行,因为我没有看到错误消息。在它指向 (main.php) 的页面上,第一行代码应检查是否设置了 $_SESSION['ed_user'],如果不是,则返回到 index.php。这是通过代码完成的:

if(!$_SESSION['ed_user']){
    header("location:index.php");
}

但是,登录后它似乎总是让我返回 index.php。我尝试使用以下行检查变量是否存在:

<p><?php echo"Current user: ".$_SESSION['ed_user'];?></p>

这表示变量为空。我在这里做错了什么?

【问题讨论】:

    标签: php session login


    【解决方案1】:

    你需要打电话

    session_start();
    

    在每一页上。

    【讨论】:

    • 嗯,这似乎有点违反直觉,但谢谢:-)。它现在正在工作。
    • @Noceo:不用担心,会议很痛苦。
    【解决方案2】:

    在您的 main.php 文件中...

    session_start();
    if(!isset($_SESSION['ed_user'])){
        header("location:index.php");
    }
    

    您需要调用session_start() 来访问会话变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 2015-04-21
      • 2012-08-17
      • 2011-01-22
      相关资源
      最近更新 更多