Я столкнулся с этим вопросом со вчерашнего дня, и все же я не мог этого разрешить. Проблема заключается в том, что сеансы не работают в локальной среде, но когда для целей тестирования я помещаю те же файлы на живой сервер, они работают нормально.
Здесь, если мой файл config.php:
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
$config['cookie_prefix'] = '';
$config['cookie_domain'] = '';
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly'] = FALSE;
Вот как я сохраняю данные в одном из своих файлов модели
$this->session->set_userdata('user',$result); //$result works fine, it produces
right result
На мой взгляд, я попытался получить к нему доступ:
$this->session->userdata['user']['name']; //name here is an element in result array
Я получаю эту ошибку:
Уровень важности: примечание
Сообщение: Undefined index: пользователь
Имя файла: home/home.php
Номер строки: 2
К моему удивлению, этот же код работает без ошибок на сервере.
Также, чтобы знать данные, сохраняемые сеансами Codeigniter, я попробовал метод базы данных.
Я изменил код ниже в файле config.php
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_sessions';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
Вместо того, чтобы вставлять одну строку данных, она вставляет четыре. Пожалуйста, смотрите снимок экрана из базы данных (последние четыре строки).
Может ли кто-нибудь указать на ошибку? Любая помощь будет оценена.