Php 由于不活动,在销毁会话后修改登录页
是否有人知道一个实用程序或方法,当用户因不活动而注销时,我可以通过该实用程序或方法更改登录页信息。目前,在几次不活动之后,我弹出一条登录消息,并将用户重定向到Php 由于不活动,在销毁会话后修改登录页,php,Php,是否有人知道一个实用程序或方法,当用户因不活动而注销时,我可以通过该实用程序或方法更改登录页信息。目前,在几次不活动之后,我弹出一条登录消息,并将用户重定向到logout.html,((这是一个tpl),其中会话和cookie被销毁 我当前正在使用以下命令重定向用户: header("Location: " . $this->site->hosts->manager . 'login.php'); 重定向后,我想在登录框下方显示一条警告消息,显示“由于不活动而超时” 关于如何
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'; }
您可以使用标志告知页面用户注销的原因
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];
}
?>
上述解决方案使用一个数组来存储消息,因为您可以使用对其他通知(如“无效用户名/密码”)的检查。此外,它会检查以确保指定的值在数组的范围内。修改重定向代码以将参数附加到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];
}
?>
上述解决方案使用一个数组来存储消息,因为您可以使用对其他通知(如“无效用户名/密码”)的检查。此外,它会检查以确保指定的值在数组的范围内。不要忘记检查是否存在
$\u GET['reason']
首先。否则,如果它没有包含在URL中,您将得到一个错误。如果(!empty($\u get['reason'])和&$\u get['reason']='timedout'){…}
@curtisdf Good save,还没有使用过!以前是空的,所以我会用我所知道的来保证安全。isset()
在这种情况下实际上更有效一些empty()
在内部执行isset()
,同时检查值是否为,呃,空。;-)@curtisdf So,!empty()
会导致index.php?reason=之类的失败,而isset()
则会是true?完全正确<代码>!在这种情况下,empty()将返回FALSE
,而isset()
将返回TRUE
。不要忘记先检查$\u GET['reason']
是否存在。否则,如果URL中没有包含它,您将得到一个错误<代码>如果(!empty($\u GET['reason'])和&$\u GET['reason']=='timedout'){…}@curtisdf保存良好,尚未使用!之前清空,这样我就可以安全地使用我知道的内容。isset()
也可以工作。:-)在这种情况下,它实际上更有效一些empty()
在内部执行isset()
,同时检查值是否为,呃,空。;-)@curtisdf So,!empty()
会导致index.php?reason=之类的失败,而isset()
则会是true?完全正确<代码>!在这种情况下,empty()将返回FALSE
,而isset()
将返回TRUE
。