1

有谁知道当用户因不活动而注销时我可以更改登录页面信息的实用程序或方法。目前,在几分钟不活动后,我弹出一条登录消息并将用户重定向到logout.html, ((这是一个 tpl) 会话和 cookie 被破坏的地方。

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

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

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

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

4

2 回答 2

3

您可以使用一个标志来告诉页面用户退出的原因..

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


if (isset($_GET['reason']) && $_GET['reason']=="timedout") { echo 'Your session timed out'; }
于 2012-07-03T22:11:11.143 回答
1

修改您的重定向代码以将参数附加到 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];
}
?>

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

于 2012-07-03T22:18:40.277 回答