PHP 会话销毁工作不正常
PHP session destroy is not working properly
我有一个仅在 1 小时内有效的用户登录。我的意思是用户可以登录到系统并且他可以继续他的工作。我不会检查非活动时间。我从用户成功登录 in.Whatever 用户所做的过程的一开始就开始计算,我将缓存操作并销毁会话并在登录后每隔 1 小时定向到登录部分.
当用户成功登录后,我按以下方式将时间戳设置为 $_SESSION
变量。
$_SESSION['key_set_time'] = time();
.
以下是SESSION DESTROY代码。
$_SESSION['key_set_time'] = time();
$session_duration = 3600;
$current_time = time();
if(((time() - $_SESSION['key_set_time']) > $session_duration)){
session_destroy();
}else{
header('LOCATION:/login.php');
}
调试时我发现 $_SESSION['key_set_time'] = time();
在每个页面设置当前时间 reload.It 替换用户登录的时间 in.So 我无法 销毁 会话。如何防止在每次重新加载页面时替换时间?
(这个过程必须在 BACKEND ITSELF 中完成。这个菜鸟注意是因为 Whosebug 的答案是要破坏 SESSION MANUALLY。)
if (!isset($_SESSION['key_set_time'])) {
$_SESSION['key_set_time'] = time();
} else if (time() - $_SESSION['key_set_time'] > 3600) {
// session started more than 1 hour ago
session_regenerate_id(true); // change session ID for the current session
$_SESSION['key_set_time'] = time(); // update creation time
}
这应该适用于您的情况。如果没有,请告诉我。
您可以根据需要更改else if
声明
我有一个仅在 1 小时内有效的用户登录。我的意思是用户可以登录到系统并且他可以继续他的工作。我不会检查非活动时间。我从用户成功登录 in.Whatever 用户所做的过程的一开始就开始计算,我将缓存操作并销毁会话并在登录后每隔 1 小时定向到登录部分.
当用户成功登录后,我按以下方式将时间戳设置为 $_SESSION
变量。
$_SESSION['key_set_time'] = time();
.
以下是SESSION DESTROY代码。
$_SESSION['key_set_time'] = time();
$session_duration = 3600;
$current_time = time();
if(((time() - $_SESSION['key_set_time']) > $session_duration)){
session_destroy();
}else{
header('LOCATION:/login.php');
}
调试时我发现 $_SESSION['key_set_time'] = time();
在每个页面设置当前时间 reload.It 替换用户登录的时间 in.So 我无法 销毁 会话。如何防止在每次重新加载页面时替换时间?
(这个过程必须在 BACKEND ITSELF 中完成。这个菜鸟注意是因为 Whosebug 的答案是要破坏 SESSION MANUALLY。)
if (!isset($_SESSION['key_set_time'])) {
$_SESSION['key_set_time'] = time();
} else if (time() - $_SESSION['key_set_time'] > 3600) {
// session started more than 1 hour ago
session_regenerate_id(true); // change session ID for the current session
$_SESSION['key_set_time'] = time(); // update creation time
}
这应该适用于您的情况。如果没有,请告诉我。
您可以根据需要更改else if
声明