如果用户在15分钟内处于非活动状态,如何使php会话失效

mac*_*ack 13 php session

我用PHP创建了一个项目,我正在管理会话.

我通过编写以下代码行在config.php文件中创建会话.

session_start();
Run Code Online (Sandbox Code Playgroud)

并且要销毁此会话,在logout.php文件中我写了以下行.

session_destroy();
Run Code Online (Sandbox Code Playgroud)

我没有在任何其他项目文件中提及任何会话代码,但问题是会话是活动的,直到我调用logout.php,

我想要的是如果用户15分钟不活动,会话应该到期.

任何人都可以帮助我,我是PHP的新手,请给出一些示例代码或链接来实现这一点..

Kam*_*shi 15

在头文件中调用以下函数,以便每当用户执行任何活动时,页面都会刷新并检查会话是否超时.

function auto_logout($field)
{
    $t = time();
    $t0 = $_SESSION[$field];
    $diff = $t - $t0;
    if ($diff > 1500 || !isset($t0))
    {          
        return true;
    }
    else
    {
        $_SESSION[$field] = time();
    }
}
Run Code Online (Sandbox Code Playgroud)

在标题中使用这样的东西

    if(auto_logout("user_time"))
    {
        session_unset();
        session_destroy();
        location("login.php");          
        exit;
    }       
Run Code Online (Sandbox Code Playgroud)

User_time是会话名称.我希望这个答案会对你有所帮助.实际上这段代码的作用是:"检查diff是否大于1500秒.如果没有,则设置新的会话时间." 您可以根据需要更改时差(1500).