我有一个用户登录系统可以处理会话,这样当用户登录用户的会话变量时会填充他/她的用户名,然后她加载的每个页面都会检查这个会话,如果它没有填充,那么页面被重定向到登录页面。 apon注销会话被销毁。
但是这仍然允许用户同时打开2个不同的浏览器并登录。我想停止这一点,这样如果用户登录然后尝试使用其他浏览器或PC登录,则会收到错误消息,说用户已经登录。
所以我的第一个想法是使用数据库写入,但是如果浏览器关闭,我怎么知道取消设置该值呢?
我的所有页面都是php,我使用ajax和php脚本来更新动态内容。
那么最好的办法是什么呢?
答案 0 :(得分:1)
如果您在DB中发现用户已登录,只需询问他/她是否要继续并覆盖旧的会话信息。另一种方法可能是为您的数据库信息添加时间票(例如插入时间)并检查自插入以来经过的时间。
此致
答案 1 :(得分:1)
他们收到错误消息称用户已登录。
这是错误的方法,导致糟糕的用户体验。
让它相反:让后者进入,但让前一个登出。 您只需要在用户的表中存储当前会话ID。如果不匹配 - 请求登录。
答案 2 :(得分:0)
如果我理解你的问题,我认为你可以使用cookie。用户登录后,您可以创建cookie并设置到浏览器会话时间到期。在从DB获取数据之前,您需要检查cookie是否存在。
答案 3 :(得分:0)
我会创建另一个会话变量来检查浏览器类型,如果它不同则调用一个view方法来输出你所说的