将会话限制为仅1个用户登录实例

时间:2011-10-10 07:19:05

标签: php javascript html ajax

我有一个用户登录系统可以处理会话,这样当用户登录用户的会话变量时会填充他/她的用户名,然后她加载的每个页面都会检查这个会话,如果它没有填充,那么页面被重定向到登录页面。 apon注销会话被销毁。

但是这仍然允许用户同时打开2个不同的浏览器并登录。我想停止这一点,这样如果用户登录然后尝试使用其他浏览器或PC登录,则会收到错误消息,说用户已经登录。

所以我的第一个想法是使用数据库写入,但是如果浏览器关闭,我怎么知道取消设置该值呢?

我的所有页面都是php,我使用ajax和php脚本来更新动态内容。

那么最好的办法是什么呢?

4 个答案:

答案 0 :(得分:1)

如果您在DB中发现用户已登录,只需询问他/她是否要继续并覆盖旧的会话信息。另一种方法可能是为您的数据库信息添加时间票(例如插入时间)并检查自插入以来经过的时间。

此致

答案 1 :(得分:1)

  

他们收到错误消息称用户已登录。

这是错误的方法,导致糟糕的用户体验。

让它相反:让后者进入,但让前一个登出。 您只需要在用户的表中存储当前会话ID。如果不匹配 - 请求登录。

答案 2 :(得分:0)

如果我理解你的问题,我认为你可以使用cookie。用户登录后,您可以创建cookie并设置到浏览器会话时间到期。在从DB获取数据之前,您需要检查cookie是否存在。

答案 3 :(得分:0)

我会创建另一个会话变量来检查浏览器类型,如果它不同则调用一个view方法来输出你所说的