了解会话超时(php)

时间:2010-10-18 13:31:10

标签: php mysql session

如果用户会话超时,我需要删除数据库中的旧用户数据。

如何使用PHP解决此问题?

3 个答案:

答案 0 :(得分:1)

您可以将session_key与数据库中的行一起存储,然后自己定义时间限制。然后创建一个cronjob,删除所有未在限制范围内使用的session_key的行。

默认会话一直持续到浏览器关闭,因此您无法知道会话处于活动状态的秒数。即使会话关闭,在垃圾收集器删除会话之前也不会删除会话。

答案 1 :(得分:1)

您可以设置会话超时的时间。说30分钟。

sesssion_gc_maxlifetime

您可以查看用户的登录时间。

但是如果要删除数据,最好将会话保留在DB中或至少

在数据库中保留状态,登录或注销以及登录时间和注销时间

这将是安全的

因此,您可以根据登录时间和当前时差来删除数据

设置一个cron作业运行30分钟或任何你想要的时间

答案 2 :(得分:0)

当会话超时时,无法添加要运行的代码。你必须自己想出一个计划。 我建议在数据库记录中添加时间戳,并在每次访问数据时更新它。然后让cron脚本浏览记录并删除那些早于会话超时的脚本。