有谁知道当用户因不活动而注销时,我可以更改登录页面信息的实用程序或方法。目前,在几次不活动之后,我弹出一条登录消息并将用户重定向到logout.html
,(这是一个tpl),其中会话和cookie被销毁。
我目前正在使用以下方法来重定向用户:
header("Location: " . $this->site->hosts->manager . 'login.php');
重定向后,我想在登录框下方显示一条警报消息,显示"由于不活动而超时"。
关于如何完成此请求的任何建议?
您可以使用标志告诉页面用户注销的原因。
header("Location: " . $this->site->hosts->manager . 'login.php?reason=timedout');
if (isset($_GET['reason']) && $_GET['reason']=="timedout") { echo 'Your session timed out'; }
修改重定向代码以将参数附加到 URL 的末尾:
header("Location: " . $this->site->hosts->manager . 'login.php?e=0');
然后,您将通过检查参数是否存在来在login.php
页面上引用此参数。 如果存在,则通知用户他们因不活动而注销。
<?php
$error = (isset($_GET['e']) ? $_GET['e'] : '');
$reasons = array(
'0' => 'Logged out due to inactivity.',
'1' => 'Invalid Username/Password.'
);
if(!empty($error) && $error < count($reasons)){
echo $reasons[$error];
}
?>
上述解决方案利用数组来存储消息,因为您可以利用检查其他通知,例如"无效的用户名/密码"。 此外,它还会进行检查以确保指定的值在数组的边界内。