1

我在 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);
}

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

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

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

4

1 回答 1

0

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

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

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

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

于 2012-12-03T05:50:46.257 回答