Сохранение сеансов php после закрытия браузера

#php #session #cookies #session-variables

#php #сеанс #файлы cookie #сессия-переменные

Вопрос:

Я заметил, что когда я использую tumblr, мне никогда не нужно входить в систему (если я явно не вышел из системы заранее). Даже если я закрыл свой браузер, выключите мой компьютер, не посещайте tumblr примерно через месяц, если я посещаю tumblr.com Я обнаружил, что я все еще вошел в систему.

Как они этого добиваются? Просто устанавливаете session_set_cookie_params примерно на месяц или что-то в этом роде?

Ответ №1:

Они используют файл cookie, срок действия которого истекает в будущем.

 setcookie('username','bob',time() 3600*24*7);
 

Это создало бы файл cookie имени пользователя на 7 дней.
Обратите внимание, что если вы очистите свои файлы cookie, вы выйдете из системы со всех веб-сайтов.

Комментарии:

1. Также следует отметить: $ _SESSION — это просто файл cookie без параметра ‘expire’, равного 0. Вы можете установить cookie со временем истечения 0, и когда вы закрываете браузер, cookie удаляется.

2. Итак, по сути, я установил для своего session.cookie_lifetime значение 604800 в php.ini, чтобы мои сеансовые файлы cookie длились 1 неделю? Или 2419200 продлится месяц?

3. Вы действительно должны оставить session.cookie в качестве значения по умолчанию, поскольку «сеанс» обычно выполняется при закрытии браузера. Если это вообще возможно, используйте стандартный файл cookie для отслеживания ваших логинов. php.net/manual/en/function . setcookie.php

4. БУДЬТЕ ОЧЕНЬ ОСТОРОЖНЫ — (Для записи) При проведении подобных сеансов существует огромный недостаток безопасности: любой пользователь может установить свои собственные файлы cookie и, по-видимому, войти в систему как пользователь, без ввода пароля. Php $ _SESSION не сохраняет никаких данных на компьютере пользователя (за исключением трудно реплицируемого идентификатора). Если ваш сервер выделен для определенной веб-службы, в любом случае сделайте это с помощью $_SESSION .

Ответ №2:

Они делают это с помощью файла cookie. Очистите свои файлы cookie, и вам придется снова войти в систему.