Yii - файлы cookie

Файлы cookie - это простые текстовые файлы, которые хранятся на стороне клиента. Вы можете использовать их для отслеживания.

Есть три шага, чтобы идентифицировать вернувшегося пользователя:

  • Сервер отправляет набор файлов cookie клиенту (браузеру). Например, id или токен.

  • Браузер хранит это.

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

Файлы cookie обычно устанавливаются в заголовке HTTP, как показано в следующем коде.

HTTP/1.1 200 OK
Date: Fri, 05 Feb 2015 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name = myname; expires = Monday, 06-Feb-16 22:03:38 GMT;
   path = /; domain = tutorialspoint.com 
Connection: close
Content-Type: text/html

PHP предоставляет setcookie() функция для установки куки -

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

где -

  • name - Устанавливает имя файла cookie и сохраняется в переменной среды HTTP_COOKIE_VARS.

  • value - Устанавливает значение названной переменной.

  • expiry - Указывает будущее время в секундах с 00:00:00 по Гринвичу 1 января 1970 г. По истечении этого времени cookie станет недоступным.

  • path - Указывает каталоги, для которых cookie действителен.

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

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

Для доступа к файлам cookie в PHP вы можете использовать $_COOKIE or $HTTP_COOKIE_VARS переменные.

<?php 
   echo $_COOKIE["token"]. "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["token"]. "<br />"; 
   echo $_COOKIE["id"] . "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["id"] . "<br />"; 
?>

Чтобы удалить cookie, вы должны установить cookie с датой, срок действия которой уже истек.

<?php 
   setcookie( "token", "", time()- 60, "/","", 0); 
   setcookie( "id", "", time()- 60, "/","", 0); 
?>