如何检查用户是否已登录另一台计算机?

时间:2012-12-05 16:15:38

标签: php

我有MYSQL表,其中包含用户。用户可以使用php代码登录。他的名字存储在SESSION变量中。如何检查用户是否已在另一台计算机上登录以禁止他再次登录?

情境:

电脑1:
USER1已登录
电脑2:
USER1尝试再次进入,但他不能,因为他已经登录了另一台计算机。

2 个答案:

答案 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}}分钟。

所以按顺序:

  1. 用户登录网站,x设置为用户名。
  2. 在每个页面的顶部,检查会话以查看用户名会话是否有效,并更新数据库中的用户表以表明他正在主动浏览(使用时间戳字段)。
  3. 检查用户表并清除用户在X分钟内处于非活动状态的所有已登录标志。