CakePHP(或只是PHP)获得会话持续时间

时间:2013-04-11 01:11:43

标签: php cakephp session-timeout

有没有办法获得用户会话的持续时间?

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

如果用户未注销并且会话刚过期,该怎么办?有没有办法知道是否/何时发生?

2 个答案:

答案 0 :(得分:2)

无法知道会话是否仍处于活动状态,因此您可以做的最好的事情是将SESSION_START_TIME保存在您的数据库上,并在每个请求日志上保存LAST_REQUEST_TIME

通过这种方式,你知道什么时候开始,可能"可能"会议结束。

通过使用LAST_REQUEST_TIME<5minutes检查所有会话,您还可以知道现在有多少活动会话......所以这不是一个糟糕的解决方案。

答案 1 :(得分:0)

不,不是真的。 HTTP是会话较少的。真正想要更精细的活跃用户想法的人会经常使用某种心跳技术,创建持久连接或使用轮询,使用ajax或flash影片或websockets来模拟它。

PHP会话实际上更像是将一些临时服务器端存储与特定客户端/浏览器实例相关联的机制,尽管有些人可能会读到该名称。