Систему смарт с CodeIgniter
у Меня есть приложение, разработанное с CodeIgniter, PHP и MySQL. Сеанс пользователя всегда была обработана по умолчанию CodeIgniter, но теперь мне нужно, что сессия является более строгим, работает аналогичным образом в систему интернет-банкинга, выдох на семь минут (420 секунд), время простоя, время, что каждый запрос от клиента к серверу эти семь минут отремонтированы.
я Не знаю, если изначально только установив параметры CodeIgniter поддерживает такой способ хранения сеанса, но не получили представлять эту форму работы.
я Не знаю, если этот уровень ограничений нужно реализовать некоторые методы класса CI_Session, или, если можно просто правильно настроить параметры CI?
и В противном случае, будет, что уже существует класса или плагин CodeIgniter, который уже деятельности, как это реализовано?
Пример того, как я настройка параметры:
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 420;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 420;
$config['sess_storage'] = 'database';
$config['sess_database'] = 'default';
$config['sess_timeout'] = 7200;
$config['sess_destroy_on_timeout'] = FALSE;
$config['sess_update_interval'] = 180;
$config['sess_gc_probability'] = 10;
$config['sess_http_only'] = FALSE;
$config['sess_secure'] = FALSE;
$config['sess_forwarded_ip'] = FALSE;
2 answers
Я Думаю, что CodeIgniter не имеет это, но это очень просто. Любые запросы, сделанные в приложении, где любой странице, которая содержит session_start()
в начале сессии будет возобновить и начать отсчет снова, то есть, будет выполнять функции, которые вы хотите.
Если пользователь стоять на страницу заполнения и обмотки и так далее, он может быть deslogado, точно? Потом также или, по крайней мере, один способ избежать этого, является то, что у вас есть функция AJAX, которая вызывает какие-либо страницы любой, содержащий session_start()
продлить сеанс, если он еще не открытой странице. Но эта ситуация может меняться, например, в интернет-кафе в конечном итоге продолжительность жизни человека, и в некоторые браузеры продолжают открыт в зависимости от системы Lan.
- То может думать о какой-либо логики для управления вашего приложения.
Мне удалось решить проблему, просто переставляя конфигурации сеанса CodeIgniter, установив в файле config.php
моем приложении параметры для работы сессии.
В Принципе, я снова в документации CodeIgniter, и я удалил некоторые из параметров, которые попали в немилость начиная с версии 2.0.
Я Использовал инструкции для каждого параметра сеанса CI, определенные на рисунке:
В моем применения, параметры, относящиеся к конфигурации сессии были следующим образом:
$config['sess_cookie_name'] = 'fwsibe';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 0;
Я Пришел к такому решение благодаря следующий пост в stack overflow международный: CodeIgniter Session equal to Internet Banking