Php管理数据库中每个用户的多个会话

时间:2016-02-18 12:29:50

标签: php mysql session cookies

我正在制作登录系统。我在数据库中创建了active_session表,如下所示:

| id | user_id |session_key|others...|
| 12 |  6548   |kdjgs939493|.........|

我制作的饼干寿命有限(如1小时或一天等)。当我手动注销时,它会销毁cookie并从数据库中删除会话记录。问题是,如果有人登录但没有注销,cookie将在到期后过期,但我如何从数据库中删除此类会话。因为如果没有删除这些记录,那么数据库中会有很多无用的会话记录

2 个答案:

答案 0 :(得分:2)

您必须在会话开始时或结束时存储时间戳。然后,您可以运行计划任务并删除您不再需要的所有条目。

答案 1 :(得分:0)

解决方案1:您可以添加命令以删除执行登录的同一脚本中的旧条目。这样,您可以确保每次登录后都没有旧记录。

解决方案2:您可以创建一个定期执行的脚本,以检查数据库中的旧记录并删除它们。这样,您可以使用特定的mysql用户来获取此脚本,并有权删除记录。