我想在会话过期(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");
听起来您想要实现的是客户端,而不是服务器端
在页面加载时,你可以在javascript中设置一个计时器。当计时器到期时,显示您的消息。setTimeout(function() {
alert('Session expired');
}, 900); // 900 = 15 * 60
当然,你可能更喜欢在超时前几分钟给出一个警告消息,让用户有机会刷新或做一些事情来继续他的会话;例如,您可以向服务器发出一个ajax请求来刷新会话并重置计时器。您可以使用比alert()
更优雅的东西来显示您的消息。在过期时,您可能希望将用户直接重定向到一个新的登录页面,并显示他已过期的消息。有很多可能性。但是这个例子给出了核心思想。