【发布时间】:2011-06-03 12:46:46
【问题描述】:
可以通过用户在 php 中设置会话超时吗?
示例:2 个用户在我的站点中注册。我希望每个用户都可以设置自己的会话超时。
【问题讨论】:
可以通过用户在 php 中设置会话超时吗?
示例:2 个用户在我的站点中注册。我希望每个用户都可以设置自己的会话超时。
【问题讨论】:
是的,您可以为每个用户设置自定义会话超时。您可以使用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)。
【讨论】: