Thread: probleme cookie
View Single Post
  #5  
Old 31-03-2003, 19:40
enzo19's Avatar
enzo19 enzo19 is offline
Powered by NDFR
 
Join Date: 19-10-2002
Location: Brive - Corrèze
Age: 49
Posts: 1,749
Conditions de la création de cookie
* Le client doit les accepter (lol)
* Un cookie ne peut pas faire plus de 4Ko (4 Ko c'est quand meme trés gros pour un fichier texte lol, essayez sur note pad vous verez, donc pas la peine de raconter sa life dans le cookie lol)
* Vous ne pouvez pas avoir plus de 20 cookies sur votre site (limitation de 20 cookies créé par client)

Syntaxe de la création de cookie
PHP Code:
setcookie (nomvaleur expiration répertoire domaine sécurité 
Explication des variables de la création
Nom : Le nom du cookie (nan menteur lol).
Valeur : La valeur du cookie.
Expiration : date à laquel le cookie s'efface. Il doit être timestamp Unix. A créer avec time() ou mktrime().(Si il n'y a pas d'expiration mettre NULL)
Répertoire : Désigne le répertoire où le cookie est actif dans votre site. Si il est actif pour tout le site mettez NULL
Domaine : Désigne le domaine où le cookie est actif (votre site quoi). Si vous ne spécifiez pas de domaine mettez NULL (c'est généralement le cas).
Sécurité : Désigne si vous souhaitez que le cookie ne soit communiqué que lors de connexions sécurisées (SSL). Valeur possible : TRUE ou FALSE.

Condition de création d'un cookie
Pour créer un cookie la seul condition (qui pose problème à un grand nombre de personne) c'est que la création du cookie doit être éffectuée AVANT L'ENVOIS DU header DE LA PAGE. Le header contient toutes les infos sur la page (protocol, valeur des cookies ... ) donc vous ne pouvez logiquement pas créer un cookie alors que vous avez déjà envoyé ce qui le contient.
Vous pouvez tester si le header a été envoyé en utilisant la fonction headers_sent().

Exemple :
PHP Code:
if (headers_sent())
{
echo 
"Trop tard pour la création ...";
}
else
{
echo 
"C partiii !!";

Création du cookie
* Cookie simple sans date de validité :
PHP Code:
setcookie("Mycookie","Coucou");
// ici le cookie s'appele Mycookie et contient Coucou 
* Cookie qui ne dure que 1 heure :
PHP Code:
setcookie("Mycookie","Coucou"mktime()+3600); // 3600 >> SECONDES << donc si vous voulez 1 jour par exemple mettez 86400 secondes.
// ici le cookie s'appele Mycookie, contient Coucou et s'effacera dans 1 heure 
* Cookie valide dans le dossier membre du site http://www.ndfr.com pour 1 heure :
PHP Code:
setcookie("Mycookie","Coucou"mktime()+3600"/membre/",".ndfr.com");
// ici le cookie s'appele Mycookie, contient Coucou, n'est valable que pour le dossier php de ndfr.com et s'effacera dans 1 heure 
* Cookie valide juste pour le dossier achat sur un serveur SSL (http://www.rueducommerce.fr par exemple) :
PHP Code:
setcookie("Mycookie","Coucou"mktime()+3600"/achat/"".rueducommerce.fr",TRUE);
// ici le cookie s'appele Mycookie, contient Coucou, n'est valable que pour le dossier achat du site rueducommerce.fr en mode sécurisé et s'effacera dans 1 heure 
Comment récupérer la valeur d'1 cookie
* Vous pouvez récupérer sa valeur de 2 façons :
PHP Code:
$nomducookie 
(cette méthode est à bannir car elle n'est pas sur. Utilisez la juste pour vérifier la valeur du cookie quand vous débuggez)
PHP Code:
$_COOKIE[nomducookie
La valeur est récupérée dans le tableau de register global des cookies. Ce tableau contient toutes les valeurs de cookies que vous créez dans le site. A utiliser OBLIGATOIREMENT !! (sinon je me fache lol)

Effacement du cookie
Pour effacer un cookie, rien de plus simple il suffit de le recréer.
Dans les exemples plus haut nous avons créé un cookie qui s'appele Mycookie et qui a comme valeur Coucou avec :
PHP Code:
setcookie("Mycookie","Coucou"); 
Et bien pour l'effacer il y a juste à faire :
PHP Code:
setcookie("Mycookie"); 
Et c'est tout, pas de commande delcookie() ou autre.
Reply With Quote