【问题标题】:How to prevent CodeIgniter from creating a session for every visit?如何防止 CodeIgniter 为每次访问创建会话?
【发布时间】:2012-12-03 01:01:47
【问题描述】:

我在 CodeIgniter 2.1.3 中使用保存到数据库和 TankAuth 的会话。 总体设置是 TankAuth 检查用户是否通过

$this->tank_auth->is_logged_in()

这是指库/Tank_auth.php

function is_logged_in($activated = TRUE)
{
    return $this->ci->session->userdata('status') === ($activated ? STATUS_ACTIVATED : STATUS_NOT_ACTIVATED);
}

这需要初始化会话类 -- 然后将在数据库中创建一个新会话。

所以我想知道是否有办法规避这种情况,因为我的数据库中充满了未登录用户的空会话。

关于如何解决这个问题的任何想法/建议?

【问题讨论】:

    标签: php codeigniter session tankauth


    【解决方案1】:

    您可以做 2 件事来删除非活动会话:-

    1. 每当用户注销时,从数据库中删除其行并调用会话销毁函数,如

      $this->CI->DB_Master->where('session_id', $session['session_id']); $this->CI->DB_Master->delete($this->session_table); $this->sess_destroy();

    2. 运行 cron 作业,根据您的数据库数据在每个特定时间间隔后运行,删除与非活动用户对应的行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-05
      • 2016-01-23
      • 2016-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-13
      相关资源
      最近更新 更多