cookies

Creer un cookie

Comment créer un cookie en php

creation cookie, creer cookie php, creer un cookie domaine php, deposer un cookie, faire un cookie, php creation de cookies, comment generer un cookie, php de cookies

Date de publication : 2009-09-16 11:11:46

Pour créer un cookie en php il faut utiliser la fonction setcookie.

Paramètres de la fonction setcookie

Voici le détail des principaux arguments de setcookie, pour les autres paramètres je vous renvoie à la page du manuel php.


/**
* Dépose un cookie sur le navigateur client
*
* @param string $name Nom du cookie
* @param string $value Valeur du cookie
* @param int $expire Durée de validité en seconde du cookie
* @param string $path Chemin de validité du cookie
* @param string $domain Domaine de validité du cookie
* @return bool Vrai en cas de succès de la création du cookie et false en cas d'échec
*/
function setcookie($name,$value,$expire,$path,$domain)

Création d'un cookie de session

Pour déposer un cookie de session sur le navigateur il faut appeler la fonction setcookie avec une valeur de 0 pour le paramètre expire.


<?php
setcookie('moncookie','1',0,'/');
?>

L'appel précédent crée un cookie de session accessible depuis l'ensemble des pages du domaine.

Création d'un cookie valide sur tous les sous domaines

L'appel suivant crée un cookie valide accessible sur tous les sous-domaines de petitchevalroux.net pour une journée.


<?php
setcookie('moncookie','1',86400,'/','.petitchevalroux.net');
?>

Problème avec Headers already sent

Tout comme la fonction session_start, la fonction setcookie peut lever l'erreur headers already sent lorsque des données ont été envoyées au navigateur avant l'appel à la fonction.

Pour éviter ce genre de problème je vous conseille d'activer la bufferisation de la sortie au début de tous vos scripts avec l'appel à la fonction ob_start.

En activant la bufferisation le code suivant doit fonctionner sans déclencher l'erreur headers already sent :


<?php
ob_start();
echo 'toto';
setcookie('moncookie','1',0,'/',);
?>

A propos du tampon de sortie, je vous conseille la lecture de mon article activer la compression gzip sur les pages php qui présente l'utilisation du buffer de sortie pour compresser les pages php et accélérer leurs téléchargements.

Article en relation : Effacer un cookie en php

Image : Roboppy

 
 

b1n@sp1n