2013-04-11 42 views
0

有没有什么办法可以获得用户会话的持续时间?CakePHP(或只是PHP)获取会话持续时间

如果用户登录,我可以保存初始时间。如果他退出,我可以得到最后的时间并计算会话的持续时间。

如果用户没有注销并且会话刚到期会怎么样?有什么方法可以知道这是否发生?

+0

“有没有办法知道,如果/当这种情况发生?” ---如果只有你有一个自定义会话处理程序 – zerkms 2013-04-11 01:21:32

回答

2

无法知道会话是否仍处于活动状态,所以最好的办法是将SESSION_START_TIME保存在您的数据库和每个请求日志中LAST_REQUEST_TIME

这样你就知道什么时候开始以及会话的“可能”结束。

你也可以知道有多少活动的会话存在,现在,通过检查与LAST_REQUEST_TIME<5minutes所有会话...所以它不是一个坏的解决方案。

+0

+1我只是想发布相同的答案。我建议使用time()以Unix时间戳格式存储所有时间。这使得使用php进行计算变得更容易。 – 2013-04-11 01:28:40

0

不,不是真的。 HTTP会话较少。人们谁真正想活跃用户更细化的想法会经常使用某种心跳技术,创建一个持久连接或轮询模拟它,使用AJAX或Flash影片,或WebSockets的。 ,

PHP会话真多一个机械的用于连接一些临时服务器端存储与特定的客户端/浏览器实例,尽管暗示有些人可能会读入名称。