【问题标题】:Display a warning message when the session has expired会话过期时显示警告消息
【发布时间】:2015-10-21 11:26:44
【问题描述】:

我想在会话过期(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");

【问题讨论】:

    标签: php magento zend-framework magento-1.9


    【解决方案1】:

    听起来你想要实现的是客户端,而不是服务器端。

    在页面加载时,您可以在 javascript 中设置一个计时器。当计时器到期时,显示您的消息。

    setTimeout(function() {
        alert('Session expired');
    }, 900); // 900 = 15 * 60
    

    当然,您可能更愿意在超时前几分钟发出警告消息,让用户有机会刷新或做一些事情来继续他的会话;例如,您可以向服务器发出 ajax 请求以刷新他的会话并重置计时器。您可能会使用比alert() 更优雅的方式来显示您的信息。在到期时,您可能希望将用户直接重定向到新的登录页面,并显示他已过期的消息。很多可能性。但是这个例子给出了核心思想。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-28
      • 2017-02-07
      • 2012-11-05
      • 2013-04-28
      • 2019-12-22
      • 1970-01-01
      • 2018-01-27
      • 2016-05-03
      相关资源
      最近更新 更多