php超时无法正常工作

时间:2013-12-24 18:37:52

标签: php

这真的很奇怪,所以我得到了超时用户的这段代码,所以如果自上次激活以来500秒后自动退出我把它放在上面的栏中,因为它在我的所有页面上

if(!isset($_SESSION))
    session_start();

if(isset($_SESSION['time']))
    if ($_SESSION['time'] + 600 < time()) {
        session_destroy();
    } else{
        $_SESSION['time'] = time();
        //some code to access database that says welcome and shows some details about the     account and manage account and stuff
    }

<div class="signIn"><?php 
    if(isset($_SESSION['USER_State']) && ($_SESSION['USER_State'] === true)){ 
        echo "<a href='SignOut.php'><p>Sign out</p>"; 
    } else { 
        echo"<a href='Registeration.php'><p>Sign In</p>"; 
    }?></div>

这很有效,但是当600秒通过时会出现问题,当用户按下任何链接时会破坏会话并且欢迎和东西不再显示但仍然是echos退出而不是登录虽然我检查了页面源从浏览器我发现了这个

<td>
    <div class="signIn"><a href='Registeration.php'><p>Sign In</p></div>
</td>
</tr>

我在显示屏上检查了相同的数字,但在信号源中登录的可能性如何

2 个答案:

答案 0 :(得分:2)

要清除会话,您也可以使用unset。

unset($_SESSION);

不仅适用于会话,您还可以使用任何变量或数组。

答案 1 :(得分:1)

调用session_destroy不会删除$_SESSION[]超全球的内容。

添加$_SESSION = array()以清除当前页面加载的会话数据。