codeigniter - 我们可以在一段时间后取消设置特定的会话变量吗?
问题描述
我正在使用设置会话变量
$this->session->userdata(variable_name, value)
我只想在一段时间后取消设置这个会话变量,我不想取消设置或破坏整个会话,我想在 30 分钟后取消设置上面设置的会话变量。
$this->session->unset_userdata(variable_name)
我怎样才能做到这一点?
解决方案
一种方法是在您设置会话的位置设置时间戳variable_name
。这将使您能够将当前时间与variable_name
设置的时间进行比较。
if (!isset(variable_name)) { // optional line if you want to stop the session from resetting
$this->session->userdata(variable_name, value);
$this->session->userdata(timestamp_variable_name, time());
}
// Convert 30 minutes into 1800 seconds ...
// Compare the current time with the time the variable was set ...
if (time() - strtotime($_SESSION['timestamp_variable_name']) > 1800)) {
$this->session->unset_userdata(variable_name);
$this->session->unset_userdata(timestamp_variable_name);
}
推荐阅读
- javascript - Jquery md-timepicker 在 ng-repeat 中不起作用
- visual-studio - Visual Studio 设置项目(或 Wix)并添加主机条目
- flutter - 颤动:水平listView项目之间的空间
- maven - Gradle 缺少传递依赖
- excel - 如何导出具有动态工作表名称的工作表
- r - 房地产网页抓取 [r]
- events - JavaFX 获取大写锁定状态
- wpf - 检查 WPF Prism 对话框是否已打开
- android - Android Studio 4.1 中的 Gradel 构建问题
- nginx - 从 NGINX-RTMP 实时模式获取时的音视频延迟