如果会话即将到期,则提醒用户,续订会话的选项

时间:2010-10-04 18:39:32

标签: php javascript session

我一整天都在寻找PHP或JavaScript解决方案来实现这一目标。

我想提醒用户他们的会话即将超时(弹出),能够延长会话时间。

如果您需要this page

,可以使用视觉效果

编辑:

如果有帮助,jQuery就是框架

3 个答案:

答案 0 :(得分:4)

这很容易:

  • 使用setTimeout

  • 构建一个使用jQuery UI Dialog

    启动(会话生命周期 - 5分钟)分钟的JavaScript计时器
  • setTimeout功能显示确认对话框,例如使用{{3}}

  • 如果用户想要延长会话时间,请向PHP文件发出Ajax请求。如果文件使用会话,这将“触及”会话的生命周期

  • 发出请求后,设置另一个setTimeout,当会话即将到期时将会触发。

答案 1 :(得分:3)

我建议采用不同的方法;只需为用户刷新会话。大多数不受欢迎的会话死亡都是因为

而发生的
  • 一个长长的电话
  • 意外访问
  • 会议

并且通过确认对话框,当您的用户回来时,会话已经死了 - 只会引起混淆。

相反:

var refresh_session = function () {
    $.get("/refresh_session.php");
},

fifteen_minutes = 15 * 60 * 1000;

setInterval(refresh_session, fifteen_minutes);

- >快乐的用户! : - )

答案 2 :(得分:0)

您可以通过在JS计时器上返回1x1像素图像的脚本来回避这个问题。这个想法是你从这样的PHP脚本开始(不确定这里的标题调用是否完全正确..):

header("ContentType: image/gif");
passthru("my-1x1.gif");

现在,让javascript setInterval函数以合适的间隔(即小于会话GC间隔)调用此脚本。因为图像是从PHP提供的,所以它会更新你的会话,所以理论上你的用户会话只要它们保留在你的网站上就不会结束。