【发布时间】:2010-02-19 14:40:38
【问题描述】:
我无法长时间保存会话状态。我使用会话来保留登录状态。在任何其他代码之前,我需要在每个页面顶部的以下代码 sn-p。首先,我是否缺少任何设置?
session_cache_expire(2880); //set session to expire in 48 hours
session_start();
有些人在 48 小时到期时间之前退出。什么类型的事情会导致这种情况?我知道关闭浏览器会终止会话,但事实并非如此。
据我所知,当用户处于非活动状态数小时或更长时间时会发生这种情况。
用户在积极浏览网站时永远不会注销。
什么给了?
【问题讨论】:
-
我曾认为将会话数据写入某种永久存储(即数据库)然后在用户返回站点时重新加载它会比滥用会话更好的解决方案这个。
-
我不知道滥用...使用单个会话变量来跟踪正在登录的用户...很好...好的。
-
我同意 Ant 的观点,较长的会话生命周期会增加黑客可以访问会话的窗口。我个人倾向于使用 30 分钟的超时。如果用户与会话进行交互,则 30 分钟将再次开始。您会在打开、登录和解锁 2 天后让您的计算机无人看管吗?
-
这真的取决于您的信息有多敏感,如果有人真的想闯入您的计算机,30 分钟的会话时间不会阻止他们。
-
我更多地考虑会话存储在哪里:php.net/manual/en/session.requirements.php 会话存储在 RAM 中。因此,将会话设置为持续 48 小时 a) 完全不可扩展,并且 b) 如果您的服务器重新启动,这是一个坏主意。