一次只允许一个会话

dav*_*lee 8 php apache2

我想让我的网站一次只允许一个会话.例如,假设用户在firefox上登录我的网站,如果用户再次登录到同一计算机或不同计算机上的Opera之类的其他浏览器,则firefox上的会话将被销毁.然而,如果仍然是一个会话,Firefox上的会话仍然存在.我可以知道我该怎么办?我正在使用php和apache.谢谢.

问候.本杰明

Che*_*rma 11

我建议你做这样的事情:

假设用户"A"第一次进入"Com_1".针对该会话在数据库中保存唯一代码,与用户会话相同.

同时,如果他(用户"A")再次登上"com_2",则检查他在数据库中的状态并更新数据库中的唯一代码.

再次回来,如果同一个用户(用户"A")刷新"com_1"页面,我们所要做的就是检查会话中的唯一代码并将其与数据库匹配,确定它不匹配,然后注销并销毁会话.

为了保持用户登录,即使浏览器已关闭,您也可以将cookie存储在浏览器中,并相应地重新生成会话.

希望这可以帮助.谢谢.


pak*_*ore 5

您可以使用以下算法

  1. 在数据库userLoggedInCount中创建一个整数字段
  2. 在每个登录增量上标记并将结果存储在会话中.
  3. 在每个请求上检查数据库中的值和会话中的值,如果会话中的值小于invalidate()数据库中的值,则会话并减少数据库中的值
  4. 每当会话被销毁时,也会减少该值

学分Bozho因为他张贴了这个,回答一个问题 在这里