用户设置php会话超时

时间:2011-01-04 16:58:34

标签: php session timeout

可以在php中用户设置会话超时吗?

示例:我的网站注册了2个用户。我希望每个用户都可以设置自己的会话超时。

1 个答案:

答案 0 :(得分:4)

是的,您可以为每个用户设置自定义会话超时。您可以使用How do I expire a PHP session after 30 minutes?中描述的方法,但存储绝对到期时间:

// set expiration time
$_SESSION['EXPIRES'] = time() + $customSessionLifetime;

// validate session
if (isset($_SESSION['EXPIRES']) && (time() < $_SESSION['EXPIRES'])) {
    // session still valid; update expiration time
    $_SESSION['EXPIRES'] = time() + $customSessionLifetime;
} else {
    // session invalid or expired
    session_destroy();
    session_unset();
}

此处$customSessionLifetime可以为每个用户设置不同的。只需确保其值小于或等于 session.gc_maxlifetime session.cookie_lifetime (如果您使用Cookie作为会话ID)。