#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, и вам придется снова войти в систему.