error_log('my test');
if(isset($_SESSION["userName"])){
// some user is present CHECK AND ALLOW THE LOGIN.
// Another user has already logged in. so check if the last session activity is more than the SESSIONTIMEOUT value.
$idleTime = (time() - $_SESSION['LAST_ACTIVE_TIME'])/60;
$idleTime=9;$sessionTimeOut=10;
if($idleTime<$sessionTimeOut) {
print("*****1*****");
$existingUser=$_SESSION["userName"];
// IDLE TIME IS LESSTHAN THE SESSIONTIMEOUT SO ONLY ALLOW IF IT IS AN OLD USER
if(strcasecmp( $existingUser, $name ) == 0){
print("*****2*****");
$_SESSION["userName"] = $name;
$_SESSION["ipaddr"] = $ipaddr;
$_SESSION["type"] = $type;
$_SESSION['LAST_ACTIVE_TIME'] = time();
updateUserInfo($name,$ipaddr,$type);
$url ="./PHome.php" ;
// header("Location: $url");
} else {
print("*****3*****");
// IDLE TIME IS LESSTHAN THE SESSIONTIMEOUT AND new user, SO don't allow
$url ="./Login.html" ;
//header("Location: $url?error=duplicateErr");
}
} else {
print("*****4*****");
// IDLE TIME IS MORE than sessionTimeOut, SO NEW SECOND USER HAS LOGGED IN
$_SESSION["userName"] = $name;
$_SESSION["ipaddr"] = $ipaddr;
$_SESSION["type"] = $type;
$_SESSION['LAST_ACTIVE_TIME'] = time();
updateUserInfo($name,$ipaddr,$type);
$url ="./PHome.php" ;
// header("Location: $url");
}
} else {
print("*****0*****");
error_log("errors occured");
// No user is present So Log in
$_SESSION["userName"] = $name;
$_SESSION["ipaddr"] = $ipaddr;
$_SESSION["type"] = $type;
$_SESSION['LAST_ACTIVE_TIME'] = time();
updateUserInfo($name,$ipaddr,$type);
$url ="./PHome.php" ;
//header("Location: $url");
}
//逻辑,
首先我正在检查用户是否已经登录,如果不是我允许用户登录, 现在,如果第二个用户已经设置了会话,那么它不应该允许用户登录,但这是允许的。 测试场景 - 首先使用Chrome登录然后使用IE登录,第二个用户可以登录。 我无法使用数据库,因为数据库被锁定并且整个应用程序都死了。 任何帮助都非常感谢。
答案 0 :(得分:0)
虽然我不确定你是否在尝试,但是从“相同的ip”停止同一个“用户”到登录是不同的,但是如果你想在同一个用户中停止多次登录,这可能是技术