PHP网站使用cookie在浏览器端存储会话ID。目标是在最新用户与网站互动后的特定时间内,PHP会话将被视为有效。
PHP会话有两个不同的超时:
PHP内置逻辑仅在第一次调用session_start()
时才发送cookie。 e。会话ID已生成。 Cookie不会在进一步的请求中发送,因此cookie过期时间永远不会延长。
与此相反,每个请求的PHP会话有效期都会延长。
因此,如果用户持续与站点交互,则PHP会话的有效期将延长,但cookie的有效期将保持其原始值。
示例:
时间点/ PHP会话到期/ cookie到期
1/6/6
2/7/6
4/9/6
如何强制PHP在每个(或几乎每个)请求上更新cookie的过期时间? 最佳做法是什么?
我没有在网络上找到任何有用的东西,也没有找到任何可行的解决方法。例如,我发现了以下建议:
注意:此问题中的会话表示由PHP(而不是浏览器)管理的会话。 Cookie的到期时间应独立于浏览器会话。因此,建议Is possible to keep session even after the browser is closed?
根本不相关。
编辑:该问题已归类为PHP bug。