2010-06-17 2 views
2

У нас есть внутренняя панель управления, в которой все сотрудники офиса регистрируются на весь день, включая обслуживание клиентов. Я бы хотел, чтобы он был настроен так, чтобы он задерживал вас в течение 1 часа до истечения срока вашей сессии. Как я могу изменить это в PHP.ini? Я сделал изменения до того, как понял, будет держать сеанс открытым до тех пор, пока окно браузера не будет закрыто, но оно не вступило.Считайте учетные записи зарегистрированными

ответ

8

Есть два различных значения, которые вы можете установить:

session.gc_maxlifetime указывает количество секунд, после чего данные будут рассматриваться как «мусор» и потенциально очищены.

и session.cookie_lifetime, до которого будет продолжаться файл cookie.

http://www.php.net/manual/en/session.configuration.php

оба значения могут быть установлены в файле php.ini, но могут получить переопределены в файлах .htaccess или в сценариях с использованием ini_set.

0

Я не думаю, что это можно сделать из файла php.ini. Я думаю, вы либо хотите сохранить время входа на сервер и сравнить это с текущим временем и удалить, если прошло 60 минут, или, альтернативно, использовать файлы cookie - это может иметь явный срок службы. См. this для получения дополнительной информации о файлах cookie.

1

Самое безопасное место для реализации этого было бы в вашем приложении. Вы можете сохранить время обновления сеанса в $ _SESSION для каждой загрузки страницы. Прежде чем обновлять его, вы проверяете, превысило ли он ограничение на 60 минут, и в этом случае вы можете использовать session_destroy() для завершения сеанса, а затем перенаправление на страницу входа (или аналогичную).

2

Вы также можете сделать это на стороне клиента, используя JavaScript. Используйте вызов AJAX для периодической «регистрации» с сервером, поддерживая сеанс PHP. Вы также можете следить за тем, что пользователь делает что-либо на текущей странице, показывая им сообщение «2 минуты предупреждения» или даже перенаправляет их на страницу с завершением сеанса, когда достигнут период бездействия 1 часа. Вы даже можете использовать это, чтобы «заставить» пользователя выйти из системы.

Это не так безопасно, как это делается исключительно на PHP, но дает вам больше гибкости для создания интересных функций.

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