我有MYSQL表,其中包含用户。用户可以使用php代码登录。他的名字存储在SESSION变量中。如何检查用户是否已在另一台计算机上登录以禁止他再次登录?
情境:
电脑1:
USER1已登录
电脑2:
USER1尝试再次进入,但他不能,因为他已经登录了另一台计算机。
答案 0 :(得分:1)
尝试在数据库中创建“isLogged”列,并在用户启动或结束会话时将其设置为true或false。 我这样做并且工作正常。
答案 1 :(得分:0)
要确保他不会在另一台计算机上再次登录,您可以针对数据库更新字段以将其标记为已登录,然后在用户尝试登录时检查此字段。
<?php
if ($_SESSION["MySession"] != "") {
//Update database field to set this user as actively browsing.
//Also set a timestamp so you know when he last visited a page.
}
?>
但是,用户必须在另一台计算机上进行物理注销才能再次登录新计算机。您可以实现一个计时器来清除数据库中的字段,这样它就可以在一段时间不活动后登录。
您可以创建一个cron并每隔5分钟运行一次,或者您可以再次在页面顶部运行一些代码,将所有user_logged_in
字段设置为false,以便它们在过去没有处于活动状态{ {1}}分钟。
所以按顺序:
x
设置为用户名。