【问题标题】:Codeigniter - How to get remaining expiration time of a session tempdata?Codeigniter - 如何获取会话临时数据的剩余到期时间?
【发布时间】:2018-01-09 03:00:00
【问题描述】:
我想获取之前设置的会话临时数据过期时间的剩余时间。反正我能得到它吗?
Edit - 我说的是 Codeigniter 框架中的 Session 库中名为 mark_as_temp() 的方法。
CodeIgniter 还支持“临时数据”,即具有特定属性的会话数据
到期时间。值过期后,或者会话过期或者是
删除,值会被自动删除。
使用此功能,您可以将现有会话变量标记为在先前设置的时间到期。时间到期后,只会从$_SESSION 数组中删除该特定会话变量。
$_SESSION['item'] = 'value';
$this->session->mark_as_temp('item', 300); // Expire in 5 minutes
我想要的只是获得该临时会话变量到期之前的剩余时间 - 即在页面刷新/重定向之后。
【问题讨论】:
标签:
php
session
session-variables
codeigniter-3
【解决方案1】:
没有一个答案真正回答了这个问题。
为什么?
如果 codeigniter 已经存储了它并且问题指出“...如何...从 codeigniter”,您为什么要存储自己的会话时间到期。
如何
我发现 CI 将 $_SESSION 数据存储在 <__ci_vars> 键中。示例:
$this->session->set_tempdata("mykey", "something", 500);
echo $_SESSION[__ci_vars]["mykey"] // the second key is the name of the tempdata;
//I tried with $this->session ... didn't work for me.
我认为它存储了纪元时间(时间戳),之后临时数据将被删除。
警告
如果 CI 更新......好吧,你知道的。