如何在CodeIgniter中获取会话超时?

时间:2011-03-20 12:41:36

标签: codeigniter

我试图在会话超时前5分钟运行一个功能。我的配置文件中的会话超时设置为7,200。是否可以使用CodeIgniter执行此操作?

2 个答案:

答案 0 :(得分:10)

我认为你正在寻找这样的东西:

$lastActivity = $this->session->userdata('last_activity');

$timeOut = time() - 7200 + 300; // now minus the the session 
                                   // timeout plus 5 minutes

if ($lastActivity <= $timeOut)
{
    /* This runs on or after the "5 minutes before mark", but won't run if the
       session has expired. After the session times out, based on the 
       $config['sess_expiration'] var, it's destroyed, as pointed out by
       coolgeek. */

    // ... Do some stuff
}

您可能希望在钩子(see the hook docs here)内部运行它,以便它在运行控制器之前或之后的每个页面加载上运行,具体取决于您要执行的操作。

答案 1 :(得分:2)

如果在超时期限内没有请求(页面点击),则会话超时。因此,php解决方案无法解决问题。

您需要在页面中放置一个javascript计时器,该计时器将从请求页面开始倒计时,并在达到(超时 - 5分钟)阈值时执行一些操作。