Ответ 1
В этой ситуации часто используется решение:
- имеют не слишком длительный период сеанса: он истекает, если пользователь не активен (это так, как он работает), и это лучше для вашего сервера, если у вас много пользователей.
- Когда пользователь входит в систему, вы устанавливаете файл cookie, который содержит то, что необходимо для его распознавания.
- если он возвращается на сайт (с файлом cookie и без активного сеанса), вы используете информацию, содержащуюся в этом файле cookie, для автоматического входа в систему, повторного создания сеанса одновременно.
Таким образом:
- у вас нет тысяч сеансов "активных" без уважительной причины.
- вы выполняете стандартный сеанс работы.
И у вас есть преимущество "никогда не быть отлученным", по крайней мере, с точки зрения пользователя.
Также обратите внимание, что при "нормальных" сеансах куки файлы, содержащие идентификатор сеанса, будут удалены, когда пользователь закроет свой браузер, поэтому он будет отключен, независимо от того, сколько времени занимает сеанс.
С решением, которое я предлагаю, вы устанавливаете, как долго cookie должен оставаться на пользовательском компьютере; -)
Это означает, однако, что, когда пользователь вручную выходит из системы, вы должны, конечно же, удалить его сеанс и куки файл, поэтому он не сразу повторно автозарегистрируется.
Конечно, вы должны быть осторожны с тем, что вы установили в cookie: cookie не совсем безопасен, поэтому не храните в нем пароль, например: -)
На самом деле, этот способ делать вещи - это то, как часто работает функция "запомнить меня"; кроме, здесь, вашим пользователям не нужно будет устанавливать флажок, чтобы активировать "запомнить меня"; -)
Если у вас нет времени на разработку такого рода материалов, довольно быстрый и грязный способ заключается в использовании какого-либо запроса Ajax на всех ваших страницах, который будет просто "пинговать" страницу PHP на сервере - это будет поддерживать сеанс активен (но это не совсем хороший способ сделать вещи: у вас все еще будет много сеансов на сервере, у вас будет много бесполезного запроса... и он будет работать только до тех пор, пока пользователь не сделает закройте его браузер).