我有变量$_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中进行调用会更好)