这可能是一个相当简单的问题。我发现了很多类似的问题,询问如何在 PHP 中通常缩短或延长 session 生命周期。我知道如何实现,我的 PHP 脚本是这样的:
ini_set('session.gc_maxlifetime', 3600);
session_set_cookie_params(3600);
session_start();
这将我的 session 设置为在 3600 秒后超时。这基本上就是发生的情况,当我最初打开一个我必须登录的网站时,我可以使用它整整一个小时,然后所有 session 数据都被删除,我需要重新登录。
但是,这不是我所期望的行为。我希望我的 session 在不活动一小时后超时。所以当我在上午 10:00 第一次打开我的网站时,做一些事情直到 10:45,然后它应该在 11:45 超时,而不是像现在这样在 11:00 超时。
有什么建议可以实现吗?
最佳答案
使用代替 session_set_cookie_params
-> setcookie
代替
session_set_cookie_params(3600);
session_start();
使用它并在您网站的每个页面上调用它
$lifetime=3600;
session_start();
setcookie(session_name(),session_id(),time()+$lifetime);
它将在每次执行时更新 session cookie 到期日期,直到 time()+$lifetime
日期
关于PHP:重新加载时重置 session 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34252474/