PHP:重新加载时重置会话生存期

时间:2015-12-13 15:03:24

标签: php session session-timeout

这可能是一个相当简单的问题。我找到了几十个类似的,询问如何在PHP中缩短或延长会话的生命周期。我知道如何实现这一点,我的PHP脚本如下所示:

ini_set('session.gc_maxlifetime', 3600);
session_set_cookie_params(3600);
session_start();

这会使我的会话在3600秒后超时。这基本上就是这样,当我最初打开一个我必须登录的网站时,我可以使用它一个小时,然后所有会话数据都被删除,我需要再次登录。

但是,这不是我期望的行为。我希望我的会话在一小时不活动后超时。因此,当我第一次在上午10:00打开我的网站时,要做到10点45分之前做一些事情,那么它应该在11:45超时,而不是像现在这样在11点。

有任何建议如何实现这一目标?

1 个答案:

答案 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日期