Manuel PHP

Précédent

 

Suivant

setcookie

setcookie -- Envoie un cookie

Description

int setcookie(string name, string value, int expire, string path, string domain, int secure);

setcookie() défini un cookie à envoyer avec le reste de líentête. Les cookies doivent être envoyés avant tous les autres entêtes (ceci est une restriction des cookies, pas de PHP). Ceci impose que líappel de cette fonction doit être fait avant les balises <html> ou <head>.

Tous les arguments, hormis name sont optionnels.. Si seul name est présent, le cookie qui porte ce nom sera effacé du client. Vous pouvez aussi passer la chaîne vide dans les argument pour ne pas utiliser cet argument. Les arguments expire et secure sont des entiers et ne peuvent pas être utilisés avec la chaîne vide. Utilisez zéro (0) à la place. Líargument expire est un entier retourné par time() ou mktime(). Líargument secure indique que le cookie ne doit être transmis que par une connexion sécurisée HTTPS.

Erreurs fréquentes:

Les cookies ne seront accessibles quíau prochain chargement de fichier, et pas dans la page où il a été envoyé.

Plusieurs appels simultanés à setcookie() dans le même script seront effectués dans líordre inverse : si vous essayez díeffacer un cookie avant díen insérer un nouveau, il faut mettre líinsertion avant líeffacement.

Quelques exemples :

Exemple 1. Exemple setcookie()

setcookie("TestCookie","Test Value");
setcookie("TestCookie",$value,time()+3600);  /* expire dans 1 heure */
setcookie("TestCookie",$value,time()+3600,"/~rasmus/",".utoronto.ca",1);

NB : la valeur du cookie sera automatiquement encodée lors de líenvoi, et décodé lors de la reception. Pour afficher le contenu du test précédent dans un script, utilisez simplement :

echo $TestCookie;
echo $HTTP_COOKIE_VARS["TestCookie"];

Pour plus díinformations sur les cookies, reportez vous à Netscape's cookie specification : http://www.netscape.com/newsref/std/cookie_spec.html.

Microsoft Internet Explorer 4 avec Service Pack 1 ne gère pas correctment les cookies avec le paramètre path.

Netscape Communicator 4.05 et Microsoft Internet Explorer 3.x semblent avoir des problèmes avec les cookies dont le path et time ne sont pas fournis.

Précédent

Sommaire

Suivant

header

Chapitre

Hyperwave functions