Куки-файлы - это текстовые файлы, хранящиеся на клиентском компьютере, и они сохраняются в целях отслеживания использования. PHP прозрачно поддерживает HTTP-файлы cookie.
Содержание:
Для идентификации возвращающихся пользователей предусмотрено три этапа:
- Серверный скрипт отправляет набор файлов cookie в браузер. Например, имя, возраст или идентификационный номер и т.д.
- Браузер сохраняет эту информацию на локальном компьютере для будущего использования.
- Когда в следующий раз браузер отправляет любой запрос веб-серверу, он отправляет эти файлы cookie на сервер, а сервер использует эту информацию для идентификации пользователя.
В этой статье рассказывается, как устанавливать файлы cookie, как обращаться к ним и как их удалять.
Анатомия Cookie
Файлы cookie обычно устанавливаются в HTTP-заголовке (хотя JavaScript также может устанавливать cookie непосредственно в браузере). PHP-скрипт, который устанавливает cookie, может отправлять заголовки, которые выглядят примерно так:
HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name=xyz; expires=Friday, 04-Feb-16 22:03:38 GMT;
path=/; domain=example.com
Connection: close
Content-Type: text/html
Как вы можете видеть, заголовок Set-Cookie содержит пару значений имени, дату GMT, путь и домен. Имя и значение будут закодированы в URL. Поле expires - это инструкция для браузера, чтобы «забыть» cookie по истечении заданного времени и даты.
Если браузер настроен для хранения файлов cookie, он будет хранить эту информацию до истечения срока действия. Если пользователь указывает браузер на любую страницу, которая соответствует пути и домену файла cookie, он отправит cookie на сервер. Заголовки браузера могут выглядеть примерно так:
GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name=xyz
Тогда скрипт PHP будет иметь доступ к файлу cookie в переменных окружения $_COOKIE или $HTTP_COOKIE_VARS[], который содержит все имена и значения файлов cookie. Выше cookie можно получить, используя $HTTP_COOKIE_VARS["name"]
.
Настройка файлов cookie с PHP
PHP предоставил функцию setcookie() для установки файла cookie. Эта функция требует до шести аргументов и должна быть вызвана до тега html. Для каждого файла cookie эту функцию нужно вызывать отдельно.
setcookie(name, value, expire, path, domain, security);
Вот деталь всех аргументов -
- Name - Это задает имя куки и хранится в переменной окружения называется HTTP_COOKIE_VARS. Эта переменная используется при доступе к файлам cookie.
- Value - Это устанавливает значение указанной переменной и содержание , что вы на самом деле хотите сохранить.
- Expiry - это определение будущего времени в секундах с 00:00:00 по Гринвичу 1 января 1970 года. По истечении этого времени cookie станет недоступным. Если этот параметр не установлен, cookie автоматически истекает, когда веб-браузер закрыт.
- Path - Это определяет каталоги , для которых куки. Один символ прямой косой черты позволяет cookie быть действительным для всех каталогов.
- Domain - Это может использоваться , чтобы указать имя домена в очень больших областях и должны содержать , по крайней мере , два периода , чтобы быть действительным. Все файлы cookie действительны только для хоста и домена, которые их создали.
- Security - Это может быть установлено в 1, чтобы указать, что файл cookie должен быть отправлен только защищенной передачей с использованием HTTPS, в противном случае это значение равно 0, что означает, что cookie может быть отправлен посредством обычного HTTP.
В следующем примере будет создано два имени cookie и возраст, с которых эти файлы cookie истекут через час.
Доступ к файлам cookie с PHP
PHP предоставляет множество способов доступа к файлам cookie. Самый простой способ - использовать переменные $_COOKIE или $HTTP_COOKIE_VARS. В следующем примере будут доступны все файлы cookie, указанные в приведенном выше примере.
Вы можете использовать функцию isset(), чтобы проверить, установлен ли файл cookie или нет.
Удаление Cookie с помощью PHP
Официально, чтобы удалить cookie, вы должны вызвать setcookie() только с аргументом name, но это не всегда хорошо работает, и на него нельзя положиться. Безопаснее всего установить cookie с истекшей датой -
С уважением, авторы сайта Компьютерапия
Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!
Новые статьи
Предыдущие статьи
- Файлы PHP и ввод-вывод - открытие, чтение, запись и закрытие файла - 12/04/2018 19:18
- Методы PHP GET и POST, переменная $_REQUEST - 12/04/2018 19:17
- Загрузка файлов PHP - Создание формы и сценария загрузки - 12/04/2018 19:16
- Объектно-ориентированное программирование в PHP - 12/04/2018 19:15
- Включение файла в PHP - Функция include и require - 12/04/2018 19:14
- Предопределенные переменные PHP - Суперглобальные массивы и переменные сервера - 12/04/2018 19:13
- Функции с параметрами, динамические вызовы, создание функции в PHP - 12/04/2018 19:12
- Типы операторов PHP - категории, присваивания, логические операторы - 12/04/2018 19:11
- Типы циклов PHP for, foreach, continue, break, do-while - 12/04/2018 19:10
- Принятие решений PHP - ElseIf Switch - 12/04/2018 19:09
- Типы констант PHP - Различия между константами и переменными - 12/04/2018 19:08
- Массивы PHP: Многомерные, ассоциативные и числовые массивы - 12/04/2018 19:07
- Типы переменных, область и имена переменных в PHP - 12/04/2018 19:06
- Строки в PHP, strpos, strlen, конкатенация строк - 12/04/2018 19:05
- Дата и время, получение, преобразование времени в PHP - 12/04/2018 19:03
- Обзор синтаксиса, канонические теги, комментирование PHP-кода - 12/04/2018 19:02
- Введение в PHP. Общее использование, характеристики PHP - 12/04/2018 19:01