Précédent Suivant

Sessions et Cookies

Les Cookies en PHP

La fonction setcookie() permet de définir manuellement les cookies, de la manière suivante :

int setcookie( string nom_cookie, string valeur_cookie, int date_exp);

 

Si la date d’expiration n’est pas définie, la durée de vie du cookie est celle de la session.

Exemple :

<?PHP
        
setcookie("cookie", "chocolat", time() + 90 * 86400);
?>

 

après exécution de cette ligne, un cookie de nom moncookie et de valeur “chocolat” est stocké.

Il est possible de définir des cookies à valeurs multiples : en effet, les cookies sont restreints à 20 par serveur. On traite alors le cookie comme un tableau, et on affecte une valeur à chaque élément du tableau.

Exemple :

<?PHP
        
if (!isset($cookie[0]))
        
{
                
setcookie("cookie[0]", $nomvisiteur);
                
cookie[1]++; setcookie("cookie[1]", $cookie[1]);
                
echo "Bonjour $cookie[0], vous avez effectué ".$cookie[1].
                
($cookie[1] == 1 ? " visite !" : " visites !")."sur cette page.";

//affiche : Bonjour (le nom du visiteur), vous avez effectué (le nombre de visites) sur cette page.
?>

 

Le code qui définit le cookie doit apparaître au tout début de la page, dans l’en-tête, avant la génération d’une sortie et son envoie au navigateur. PHP envoie un message d’erreur si setcookie() est appelée après qu’une réponse HTTP a été envoyée au client.

Attention : un simple espace, un caractère de saut de ligne ou tout autre texte, HTML ou généré par PHP, suffit à provoquer cette erreur.

Dans les mêmes conditions d’utilisation, la fonction setcookie() avec une nouvelle valeur pour le cookie permet de changer la valeur du cookie.

 

Précédent Suivant