我希望在会话过期(15分钟)但不手动刷新页面时显示警告消息
我有这个:
$Mysession = Mage::getSingleton("core/session");
$Mysession->setData("s", "v");
$myDeviceId = $Mysession->getData("s");
$Mysession->setData("time", time());
//the condition 900= 15minutes
if((time() - $Mysession->getData("time")) > 900){
echo "Session expired";}
此处有效,但只有在我刷新页面时才显示该消息。
我想添加这个但不是一个好主意
$url1=$_SERVER['REQUEST_URI'];
header("Refresh: 5; URL=$url1");
答案 0 :(得分:0)
听起来你想要实现的是客户端,而不是服务器端。
在页面加载时,您可以在javascript中设置计时器。当计时器到期时,显示您的消息。
setTimeout(function() {
alert('Session expired');
}, 900); // 900 = 15 * 60
当然,您可能希望在超时前几分钟发出警告消息,以便让用户有机会刷新或做一些事情来继续他的会话;例如,您可以向服务器发出ajax请求以刷新其会话并重置计时器。并且您可以使用比alert()
更优雅的内容来显示您的消息。到期时,您可能希望将用户直接重定向到新的登录页面,并显示已过期的消息。很多可能性。但是这个例子给出了核心思想。