如何防止CodeIgniter为每次访问创建会话?

时间:2012-12-03 01:01:47

标签: php codeigniter session tankauth

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

登录
$this->tank_auth->is_logged_in()

这指的是libraries / Tank_auth.php

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

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

所以我想知道是否有办法绕过这个,因为我的数据库正在为未登录的用户填充空会话。

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

1 个答案:

答案 0 :(得分:0)

你可以做两件事来删除非主动会话: -

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

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

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