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