会话变量(种类)不加载

我使用会话变量来跟踪登录信息。 特别是用户是否登录(布尔$ _SESSION [“loggedin”])和他们的用户名(字符串$ _SESSION [“用户名”])。

主页有一个导航栏,根据用户是否登录,通过引用$ _SESSION [“loggedin”]显示一组不同的链接。 除了用户在登录认证后被重定向到主页时,这在任何情况下都适用。 如果我重新加载主页,它并不重要,它仍然显示错误的链接集。 ..但是,如果然后转到登录页面(当$ _SESSION [“loggedin”== == true时重定向到主页),当它将我发回主页时,导航显示正确。 我的所有网页都以开始

这是登录成功后login.php的重定向:

    elseif ($phash === crypt($pword,$phash)){
    $_SESSION["loggedin"]=true;
    $_SESSION["username"]=$username;
    header("Location: index.php");
    die();
    }

这是login.php中的重定向代码,用于用户已经登录:

    <?php
    session_start();

    if ($_SESSION["loggedin"] == true){
      header("Location: index.php");
      die();
    }

这是显示代码:

    <?php if ($_SESSION["loggedin"]==true){
    echo "<li><a href='logout.php'> Logout </a></li>";
    //...several similar echoes...
    }
    else{
    echo "<li><a href='login.php'> Login </a></li>";
    //...several similar echoes...
    }

我很困惑,为什么login.php开头的一小段重定向代码在返回到index.php时会突然导致导航显示正确,我感觉有点不在我的联盟中。

..事实证明,如果我只是让index.php页面坐了30秒左右,然后刷新,它会正确显示。 我在页面中添加了一个var_dump(),并且当index.php显示不正确时,会话变量为NULL。 当我回来稍后刷新时,会话变量为true。

链接地址: http://www.djcxy.com/p/59735.html

上一篇: session variable (kind of) not loading

下一篇: Pulling two single variables from a Session Array