你好我想使用PHP制作像yahoo messenger这样的系统网站。
这里是catch:当我(作为用户X)登录计算机A然后我登录计算机B. 必须强制计算机A中的用户X注销。 但我不想使用会话时间。因为用户每次都可以登录。
我必须记录到数据库mysql吗?
提前感谢您的帮助,如果之前有人问过,我真的很抱歉。
答案 0 :(得分:5)
实际上,您需要将会话存储在数据库中。
对于每个请求,检查数据库会话是否尚未过期。如果有,请将用户注销。
现在,如果用户已在数据库中(从另一台计算机)拥有活动会话,则使其无效/到期。另一台计算机上的下一个请求将记录用户。会话不应该冲突,因为新会话将具有不同的会话ID。
答案 1 :(得分:0)
如上所述,您需要将会话存储在数据库中,您还可以考虑存储用户的IP地址,以确保用户从其他计算机访问您的Web应用程序。不同的会话ID并不意味着用户肯定会从另一台计算机访问,因为用户可能在同一台计算机上打开了两个(或更多)浏览器。
另请注意,对于容量和性能问题,IP地址不应存储为x.x.x.x,请阅读以下文档
http://www.retran.com/beej/inet_ntoaman.html
http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_inet-aton
您可以通过在用户登录时运行脚本(每个用户将清除自己的登录,在其他计算机上)或通过实现链接来清除其他会话(因此用户可以根据自己的需求执行此任务,比如谷歌帐户)或者通过脚本运行cronjob。
希望这有帮助,祝你有愉快的一天!