Исправлено время ожидания сеанса

Я создал своего рода экзаменационный сайт, на котором вводятся ответы. Чтобы выяснить ответы, открытая страница экзамена, на которую необходимо войти, может некоторое время не работать.

Я попытался реализовать эту строку кода, чтобы увеличить время ожидания сеанса до часа:

ini_set('session.gc_maxlifetime', 3600);

хотя я не думаю, что это сработало для меня. Должно ли это быть сделано на каждой странице, где у меня есть код:

session_start()

Кроме того, по какому соглашению сеанс входа в систему остается открытым до: - закрытия вкладки - закрытия окна - нажатия кнопки выхода из системы - ввода нового URL-адреса в адресной строке?

1 ответ

Решение

Должно ли это быть сделано на каждой странице

Да. Как руководство по PHP дляini_set состояния:

Опция конфигурации сохранит это новое значение во время выполнения сценария и будет восстановлена ​​в конце сценария.


В качестве альтернативы, вы можете "пинговать" свой сервер каждую минуту, чтобы поддерживать сеанс (например, из ajax запрос к простому сценарию PHP (что-то так просто, как <?php session_start(); ?> будет достаточно)), или вы можете контролировать сеансы самостоятельно с помощью среды, такой как база данных. Крис Шифлетт имеет хороший пост в блоге по этому вопросу.

Другие вопросы по тегам