首页 > 解决方案 > 我们可以在一段时间后取消设置特定的会话变量吗?

问题描述

我正在使用设置会话变量

$this->session->userdata(variable_name, value)

我只想在一段时间后取消设置这个会话变量,我不想取消设置或破坏整个会话,我想在 30 分钟后取消设置上面设置的会话变量。

$this->session->unset_userdata(variable_name)

我怎样才能做到这一点?

标签: codeigniter

解决方案


一种方法是在您设置会话的位置设置时间戳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);
}

推荐阅读