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

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

Я проверил свою таблицу на сервере MySQL, и ничего, я теперь не знаю, в чем проблема. Я положил свой код конфигурации.РНР. (Я не понимаю много вещей в этой новой версии)

$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;

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

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

4 ответов


в первую очередь 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;

смотрите более подробную информацию на их docs

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

помните не забудьте загрузить его через автозапуск.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';

остальная часть кода должна быть в порядке. ссылка на docs.


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

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