PHP会话变量不适用于具有重写URL的页面

时间:2012-07-30 11:50:28

标签: php session

我有变量$ _SESSION ['logged_in'],这是在用户登录时设置的,并且在注销过程中未设置。我在所有页面上都有一个导航菜单,其中包含以下代码:

<?php
    if(isset($_SESSION['logged_in'])){
    ?>
    <li><a href="http://absoluteurl/mylists.php">My Lists</a></li>
        <li><a href="http://absoluteurl/list/logout.php">Sign Out</a></li>
    <?php
    }
    else{
    ?>
        <li><a href="http://absoluteurl/list/register.php">Sign Up</a></li>
    <?php
    }
    ?>

现在,在大多数页面上都可以正常工作 - 它根据用户是否登录显示正确的导航项目。但是我有一些页面的URL被重写为SEO,并且在这些页面上它不起作用 - 它总是显示“注册”选项,就像用户未登录一样。

请注意,导航菜单位于单独的文件中,该文件使用“include”包含在页面中。如果我在页面的其他地方回显会话变量,它可以正常工作 - 它只是从包含的文件中无效。

1 个答案:

答案 0 :(得分:1)

在包含菜单之前,您确定要拨打session_start()吗? (当然,在包含内部进行调用会很棒)