防止用户从其他设备或其他浏览器同时登录


prevent user to login from other device or other browser at same time

防止用户从其他设备或其他浏览器同时登录如果用户从一台pc/设备登录,那么该特定用户不能从另一台pc/设备或另一个浏览器使用相同的id和密码登录。

你可以在你的db表中有一个单独的列,例如is_logged,当一个用户第一次被记录时,它将被更新为true,这样每次其他尝试都会失败。

SELECT * 
FROM my_table
WHERE username = 'username' AND password = 'password' AND is_logged != 1;

UPDATE(基于你的UPDATE)

你可以有另一个列,如last_action(时间戳),并在你的应用程序逻辑中设置一个特定的时间,如果用户没有与网站交互(例如3600秒),那么他将被认为是自动注销在他的下一次登录尝试。

SELECT * 
FROM my_table
WHERE username = 'username' AND password = 'password' 
AND TIME_TO_SEC(TIMEDIFF(NOW(), last_action)) > 3600;

您可以在登录表中添加一列(除了存储密码和用户名的位置之外),并在用户登录时将其设置为1。每次都用密码和用户名检查该列。如果不是1。格兰特登录。否则错误消息。当用户注销时将其设置为零。