Сохраняет ли последняя версия Laravel строку сеанса в базе данных, например последнюю версию Codeigniter?

В настоящее время я работаю над последней версией Codeigniter, и я пытаюсь создать управление пользовательской системой, и я установил сеанс, как показано ниже. Но Codeigniter не удаляет существующую строку старой строки сеанса, и вместо этого они пытаются вставить новую. Это может привести к зависанию пользователя моей таблицы или из-за того, что он будет хранить больше (более 5000 строк) строк пользовательского сеанса, или мое соединение с базой данных может получить ошибки, если все строки сеанса будут храниться вечно и не удалять или обновлять существующие строки данных сеанса.

Как Laravel навсегда сохранит строку своего сеанса в своей базе данных или автоматически удалит строку своего пользователя после того, как пользователь закроет свой браузер или выйдет из системы.

более того, я не вижу, чтобы мой IP отображался в моей базе данных.

$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie']  = TRUE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

введите здесь описание изображения

Пожалуйста, помогите решить мою проблему и, если возможно, дайте мне некоторые идеи


person hengsopheak    schedule 04.11.2014    source источник
comment
Я не знаю, что делает laravel, но разве здесь не проблема с датой истечения срока действия?   -  person ArjanSchouten    schedule 04.11.2014
comment
что означает, что я хочу исправить sess_expiration, верно? Я хочу, чтобы мой пользователь мог войти в систему и сохранить свою сессию дольше 2 часов, хотя я меняю sess_expiration = 100, это все равно то же самое, она по-прежнему сохраняет всю строку сеанса таблицы в БД, не удаляйте   -  person hengsopheak    schedule 04.11.2014
comment
Возможно, вам придется удалить принадлежащие вам сеансы с истекшим сроком действия. Вы можете создать cron для него.   -  person ArjanSchouten    schedule 04.11.2014


Ответы (1)


С Laravel вы можете сохранять данные сеанса файл, базу данных, файл cookie, или кеш, такой как memcached или redis. Laravel очищает просроченные записи сеанса на основе настройки lottery в app/config/session.php в версии 4.2 и в config/session.php в версии 5.0:

/*
|--------------------------------------------------------------------------
| Session Sweeping Lottery
|--------------------------------------------------------------------------
|
| Some session drivers must manually sweep their storage location to get
| rid of old sessions from storage. Here are the chances that it will
| happen on a given request. By default, the odds are 2 out of 100.
|
*/
'lottery' => [2, 100],

Настройка значений lottery изменяет вероятность того, что сборка мусора будет выполняться по любому заданному запросу. Чтобы принудительно очистить данные, установив шансы на 1:1 (т. е. если два значения в lottery совпадают), Laravel заставит Laravel удалить все просроченные данные сеанса при следующем запросе.

person damiani    schedule 07.11.2014