我在保持会话在我的网站的主目录中处于活动状态时出现问题。会话在页面上消失
我有一个名为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对他们?
如果您发布了gallery.php代码 – 2012-07-28 14:25:32
,我们可以提供帮助。您的代码可能有问题。 – 2012-07-28 14:25:56
我的猜测是那个gallery.php缺少session_start() – MilMike 2012-07-28 14:32:36