PHP — cookie (файлы куки)

PHP — cookie (файлы куки)

От автора: в PHP cookie — это текстовые файлы, хранящиеся на компьютере клиента, они сохраняются в целях отслеживания. PHP прозрачно поддерживает HTTP-файлы cookie.

Для идентификации возвращающихся пользователей предусмотрено три этапа:

Файл на сервере отправляет набор файлов cookie в браузер. Например, имя, возраст или идентификационный номер и т. д.

Браузер сохраняет эту информацию на локальном компьютере для будущего использования.

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

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее

В этой статье мы расскажем, как устанавливать файлы 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-07 22:03:38 GMT; 
 path=/; domain=tutorialspoint.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. Сookie можно получить, используя $HTTP_COOKIE_VARS["name"].

Настройка файлов cookie с помощью PHP

PHP предоставляет для установки файла cookie функцию setcookie(). Для этой функции требуется до шести аргументов, и она должна вызываться до тега html. Для каждого файла cookie эту функцию нужно вызывать отдельно.

setcookie(name, value, expire, path, domain, security);

Описание всех аргументов -

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее

name — устанавливает имя файла cookie и хранится в переменной среды с именем HTTP_COOKIE_VARS. Эта переменная используется для доступа к файлам cookie.

value — устанавливает значение именованной переменной и представляет собой контент, который вы действительно хотите сохранить.

expiry — определяет время хранения cookie в секундах с 00:00:00 по Гринвичу 1 января 1970 года. По истечении этого времени cookie станет недоступным. Файлы cookie удаляются после закрытия браузера.

path — Указывает каталоги, для которых действителен файл cookie. Одиночный символ прямой косой черты задает, что файл cookie является действительным для всех каталогов.

domain — может использоваться для указания имени домена в очень больших доменах и должно содержать не менее двух периодов. Все файлы cookie действительны только для хоста и домена, для которых они созданы.

security. Может быть установлено 1, чтобы указать, что файл cookie должен передаваться только через защищенное соединение HTTPS. В противном случае это значение равно 0, и это означает, что файл cookie может передаваться через обычное соединение HTTP.

В следующем примере мы зададим для cookie name и age, согласно которому эти файлы cookie станут не действительны через час.

<?php
  setcookie("name", "John Watkin", time()+3600, "/","", 0);
  setcookie("age", "36", time()+3600, "/", "",  0);
?>
<html>
 
  <head>
 <title>Setting Cookies with PHP</title>
  </head>
 
  <body>
 <?php echo "Set Cookies"?>
  </body>
 
</html>

Доступ к файлам cookie с помощью PHP

PHP предоставляет множество способов доступа к файлам cookie. Самый простой из них — использовать переменные $_COOKIE или $HTTP_COOKIE_VARS. В следующем примере мы получаем доступ ко всем файлам cookie, указанным в приведенном выше примере.

<html>
 
  <head>
 <title>Accessing Cookies with PHP</title>
  </head>
 
  <body>
 
 <?php
 echo $_COOKIE["name"]. "<br />";
 
 /* это эквивалентно следующему */
 echo $HTTP_COOKIE_VARS["name"]. "<br />";
 
 echo $_COOKIE["age"] . "<br />";
 
 /* это эквивалентно следующему */
 echo $HTTP_COOKIE_VARS["age"] . "<br />";
 ?>
 
  </body>
</html>

Вы можете использовать функцию isset(), чтобы проверить, установлен ли файл cookie или нет.

<html>
 
  <head>
 <title>Accessing Cookies with PHP</title>
  </head>
 
  <body>
 
 <?php
 if( isset($_COOKIE["name"]))
 echo "Welcome " . $_COOKIE["name"] . "<br />";
 
 else
 echo "Sorry... Not recognized" . "<br />";
 ?>
 
  </body>
</html>

Удаление Cookie с помощью PHP

Официально, чтобы удалить cookie, вы должны вызвать setcookie() только с одним аргументом name, но этот метод не всегда работает, и не является надежным. Лучше всего установить cookie с истекшим периодом действия -

<?php
  setcookie( "name", "", time()- 60, "/","", 0);
  setcookie( "age", "", time()- 60, "/","", 0);
?>
<html>
 
  <head>
 <title>Deleting Cookies with PHP</title>
  </head>
 
  <body>
 <?php echo "Deleted Cookies" ?>
  </body>
 
</html>

Источник: https://www.tutorialspoint.com/

Редакция: Команда webformyself.

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Курс по программированию на языке PHP

Изучите PHP с нуля до результата!

Смотреть курс

Метки:

Похожие статьи:

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

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree