Tout sur les cookies

Contenu du snippet

Beaucoup de gens ont du mal avec les cookies, ils les envois avant les headers ou certaines conditions leur échappe (faire que 1 cookie ne soit valable que pour 1 dossier ...)

Donc voila une petite aide ...

Source / Exemple :


- 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 : setcookie (nom, valeur , 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 : If (headers_sent()) { echo "Trop tard pour la création ..."; } else { echo "C partiii !!"; } - Création du cookie :
  • Cookie simple sans date de validité : setcookie("Mycookie","Coucou");
// ici le cookie s'appele Mycookie et contient Coucou
  • Cookie qui ne dure que 1 heure : 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.phpcs.com pour 1 heure : setcookie("Mycookie","Coucou", mktime()+3600, "/membre/",".phpcs.com");
// ici le cookie s'appele Mycookie, contient Coucou, n'est valable que pour le dossier php de phpcs.com et s'effacera dans 1 heure
  • Cookie valide juste pour le dossier achat sur un serveur SSL (http://www.rueducommerce.fr par exemple) : 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 :
+ $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) + $_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 setcookie("Mycookie","Coucou");. Et bien pour l'effacer il y a juste à faire : setcookie("Mycookie"); Et c'est tout, pas de commande delcookie() ou autre.

Conclusion :


Voila je crois ne pas avoir oublié grand chose mais si j'ai oublié quelque chose dite ça peut servir lol

@++
bon coding !!

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.