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

Я использую новую версию (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 не редактировался.

11

Решение

Прежде всего 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'); прежде чем использовать его.

29

Другие решения

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

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

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

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

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

0

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

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