Я использую новую версию (3.0.0). CodeIgniter и у меня есть новая проблема, мои сеансы не работают. Я имею в виду, что код в контроллере правильный, потому что нет ошибок, но когда я пытаюсь напечатать переменную PHP в представлении, ничего не происходит.
Я проверил свою таблицу на MySQL Server, и ничего, теперь не знаю, в чем проблема. Я поставил свой код 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;
Я должен добавить первую строку, чтобы «сделать» сеансы работоспособными, я не знаю, правильна ли эта конфигурация для создания сеансов в базе данных.
Если у кого-то возникла такая же проблема, помогите мне :(. Мой класс Session не редактировался.
Прежде всего 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();