如果用户会话超时,我需要删除数据库中的旧用户数据。
如何使用PHP解决此问题?
答案 0 :(得分:1)
您可以将session_key与数据库中的行一起存储,然后自己定义时间限制。然后创建一个cronjob,删除所有未在限制范围内使用的session_key的行。
默认会话一直持续到浏览器关闭,因此您无法知道会话处于活动状态的秒数。即使会话关闭,在垃圾收集器删除会话之前也不会删除会话。
答案 1 :(得分:1)
您可以设置会话超时的时间。说30分钟。
sesssion_gc_maxlifetime
您可以查看用户的登录时间。
但是如果要删除数据,最好将会话保留在DB中或至少
在数据库中保留状态,登录或注销以及登录时间和注销时间
这将是安全的
因此,您可以根据登录时间和当前时差来删除数据
设置一个cron作业运行30分钟或任何你想要的时间
答案 2 :(得分:0)
当会话超时时,无法添加要运行的代码。你必须自己想出一个计划。 我建议在数据库记录中添加时间戳,并在每次访问数据时更新它。然后让cron脚本浏览记录并删除那些早于会话超时的脚本。