当会话过期时显示警告消息


Display a warning message when the session has expired

我想在会话过期(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()更优雅的东西来显示您的消息。在过期时,您可能希望将用户直接重定向到一个新的登录页面,并显示他已过期的消息。有很多可能性。但是这个例子给出了核心思想。