Я установил свой конфиг, чтобы завершить сеанс при закрытии, и использовал таблицу базы данных, содержащуюся в руководстве CI, для хранения сеансов.CodeIgniter - запись сеанса, не удаленная из базы данных (CI - 2.1.4)
Но когда я закрываю браузер, данные сеанса по-прежнему сохраняются в базе данных. Меня волнует захват сеанса; запись остается в базе данных (то есть userdata: loggedin == true), и пользователь может просто установить свой собственный сеанс с этим значением и выключить их.
Почему запись в базе данных не удаляется при закрытии браузера, когда пользователь не нажимает кнопку выхода, но закрывает окно своего браузера?
мои настройки конфигурации:
$config['sess_cookie_name'] = 'cisess';
$config['sess_expiration'] = 0;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'usersess';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
Спасибо за ответ. Я попытался установить sess_expiration на значение, отличное от 0, оно удаляет столбец userdata (но не всю строку). Но основная проблема по-прежнему существует, т. Е. Не делает этого, когда пользователь закрывает свой браузер. – a7omiton
Я собираюсь попробовать этот пользовательский класс сеанса: https://github.com/EllisLab/CodeIgniter/wiki/PK-Session и посмотрите, как это происходит. Похоже, что у других была такая же проблема. Gotta love open source :) – a7omiton
Я думаю, что вся строка не удаляется из таблицы сеанса, хотя мы уничтожаем сеанс. Новый идентификатор сеанса (строка) создается каждый раз при входе в систему, но он не удаляется из таблицы. Проверяет ли каждый идентификатор каждый раз, чтобы создать новый идентификатор. – Dipen