Я использую новую версию (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();