2011-10-10 54 views
0

我有一个用户登录系统,它可以在会话中工作,以便当用户登录用户的会话变量时填入他/她的用户名,那么她加载的每个页面这个会话,如果它没有被填充,那么页面被重定向到登录页面。注销会话将被销毁。将会话限制为只有一个用户登录实例

但是,这仍然允许用户同时打开2个不同的浏览器并登录。我想停止这个,这样,如果用户登录,然后尝试登录使用不同的浏览器或电脑,他们会得到一个错误,说用户已登录。

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

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

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

回答

1

他们得到一个错误说用户已经登录。

这是错误的方法,导致可怕的用户体验。

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

+0

酷,遵循你的建议,所有工作和排序,tnks – David

1

如果您在DB中发现该用户已经登录,只需询问他/她是否想继续并覆盖旧的会话信息。另一种方法可能是给你的数据库信息添加一个时间标签(例如插入时间)并检查插入后已经过了多长时间。

Regards

0

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

0

我会作出这样的检查浏览器类型另一个会话变量,如果是不同的调用视图的方法来输出你说什么

相关问题