如何在Codeigniter中控制会话

时间:2017-06-28 05:59:37

标签: php codeigniter session

我正在使用Codeigniter3,我正在尝试仅为特定允许的用户(我们服务的用户)生成会话。

由于codeigniter 3正在为所有请求创建会话,因此存储在我们数据库中的会话数量增长如此之快。我希望尽可能保持最少的会话数。

会话的配置如下所示。

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = '_s';
$config['sess_expiration'] = 0;
// $config['sess_save_path'] = NULL;
$config['sess_save_path'] = 'CiSessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 30000;
$config['sess_regenerate_destroy'] = FALSE;

1 个答案:

答案 0 :(得分:1)

我猜在Codeigniter这是不可能的 我唯一能想到的就是使用cookies

含义:

在您的登录页面上设置一个类似

的cookie
VCTargestPath14
你的autoload.php中的

只有在设置了cookie

时才加载此库
$this->load->helper("cookie");
$cookie = array(
    'name'   => 'isLoggedIn',
    'value'  => '1',
    'expire' => '7200',
    'path'   => '/'
);
$this->input->set_cookie($cookie);

请注意,您遇到了一些逻辑问题(如果用户刚访问登录页面并在此之后离开,登录尝试失败时会发生什么等,会发生什么情况) 所以你要考虑这些可能性。

我不喜欢这种方法,但正如我所说,这是唯一想到的东西;)