PHP $ _SESSION变量服务器上的生命周期

Noo*_*ath 0 php session

好的,所以我知道服务器上的最后一个会话变量是1440秒或24分钟.那么变量的目的是什么,如果它们只是作为垃圾消失了?这是否意味着我的用户每24分钟会被注销,因为会话变量正在更新?对于我来说,将session.gc_maxlifetime更改为2周是否明智,以便用户可以保持登录两周?这一切都非常令人困惑,所以我希望提前获得任何帮助!

Max*_*sky 6

你错过了会话​​的重点.会话通常会持续到用户关闭浏览器(这是浏览器默认删除会话cookie的点).将会话保持开放2周意味着如果用户忘记注销,则其他人可能会打开该页面并登录.

从上次用户与页面的交互开始,会话处于活动状态24分钟(或任何设置).如果您使用的是ajax,则ajax调用本身将扩展会话,因此在浏览器中打开页面时,用户将不会注销.

"记住我"或"让我登录"功能完全不同,它通常会设置另一个cookie(可能会在2周内过期),并带有一些令牌并自动登录用户并开始新会话.那么你实际上可以在数据库中持久化会话并恢复相同的会话.

请记住,会话依赖于用户浏览器中的cookie,而这个cookie通常是短暂的.