如何防止PHP/MySQL站点中的并发用户登录?

Sid*_*idC 10 php mysql

我正在开发将主持网络广播的网站的用户管理部分.目标是防止同时使用同一用户nam(电子邮件地址).也就是说,我们不希望两个人使用一个登录来查看该事件.

我已经设置了一个表,用于保存用户注册数据,其中regID为主键.我的想法是创建一个登录历史表,其中username是主键,是注册表中用户名的外键.登录历史记录表只是用户登录站点时的时间戳.但是,这不会实现我的目标,即防止多个人使用相同的登录名.

相反,在登录历史记录或用户表中设置登录状态字段是否更好,登录时设置为1,登出时设置为0?它需要一个存储过程来在登录和注销时更新值,并且需要在用户登录时进行验证,如果登录状态= 1,则用户已经登录并且无法再次登录.这是一种可行的方法吗?

请分享您用于阻止相同登录凭据在多个人之间共享的其他方法.

谢谢,希德

MrW*_*ite 7

如果可以注销已登录的用户(如果其他人使用相同的凭据登录),则可以执行以下操作:当用户登录时,在数据库中为该用户生成随机ID,并在cookie会话中生成相同的随机ID .两者必须匹配才能进行身份验证.

  • 但是,如果要从登录中启动_preventing_第二个用户,则需要避免阻止_valid user_再次登录.例如.当用户意外离开自己登录工作,然后无法在家登录.然后,您需要在一段时间不活动后开始超时用户,如下所述. (2认同)