Yii - Cookies

Les cookies sont des fichiers en texte brut stockés côté client. Vous pouvez les utiliser à des fins de suivi.

Il y a trois étapes pour identifier un utilisateur qui revient:

  • Le serveur envoie un ensemble de cookies au client (navigateur). Par exemple, id ou token.

  • Le navigateur le stocke.

  • La prochaine fois qu'un navigateur envoie une demande au serveur Web, il envoie également ces cookies, afin que le serveur puisse utiliser ces informations pour identifier l'utilisateur.

Les cookies sont généralement définis dans un en-tête HTTP comme indiqué dans le code suivant.

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 fournit le setcookie() fonction pour définir les cookies -

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

où -

  • name - Définit le nom du cookie et est stocké dans une variable d'environnement appelée HTTP_COOKIE_VARS.

  • value - Définit la valeur de la variable nommée.

  • expiry - Spécifie une heure future en secondes depuis 00:00:00 GMT le 1er janvier 1970. Passé ce délai, le cookie deviendra inaccessible.

  • path - Spécifie les répertoires pour lesquels le cookie est valide.

  • domain- Cela peut être utilisé pour définir le nom de domaine dans de très grands domaines. Tous les cookies ne sont valables que pour l'hôte et le domaine qui les ont créés.

  • security - S'il est défini sur, cela signifie que le cookie ne doit être envoyé que par HTTPS, sinon, lorsqu'il est défini sur 0, le cookie peut être envoyé par HTTP standard.

Pour accéder aux cookies en PHP, vous pouvez utiliser le $_COOKIE or $HTTP_COOKIE_VARS variables.

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

Pour supprimer un cookie, vous devez définir le cookie avec une date qui a déjà expiré.

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