我需要保持一个会话存活30分钟,然后销毁它。


当前回答

在这里你可以设定时间

$lifespan = 1800;
ini_set('session.gc_maxlifetime', $lifespan); //default life time

其他回答

if (isSet($_SESSION['started'])){
    if((mktime() - $_SESSION['started'] - 60*30) > 0){
        //Logout, destroy session, etc.
    }
}
else {
    $_SESSION['started'] = mktime();
}

这是为了在设定的时间后注销用户吗?在注册会话时设置会话创建时间(或过期时间),然后检查每个页面上的加载是否可以处理该时间。

例如:

$_SESSION['example'] = array('foo' => 'bar', 'registered' => time());

// later

if ((time() - $_SESSION['example']['registered']) > (60 * 30)) {
    unset($_SESSION['example']);
}

编辑:我有一种感觉,你指的是别的东西。

您可以通过使用会话在一定的生命周期后废弃会话。Gc_maxlifetime ini设置:

编辑: ini_set(’session。gc_maxlifetime’60 * 30);

使用session_set_cookie_params函数来做到这一点。

有必要在session_start()调用之前调用这个函数。

试试这个:

$lifetime = strtotime('+30 minutes', 0);

session_set_cookie_params($lifetime);

session_start();

详见:http://php.net/manual/function.session-set-cookie-params.php

PHP是如何处理会话的,初学者很难理解。这可能会帮助他们概述会话的工作原理: 会话如何工作(自定义会话处理程序)

在这里你可以设定时间

$lifespan = 1800;
ini_set('session.gc_maxlifetime', $lifespan); //default life time