2016-02-27 126 views
0

我試圖將會話保存到數據庫而沒有成功。我已經設置了CI配置,自動加載和沒有任何作品。Codeigniter不會保存數據庫上的會話

在我的MYSQL

控制器

$session_data = array(
    'session_id' => session_id(), 
    'ip_address' => $this->input->ip_address(), 
    'user_agent'  => $this->input->user_agent(), 
    'last_activity' => substr($_SERVER['HTTP_USER_AGENT'], 0, 120), 
    'user_data' => 'logged' 
); 

$this->session->set_userdata('ci_sessions', $session_data); 

自動加載

$autoload['libraries'] = array('database','session'); 
$autoload['drivers'] = array('session'); 

配置

$config['encryption_key'] = 'wqf35MV437ytPyGweGHH24775zK8u7uD'; 
$config['sess_driver'] = 'files'; 
$config['sess_cookie_name'] = 'ci_sessions'; 
$config['sess_encrypt_cookie'] = FALSE; 
$config['sess_expiration'] = 8640; 
$config['sess_use_database'] = TRUE; 
$config['sess_table_name'] = 'ci_sessions'; 
$config['sess_expire_on_close'] = TRUE; 
$config['sess_save_path'] = NULL; 
$config['sess_match_ip'] = TRUE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = FALSE; 

和默認ci_session表

CREATE TABLE IF NOT EXISTS 'ci_sessions' (
session_id varchar(40) DEFAULT '0' NOT NULL, 
ip_address varchar(45) DEFAULT '0' NOT NULL, 
user_agent varchar(120) NOT NULL, 
last_activity int(10) unsigned DEFAULT 0 NOT NULL, 
user_data text NOT NULL, 
PRIMARY KEY (session_id), 
KEY 'last_activity_idx' ('last_activity') 
); 

回答

0

您已將CI2會話配置與CI3會話配置混合在一起。

會議Database User Guide CI3

如果您使用笨3如果你想話保存到數據庫

變化

$config['sess_driver'] = 'files'; 
$config['sess_save_path'] = NULL; 

$config['sess_driver'] = 'database'; 

// This will be your table name for session 

$config['sess_save_path'] = 'ci_sessions'; 
$config['sess_expiration'] = 7200; 
$config['sess_match_ip'] = TRUE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = FALSE; 

而且

CREATE TABLE IF NOT EXISTS `ci_sessions` (
     `id` varchar(40) NOT NULL, 
     `ip_address` varchar(45) NOT NULL, 
     `timestamp` int(10) unsigned DEFAULT 0 NOT NULL, 
     `data` blob NOT NULL, 
     KEY `ci_sessions_timestamp` (`timestamp`) 
); 

那我就自動加載會議

$autoload['libraries'] = array('session');