我有用户在其中的MYSQL表。用户可以使用php代码登录。他的名字存储在SESSION变量中。如何检查用户是否已在另一台计算机上登录以禁止他再次登录?如何检查用户是否在另一台计算机上登录?
场景:
电脑1:
USER1被记录在
电脑2:
USER1尝试腿再次,但他不能,因为他已经被记录在另一台计算机上。
我有用户在其中的MYSQL表。用户可以使用php代码登录。他的名字存储在SESSION变量中。如何检查用户是否已在另一台计算机上登录以禁止他再次登录?如何检查用户是否在另一台计算机上登录?
场景:
电脑1:
USER1被记录在
电脑2:
USER1尝试腿再次,但他不能,因为他已经被记录在另一台计算机上。
尝试在数据库中创建一列“isLogged”,并在用户开始或结束会话时将其设置为true或false。 我这样做,工作正常。
但用户必须手动结束会话,如果他不这样做? – Dharman
in Mysql, SET SESSION wait_timeout = 60; –
,以确保他不另一台计算机上再次登录当用户试图登录,你可以对数据库更新场他标记为被登录,然后检查该字段。
<?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,以便在过去的x
分钟内未将其激活。
所以为了:
$_SESSION["UserName"]
设置为用户名。
您是不是以任何身份使用数据库来管理当前浏览网站的经过身份验证的用户? – Sampson
@Jonathan Sampson什么?我无法理解。 – Dharman