La fonction setcookie() envoie un cookie HTTP au client.
Un cookie est une variable envoyée au navigateur par le serveur. Les cookies sont généralement de petits fichiers texte qu'un serveur intègre sur l'ordinateur d'un utilisateur. Ce cookie est envoyé chaque fois que le même ordinateur demande une page via le navigateur.
Le nom du cookie est automatiquement attribué à une variable du même nom. Par exemple, si le cookie envoyé est nommé « utilisateur », une variable nommée $user sera automatiquement créée contenant la valeur du cookie.
Le cookie doit être attribué avant que toute autre sortie ne soit envoyée au client.
En cas de succès, la fonction renvoie TRUE. Renvoie FALSE en cas d'échec.
setcookie (nom, valeur, expire, chemin, domaine, sécurisé)
paramètre | décrire |
---|---|
nom | Requis. Spécifie le nom du cookie. |
valeur | Requis. Spécifie la valeur du cookie. |
expirer | Facultatif. Spécifie le délai d'expiration du cookie. time()+3600*24*30 fixera le délai d'expiration du cookie à 30 jours. Si ce paramètre n'est pas défini, le cookie expirera automatiquement après la fin de la session (c'est-à-dire lorsque le navigateur est fermé). |
chemin | Facultatif. Spécifie le chemin du serveur pour les cookies. Si le chemin est défini sur "/", le cookie sera valide dans l'ensemble du nom de domaine. Si le chemin est défini sur "/test/", le cookie sera valide dans le répertoire test et tous ses sous-répertoires. La valeur du chemin par défaut est le répertoire actuel où se trouve le cookie. |
domaine | Facultatif. Spécifie le nom de domaine du cookie. Pour que le cookie soit valide dans tous les sous-domaines de example.com, vous devez définir le nom de domaine du cookie sur « .example.com ». Lorsque vous définissez le nom de domaine du cookie sur www.example.com, le cookie n'est valide que dans le sous-domaine www. |
sécurisé | Facultatif. Spécifie si les cookies doivent être transmis via une connexion HTTPS sécurisée. Définissez sur TRUE si les cookies doivent être transmis via une connexion HTTPS sécurisée. La valeur par défaut est FAUX. |
Astuce : La valeur du cookie nommé "user" est accessible via $HTTP_COOKIE_VARS["user"] ou $_COOKIE["user"].
Remarque : Lors de l'envoi d'un cookie, la valeur du cookie est automatiquement codée en URL. Le décodage de l'URL s'effectue automatiquement à la réception. Si vous n'en avez pas besoin, vous pouvez utiliser setrawcookie() à la place.
Définir et envoyer des cookies :
<?php$value = "my cookie value";// envoyer un simple cookiesetcookie("TestCookie",$value);?><html><body>......
<?php$value = "my cookie value";// envoyer un cookie qui expire dans 24 heuressetcookie("TestCookie",$value, time()+3600*24);?><html><body>... ...
Différentes manières de récupérer la valeur du cookie (une fois le cookie défini) :
<html><body><?php// Imprimer les cookies individuelsecho $_COOKIE["TestCookie"];echo "<br />";echo $HTTP_COOKIE_VARS["TestCookie"];echo "<br />";// Imprimer tous les cookiesprint_r($_COOKIE);?></body></html>
Le code ci-dessus affichera :
ma valeur de cookiemy valueArray de cookie ([TestCookie] => ma valeur de cookie)
Supprimez un cookie en définissant la date d'expiration sur une date/heure passée :
<?php// Fixer la date d'expiration à il y a une heuresetcookie ("TestCookie", "", time() - 3600);?><html><body>......
Créez une série de cookies :
<?phpsetcookie("cookie[trois]","cookietrois");setcookie("cookie[two]","cookietwo");setcookie("cookie[one]","cookieone");// imprimer les cookies (après rechargement de la page)if (isset($_COOKIE["cookie"])) { foreach ($_COOKIE["cookie"] as $name => $value) { echo "$name : $value <br />" } }?><html><corps>......
Le code ci-dessus affichera :
trois : cookietroisdeux : cookiedeuxun : cookieun