【问题标题】:Does session_destroy() work without page refresh?session_destroy() 是否在没有页面刷新的情况下工作?
【发布时间】:2015-04-27 21:15:13
【问题描述】:

我想要的是能够在不刷新页面的情况下删除会话数据。 因此,假设我的用户创建了一个会话并让他的计算机处于睡眠模式两年,我想在 4800 秒后删除他的会话...... 我该怎么做?

目前,我有一个仅在刷新时删除会话的代码。

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 4800)) {
    session_unset();     // unset $_SESSION variable for the run-time 
    session_destroy();  // destroy session data in storage
}

$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp  

或者这个代码在没有页面刷新的情况下工作吗? 如果没有,如何不断更新这段代码?

【问题讨论】:

  • 如果他们向服务器发出另一个请求,那么您的代码将运行并最终销毁会话。
  • 我认为 JavaScript 更适合这种情况,因为它在客户端而不是服务器端运行。
  • 除非您告诉它,否则代码不会自行更新。向它添加一个监听器,它会在您需要的每个时间间隔刷新。
  • “假设我的用户创建了一个会话并让他的计算机处于睡眠模式两年” - 肯定会出现电源故障,而那个人将不得不最终给他们充电。谁让电脑开着 2 年?
  • 非常感谢大家,我将使用 javascript 'setTimeout' 函数......我知道我可以使用它,但只是想确保没有其他东西......

标签: php session


【解决方案1】:

只需将此代码添加到页面中的任何位置

<script type="text/javascript">
  setTimeout(function(){
    location = ''
  },60000)
</script>

参考:Refresh Page for interval using js

【讨论】:

    【解决方案2】:

    100% 工作只需添加此代码一次

    setTimeout(function () {
    window.location.href = "";
    }, 3000);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      相关资源
      最近更新 更多