php - 如何在 php codeigniter 中提醒或警告用户 session 即将过期

标签 php codeigniter session

基本上,我正在寻找一种解决方案,在 session 到期前五分钟通知用户。

理想的解决方案是倒计时通知,其中包含续订 session 的选项。

如果倒计时器到期而用户没有刷新页面,我需要将它们注销。

最佳答案

由于一旦您返回服务器端并且脚本调用 session_start() session 就会刷新,因此您确实需要在 Javascript 中执行此操作。但是,如果用户打开了两个浏览器窗口,并且其中一个处于非事件状态,而其中一个窗口处于非事件状态,而用户仍在与另一个窗口产生流量,则空闲窗口中的 JavaScript 会错误地报告 session 即将过期。因此,您需要实现自己的 ajax 包装器来检测 session 的年龄,而不调用 session_start()。

类似于:

 $session_id=$_REQUEST[session_name()];
 // if you use the default handler:
 $session_last_access=filemtime(session_save_path() . '/' . $session_id);
 $time_left=time() + session_cache_expire() - $session_last_access;

C.

关于php - 如何在 php codeigniter 中提醒或警告用户 session 即将过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2809768/

相关文章:

php - Laravel 的 redirectTo() 方法发生了什么?

php - 如何将 composer 包安装到/src 目录中?

mysql - Codeigniter SQL 查询 - DATE_ADD

php - 使用 CodeIgniter 在 MySQL 中匹配区分大小写的 LIKE 和 WHERE 子句

node.js - 在nodejs/expressjs中使用RedisStore

java - java 毫秒后自动按回车键

php 爆炸在 javascript 模板中不起作用

mysql - Codeigniter 加入的重复结果

session - 在 invalidate() 之后,是否可以从请求对象中获取新的 session ?

asp.net-mvc - asp.net mvc 和网络农场