PHP会话变量没有';不处理具有重写URL的页面


PHP session variable doesn't work on pages with rewritten URLs

我有变量$_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"的页面上。如果我在页面的其他地方回显会话变量,它会很好地工作——只是在包含的文件中不起作用。

在包含菜单之前,您确定要调用session_start()吗?(当然,在include中进行调用会更好)