【发布时间】:2020-07-18 09:29:15
【问题描述】:
我在https://thisinterestsme.com/expire-php-sessions 找到了以下脚本。
此代码用于检查用户是否在一段时间内处于非活动状态 注销并直接进入登录屏幕。
问题
不会发生重定向。重定向仅在页面刷新时发生。
脚本
<!-- language: lang-html -->
<?php $inactive = 30;
$_SESSION['inactive']=$inactive;
if( !isset($_SESSION['timeout']) )
$_SESSION['timeout'] = time() + $inactive;
$session_life = time() - $_SESSION['timeout'];
$_SESSION['life']=$session_life;
if ($session_life > $inactive)
{ session_destroy();
echo '<script>';
echo 'console.log("You have been logged-out!");';
echo 'window.location.href="login.php"';
echo '</script>';
}
$_SESSION['timeout']=time();
?>
仅当我刷新页面时才会发生重定向
我尝试了header("Location: login.php") 而不是echo 'window.location.href="login.php"',但没有成功(没有自动重定向到“登录”页面)。
我应该怎么做才能重定向页面而不刷新?
我正在使用 PDO+ php 7
我找到了a thread 并尝试了这个:
<meta http-equiv="refresh" content="900;url=login.php" />
但这不会检查是否“空闲”。
提前致谢
【问题讨论】:
-
试过 JQUERY 来自动刷新 DIV(比如#refreshDIV)并检查空闲时间。这行得通。但是程序(login.php)显示在所说的即refreshDIV中。我想在主浏览器中打开...请帮助