2016-02-27 5 views
0

Я пытаюсь сохранить свою сессию в базе данных без успеха. Я уже установил конфигурацию CI, автозагрузка и ничего не работает.Codeigniter не сохраняет сеансы в базе данных

На мой контроллер

$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

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

Config

$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 стол на MYSQL

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.

Session Database User Guide CI3

Если вы используете CodeIgniter 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'); 
Смежные вопросы