Как поддерживать сеанс PHP, используя (клиентские) файлы cookie?

Звучит как простой вопрос, но после нескольких часов исследований мне все еще нечего было решить.

Я бы хотел простой вещи: держать пользователей авторизованными на моем сайте дольше 24 минут.

Мой сайт работает на сервере apache и виртуальном хостинге, у меня нет доступа для редактирования файла php.ini.

Возиться с (session.gc_maxlifetime) не работал.

На данный момент я ищу решение на основе файлов cookie - файл cookie, который хранится на стороне клиента и удаляется при выходе из системы. Таким образом, PHP не разрушит сеанс, несмотря на бездействие, если этот файл cookie присутствует.

Это возможно?

(У меня есть сайт с длинными статьями, поэтому сервер может считать пользователей «неактивными» и выходить из системы, когда они щелкают, чтобы перейти к следующей статье. Вот что происходит сейчас.)

когда вы устанавливаете сеанс, зашифруйте значение сеанса и сохраните его в cookie. В начале вашей php-страницы расшифруйте этот конкретный файл cookie и проверьте, действителен он или нет. Если это действительно так, то установите Session. P.S: не забудьте отключить этот файл cookie при выходе пользователя из системы.

Santu Roy 28.10.2018 20:33

Вы имеете в виду, что я должен проверить, существует ли cookie вообще или как-то так, чтобы значение сеанса, считанное из файла cookie, соответствовало текущему значению в переменных сеанса PHP?

Farkas 28.10.2018 20:37

скажем, например, вы устанавливаете сеанс для электронной почты пользователя, когда пользователь вошел в систему. Поэтому я просто хочу сказать, что вместе с установкой сеанса установите для него файл cookie. В начале вашей php-страницы просто проверьте, установлен ли файл cookie или нет, и подтвердите, что идентификатор электронной почты, хранящийся в файле cookie, существует в вашей БД или нет. Если он существует, установите сеанс с этим идентификатором электронной почты

Santu Roy 28.10.2018 20:41

Предположим, что файл cookie существует и содержит достоверную информацию. Что же тогда делать? Что делать, если нет? Извините, что беспокою вас такими вопросами, но я действительно не понимаю этой части.

Farkas 28.10.2018 22:12

Хорошо, позвольте мне перейти к деталям:

Santu Roy 28.10.2018 22:14

Пусть $ _SESSION ['useremail'] и $ _COOKIE ['user_auth'] - это то, что вы устанавливаете при входе пользователя в систему. Просто напишите это в начале страницы, если (isset ($ _ COOKIE ['user_auth'] && $ _COOKIE ['user_auth'] существует в БД ')) {$ _SESSION [' useremail '] = $ _COOKIE [' user_auth '] ; } и вам не нужно ничего писать, если значение cookie недействительно

Santu Roy 28.10.2018 22:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
164
0

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