由于不活动而在销毁会话后修改登录页面

时间:2012-07-03 22:09:44

标签: php

有人知道一个实用程序或方法,当用户由于不活动而退出时,我可以通过该实用程序或方法更改登录页面信息。目前,在几天不活动之后,我弹出一条登录消息,并将用户重定向到logout.html,((这是一个tpl),其中会话和cookie被销毁。

我目前正在使用以下内容重定向用户:

header("Location: " . $this->site->hosts->manager . 'login.php');

重定向后,我想在登录框下方显示一条警告消息,显示“由于不活动而超时”。

有关如何完成此请求的任何建议?

2 个答案:

答案 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];
}
?>

上述解决方案利用数组存储消息,因为您可以使用其他通知检查,例如“无效的用户名/密码”。此外,它还会检查以确保指定的值在数组的范围内。