【发布时间】:2017-06-27 08:23:34
【问题描述】:
我已经阅读了几篇关于这个主题的文章,但仍然不完全理解客户端会话 cookie、服务器端会话文件以及 PHP 在运行期间“随机”选择删除或保留会话的方式之间的关系垃圾回收。
我试图确保的行为是:
- 用户登录,会话开始
- 如果用户在 1 小时内处于非活动状态*,则会话为 销毁
*这对我的网站至关重要,因为用户可能会在同一页面上花费一个小时显然“空闲”,但实际上他们并没有空闲。他们可能正在撰写长篇报告、观看视频等。
我目前使用的是:
session_start();
setcookie(session_name(),session_id(),time()+3600);
此代码在每次页面加载时执行。
我还通过 setInterval 每分钟触发一个 AJAX 请求,该请求会在用户明显“空闲”的页面上加载包含上述代码的 PHP 脚本。
我的方法能否确保我需要的行为?还是我错过了什么?也许有一种更简洁的方法来确保这种行为。
非常感谢。
【问题讨论】:
-
这对会话垃圾收集有很好的解释:stackoverflow.com/questions/520237/…