我有 MYSQL 表,里面有用户。用户可以使用 PHP 代码登录。他们的名字存储在 SESSION 变量中。如何检查用户是否已经在另一台计算机上登录以禁止他们再次登录?
设想:
计算机 1:
USER1 已登录
计算机 2:
USER1 尝试再次登录,但他们不能,因为他们已经在另一台计算机上登录。
我有 MYSQL 表,里面有用户。用户可以使用 PHP 代码登录。他们的名字存储在 SESSION 变量中。如何检查用户是否已经在另一台计算机上登录以禁止他们再次登录?
设想:
计算机 1:
USER1 已登录
计算机 2:
USER1 尝试再次登录,但他们不能,因为他们已经在另一台计算机上登录。
Try to create a column "isLogged" in the databank and set it to true o false when the user starts or end a session. I was doing that and works fine.
为了确保他不会在另一台计算机上再次登录,您可以针对数据库更新一个字段以将他标记为已登录,然后在用户尝试登录时检查此字段。
<?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 分钟运行一次,或者您可以再次在页面顶部运行一些代码,将所有字段设置为 false 在过去几分钟内user_logged_in
它们没有处于活动状态。x
所以按顺序:
$_SESSION["UserName"]
设置为用户名。