Yii - Cookies

Cookies são arquivos de texto simples armazenados no lado do cliente. Você pode usá-los para fins de rastreamento.

Existem três etapas para identificar um usuário recorrente -

  • O servidor envia um conjunto de cookies para o cliente (navegador). Por exemplo, id ou token.

  • O navegador o armazena.

  • Na próxima vez que um navegador enviar uma solicitação ao servidor da web, ele também enviará esses cookies, para que o servidor possa usar essas informações para identificar o usuário.

Os cookies são geralmente definidos em um cabeçalho HTTP, conforme mostrado no código a seguir.

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 fornece o setcookie() função para definir cookies -

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

onde -

  • name - Define o nome do cookie e é armazenado em uma variável de ambiente chamada HTTP_COOKIE_VARS.

  • value - Define o valor da variável nomeada.

  • expiry - Especifica um tempo futuro em segundos desde 00:00:00 GMT em 1 ° de janeiro de 1970. Após esse horário, o cookie ficará inacessível.

  • path - Especifica os diretórios para os quais o cookie é válido.

  • domain- Isso pode ser usado para definir o nome de domínio em domínios muito grandes. Todos os cookies são válidos apenas para o host e domínio que os criou.

  • security - Se definido como, significa que o cookie deve ser enviado apenas por HTTPS, caso contrário, quando definido como 0, o cookie pode ser enviado por HTTP normal.

Para acessar cookies em PHP, você pode usar o $_COOKIE or $HTTP_COOKIE_VARS variáveis.

<?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 />"; 
?>

Para excluir um cookie, você deve definir o cookie com uma data que já expirou.

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