我目前使用PHP会话作为我的用户登录系统的基础,成功登录设置$_SESSION [‘userid’].这允许用户从多台计算机登录到同一帐户.
但是,我想实现以下功能:
>随处注销,类似于Stack Overflow.
>查看其他人登录的位置.
两者都可能需要的不仅仅是会话变量,而且我愿意将更多信息放入数据库来完成这些.做上述事情的标准方法是什么?
解决方法:
创建一个新的数据库表来存储会话,然后直接在$_SESSION中存储信息,只需存储一个引用新会话表中一行的ID.此表可以包含IP地址,用户名和上次活动时间等信息.
您的应用程序应根据$_SESSION中的内容检查会话表,因此当您删除表中特定用户的所有行时,无论身在何处,每个会话都将失效.您还可以查询属于特定用户的所有行,以便显示他们拥有活动会话的位置.
您必须开始考虑处理用户离开会话的位置而不显式注销 – 可能是每小时或每天运行的计划作业,清除在特定时间段内没有任何活动的会话行.