有人知道一个实用程序或方法,当用户由于不活动而退出时,我可以通过该实用程序或方法更改登录页面信息。目前,在几天不活动之后,我弹出一条登录消息,并将用户重定向到logout.html
,((这是一个tpl),其中会话和cookie被销毁。
我目前正在使用以下内容重定向用户:
header("Location: " . $this->site->hosts->manager . 'login.php');
重定向后,我想在登录框下方显示一条警告消息,显示“由于不活动而超时”。
有关如何完成此请求的任何建议?
答案 0 :(得分:3)
您可以使用标志来告诉用户该用户已注销的原因..
header("Location: " . $this->site->hosts->manager . 'login.php?reason=timedout');
if (isset($_GET['reason']) && $_GET['reason']=="timedout") { echo 'Your session timed out'; }
答案 1 :(得分:1)
修改重定向代码,将参数附加到网址末尾:
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];
}
?>
上述解决方案利用数组存储消息,因为您可以使用其他通知检查,例如“无效的用户名/密码”。此外,它还会检查以确保指定的值在数组的范围内。