我在CakePHP中使用数据库会话,也保存与会话相同的表中的用户ID。是否有可能在用户会话过期时以某种方式检测到,以便我可以更新数据库中的一个字段?cakephp会话超时更新字段
我需要,以防万一用户没有从网站手动注销(只关闭浏览器或甚至没有)我可以从表中删除该会话。
我在CakePHP中使用数据库会话,也保存与会话相同的表中的用户ID。是否有可能在用户会话过期时以某种方式检测到,以便我可以更新数据库中的一个字段?cakephp会话超时更新字段
我需要,以防万一用户没有从网站手动注销(只关闭浏览器或甚至没有)我可以从表中删除该会话。
会话数据清理依赖于垃圾回收(gc)。这个垃圾收集过程只有在PHP脚本运行时才会被调用,也就是说,它在清理时不会清理数据,但之后有一段时间另一个PHP脚本正在运行。由于垃圾收集也会占用一些资源,因此它不会每次都运行,但是每次脚本调用都有一定的可能性。 The default is that gc runs about once every 100 script invocations.
所以你不会看到陈旧的数据立即消失。相反,它最终会被清理掉。
数据库会话会在一段时间后自动清理,就像常规会话一样。这是他们的观点*超时*。你想在这里手动做什么? – deceze 2012-03-13 00:04:08
好,那就是我的想法。我有超时到“1”(在中等安全级别,所以我相信100秒超时)。我已经完成了登录,并且可以在会话数据库中看到记录。我一直在从MySQL管理员那里检查一段时间(超过30分钟),刷新页面并试图用不同位置的相同用户名登录,但该记录尚未删除。在完成数据库表的刷新后,它终于被删除了。 – Albert 2012-03-13 00:20:12
所以我的问题是,会话超时实际上是如何工作的数据库会话?究竟是什么触发了从该表中删除记录的事件?它是否需要访问该网站?或者当会话过期时发生? – Albert 2012-03-13 00:22:23