会话变量(种类)未加载

时间:2016-02-12 08:39:57

标签: php html session redirect login

我正在使用会话变量来跟踪登录信息。具体来说,用户是否登录(boolean $ _SESSION [“loggedin”])及其用户名(字符串$ _SESSION [“username”])。

主页有一个导航栏,根据用户是否登录,通过引用$ _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。当我回来并稍后刷新时,会话变量为真。

0 个答案:

没有答案