Звучит как простой вопрос, но после нескольких часов исследований мне все еще нечего было решить.
Я бы хотел простой вещи: держать пользователей авторизованными на моем сайте дольше 24 минут.
Мой сайт работает на сервере apache и виртуальном хостинге, у меня нет доступа для редактирования файла php.ini.
Возиться с (session.gc_maxlifetime) не работал.
На данный момент я ищу решение на основе файлов cookie - файл cookie, который хранится на стороне клиента и удаляется при выходе из системы. Таким образом, PHP не разрушит сеанс, несмотря на бездействие, если этот файл cookie присутствует.
Это возможно?
(У меня есть сайт с длинными статьями, поэтому сервер может считать пользователей «неактивными» и выходить из системы, когда они щелкают, чтобы перейти к следующей статье. Вот что происходит сейчас.)
Вы имеете в виду, что я должен проверить, существует ли cookie вообще или как-то так, чтобы значение сеанса, считанное из файла cookie, соответствовало текущему значению в переменных сеанса PHP?
скажем, например, вы устанавливаете сеанс для электронной почты пользователя, когда пользователь вошел в систему. Поэтому я просто хочу сказать, что вместе с установкой сеанса установите для него файл cookie. В начале вашей php-страницы просто проверьте, установлен ли файл cookie или нет, и подтвердите, что идентификатор электронной почты, хранящийся в файле cookie, существует в вашей БД или нет. Если он существует, установите сеанс с этим идентификатором электронной почты
Предположим, что файл cookie существует и содержит достоверную информацию. Что же тогда делать? Что делать, если нет? Извините, что беспокою вас такими вопросами, но я действительно не понимаю этой части.
Хорошо, позвольте мне перейти к деталям:
Пусть $ _SESSION ['useremail'] и $ _COOKIE ['user_auth'] - это то, что вы устанавливаете при входе пользователя в систему. Просто напишите это в начале страницы, если (isset ($ _ COOKIE ['user_auth'] && $ _COOKIE ['user_auth'] существует в БД ')) {$ _SESSION [' useremail '] = $ _COOKIE [' user_auth '] ; } и вам не нужно ничего писать, если значение cookie недействительно






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