为什么我无法从会话中检索数据,而CodeIgniter3中会话表的行自动增加?

时间:2015-06-11 05:17:07

标签: codeigniter session

我使用 Codeigniter3 创建了新的网络应用,我的会话数据存在问题。

问题1 :我无法从会话数据中检索任何数据,尽管它存在于数据库中。

问题2:虽然我将sess_expire_on_close设置为True,但会话表的行会自动增加并且永远不会删除。而当我在Firefox中刷新页面时,4行表会话会同时增加。因此,如果我的网页刷新更多,它将增加到越来越多的行,如果我在Chrome浏览器中刷新,它会逐渐增加。

注意:我已经清理了我的浏览器数据或会话,并重新安装了新的。

请检查我的配置。

$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'tb_session';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;

请检查我的附件,以查看chrome和firefox刷新页面时行数的增加。

当我使用这种方法时,我也可以从表会话中检索任何数据

$this->data['f'] = $this->session->userdata('email');

这是刷新页面时增加行数的图像

enter image description here

这是每次刷新的Firefox 4rows

enter image description here

1 个答案:

答案 0 :(得分:0)

CI2和CI3之间存在混淆 这是CI3配置

$config['sess_table_name'] = 'ci_sessions';
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'com';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 86400*365;
$config['sess_regenerate_destroy'] = TRUE; 

我对会议桌ID感到困惑请查看下面的

CREATE TABLE "ci_sessions" (
        "id" varchar(40) NOT NULL,
        "ip_address" varchar(45) NOT NULL,
        "timestamp" bigint DEFAULT 0 NOT NULL,
        "data" text DEFAULT '' NOT NULL,
        PRIMARY KEY ("id")
);

之后CI3会议是有帮助的