我在网站的主目录中保持会话处于活动状态时遇到问题。
我有一个名为login.php
会话设置的文件。然后,如果我导航到index.php
并执行print_R($_SESSION)
,它会打印它。然后我去gallery.php
,它就消失了。以相反的顺序也是如此:如果我先去,它就会出现gallery.php
,然后消失在index.php
.
我想这可能是php.ini
相关的。
编辑:好的,我发现这是一个包含文件,它包含在两个页面上,名为“nav.php”
<?php
session_start();
$logout = intval($_GET['logout']);
if(isset($logout)){
session_destroy();
//header('Location: '$_SERVER['PHP_SELF']);
}
echo '<a href="/index.php" title ="home" class="navbutton">home</a>
<a href="/gallery.php" title ="gallery"class="navbutton">gallery</a>
<a href="/info.php"title ="info"class="navbutton">info</a>
<a href="/contact.php"title="contact"class="navbutton">contact</a>';
if(isset($_SESSION['names']) || isset($_SESSION['guestlogin'])){echo '<a href="'.$_SERVER['PHP_SELF'].'?logout=1" title="logout"class="navbutton">logout</a>';
echo'<a href="/gallery" title ="gallery"class="navbutton"> test gallery</a>';
}
else{echo '<a href="/login" title="login"class="navbutton">login</a>';
}
echo'<a href="/blog"title ="blog"class="navbutton">blog</a>
<a href="/prints"title ="prints"class="navbutton">prints</a>';?>
可能是 b/c 它有 session_destroy 还是什么?是否所有包含的文件都应该有一个 session_start ?