Как установить сеанс в базе данных codeigniter 3?

Я использую новую версию (3.0.0). CodeIgniter, и у меня возникла новая проблема, мои сеансы не работают. Я имею в виду, что код в контроллере правильный, потому что ошибок нет, но когда я пытаюсь напечатать переменную PHP в представлении, ничего нет.

Я проверил свою таблицу на сервере MySQL, и ничего, я не сейчас, в чем проблема. Я ставлю свой код config.php. (Я не понимаю много вещей в этой новой версии)

$config['sess_table_name'] = 'ci_sessions'; $config['sess_driver'] = 'database'; $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_save_path'] = NULL; $config['sess_match_ip'] = FALSE; $config['sess_time_to_update'] = 300; $config['sess_regenerate_destroy'] = FALSE; 

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

Если у кого-то такая же проблема, помогите мне пожалуйста 🙁 Мой класс сеанса не редактировался.

Прежде всего, таблица сеансов CI3 и таблица сеансов CI2 ( сохранение данных сеанса в базу данных ) различаются

Новая структура таблицы сеансов

  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, PRIMARY KEY (id), KEY `ci_sessions_timestamp` (`timestamp`) ); 

Во-вторых, они поддерживают старые параметры конфигурации с новой конфигурацией, но лучше использовать новую конфигурацию

 $config['sess_driver'] = 'database'; $config['sess_cookie_name'] = 'ci_sessions'; $config['sess_expiration'] = 7200; $config['sess_save_path'] = 'ci_sessions';//its your table name name $config['sess_match_ip'] = FALSE; $config['sess_time_to_update'] = 300; 

Подробнее см. В своих документах

Для библиотеки сеансов доступно несколько новых функций (функций).

Помните Не забывайте загружать через autoload.php или загружать $this->load->library('session'); перед использованием.

Если вы добавили «первую строку» (т.е. sess_table_name ), чтобы заставить ее работать, это связано с тем, что ваше значение sess_driver установлено в базу данных . Взгляните на список поддерживаемых драйверов, и вы увидите, что для сеансов, основанных на файлах, он будет по умолчанию. Другими словами, если вы удалите эти строки, он должен работать:

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

Удалите эту добавленную строку и установите:

 $config['sess_save_path'] = 'ci_sessions'; 

Остальная часть кода должна быть в порядке. Ссылка на документы .

Попробуй это :

 $config['sess_save_path'] = sys_get_temp_dir();