这可能是一个相当简单的问题。我找到了几十个类似的,询问如何在PHP中缩短或延长会话的生命周期。我知道如何实现这一点,我的PHP脚本如下所示:
ini_set('session.gc_maxlifetime', 3600);
session_set_cookie_params(3600);
session_start();
这会使我的会话在3600秒后超时。这基本上就是这样,当我最初打开一个我必须登录的网站时,我可以使用它一个小时,然后所有会话数据都被删除,我需要再次登录。
但是,这不是我期望的行为。我希望我的会话在一小时不活动后超时。因此,当我第一次在上午10:00打开我的网站时,要做到10点45分之前做一些事情,那么它应该在11:45超时,而不是像现在这样在11点。
有任何建议如何实现这一目标?
答案 0 :(得分:15)
使用而不是session_set_cookie_params
- > setcookie
代替
session_set_cookie_params(3600);
session_start();
使用此功能并在您网站的每个页面上调用
$lifetime=3600;
session_start();
setcookie(session_name(),session_id(),time()+$lifetime);
它将在每次执行时更新会话cookie到期日期,直到time()+$lifetime
日期