2016-07-21 3 views
0

У меня есть PHP сайт, написанный с CodeIgnitor 3. Я храню сеансы в таблице базы данных. Проблема заключается в том, что сеансы разрушаются примерно через 30-40 минут жизни в дневное время и примерно через 60-80 минут в ночное время. Самые старые сеансы просто удаляются из таблицы, а другие остаются в живых.

Мой конфигурации:Сессии уничтожаются в CodeIgnitor

$config['sess_driver'] = 'database'; 
$config['sess_cookie_name'] = '<cookie_name>'; 
$config['sess_expiration'] = 0; 
$config['sess_save_path'] = '<table_name>'; 
$config['sess_match_ip'] = FALSE; 
$config['sess_time_to_update'] = 30000; 
$config['sess_regenerate_destroy'] = FALSE; 

Раньше я использовал Codeigniter 2 и проблема была та же.

+0

так что вы пытаетесь спросить? предотвратить уничтожение сеанса? – Kelvin

+0

Да, точно. Я хочу, чтобы сеансы длились не менее 8 часов. –

+0

показать свой код, как вы устанавливаете сеанс – Kelvin

ответ

0

Я решил проблему самостоятельно. Есть Ошибка в официальной документации. Если я установил $config['sess_expiration'] в 0, CodeIgniter получает sess_expiration параметр от php.ini файл (вдруг!). Итак, установка $config['sess_expiration'] = $config['sess_time_to_update'] решает мою проблему.


CodeIgniter переопределяет garbage collector, который работает с вероятностью 1% во время запроса на сайт, поэтому поэтому сеансы были более продолжительными в ночное время.

Спасибо всем, кто участвует в обсуждении.

Смежные вопросы