Сохранить учетные записи в системе - PullRequest
2 голосов
/ 18 июня 2010

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

Ответы [ 4 ]

8 голосов
/ 03 июля 2010

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

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

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

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

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

2 голосов
/ 04 июля 2010

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

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

1 голос
/ 03 июля 2010

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

0 голосов
/ 18 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...