Hébergement du site en PHP et Mysql par WDMédia-hébergement
Vous aussi adpotez les éléPHPants de Vincent Pontier !  
CONCOURS
 
 
PLUS DE PHP
 
 
PLUS DE JAVASCRIPT
 
COMMENT CA MARCHE
 
 
EXPLIQUE-MOI
 
 
NEWS LETTER
 

 
PARTENAIRES
 
Découvrez scriptsphp.org
Découvrez phpteam.net
Tout sur les expressions régulières
IE sucks :-)
 
DESIGN DU SITE
 
Cookies
Tuto original de FABRICE POTEC, revu par LionZion, Molokai et Raf en août 2004

Qu'est-ce qu'un cookie ?
Un cookie est un fichier texte de taille limitée (65ko) permettant de stocker certaines informations. Le but premier de ce type de fichier et de pouvoir garder en mémoire les informations d'un visiteur afin de pouvoir les réutiliser à chacune de ses visites. Par exemple on y stocke son NOM, son PRENOM, son Nickname, etc... Bien sûr cela n'est possible qu'à partir du moment où le visiteur a entré lui-même ses informations dans un formulaire sur le site.
N.B: La légende qui dit que le cookie est capable de savoir quels sont les logiciels installés sur votre PC n'est pas fondée en soi, dans le sens où un fichier texte n'exécute aucun programme, il est passif. Ceci dit, une fonction cachée dans un programme qui fait plusieurs MégaOctets peut très bien checker votre disque dur puis écrire des infos dans un cookie qui pourra ensuite être récupéré sur le web.
Ou sont stockés les cookies ?

Cela dépend du navigateur que vous utilisez, pour cet exemple nous travaillerons avec INTERNET EXPLORER qui représente entre 80 et 90% du marché. Les cookies sont donc stockés (comme tous les autres fichiers temporaires du NET) dans C:\windows\Temporary Internet Files (voir l'image ci-dessous).

De quoi est constitué le contenu d'un cookie ?

Regardons par exemple le cookie que j'utilise pour stocker les couleurs du design de PHP Débutant, au passage regardez le nom dans la barre de titre (fpotec@www.phpdebutant[1].txt), la valeur entre crochets: [1] indique combien de cookies sont stockés dans le fichier :

- La première valeur (DESIGN) est le nom du cookie. Notez que le nom du cookie n'est pas le nom du fichier (Cookie: fpotec@www.phpdebutant.com/).
- La seconde valeur (gray) est la valeur assignée au cookie.
- La troisième valeur (www.phpdebutant.com/) indique d'où provient le cookie et par quel site il est utilisé.
- Les valeurs suivantes sont des valeurs par défaut (à moins que vous ne les spécifiez lors de la génération du cookie comme la date d'expiration).

N.B : Si plusieurs cookies proviennent du même site ils sont tous stockés dans le même fichier (ici: Cookie: fpotec@www.phpdebutant.com/)

Comment générer un cookie avec PHP ?

C'est la fonction setcookie() qui permet l'envoi de cookie :

Code PHP

<?
$expire = 365*24*3600; // on définit la durée du cookie, 1 an
setcookie("nickname","xeros",time()+$expire);  // on l'envoi
?>

Comme vous le voyez, l'envoi d'un cookie est vraiment simple, ici on envoie un cookie portant le nom : nickname et ayant la valeur : xeros, nous avons également indiqué que ce cookie avait une date de validité de 1 an (date en cours + 365*24*3600), attention il faut toujours exprimer cette valeur en secondes !

N.B: Si vous souhaitez envoyer plusieurs cookies il vous suffit de mettre plusieurs setcookie() les uns à la suite des autres, je vous rappelle qu'ils sont tous stockés dans un seul et même fichier, comme ceci :

Code PHP

<?
$expire = 365*24*3600;
setcookie("nickname","xeros",time()+$expire);
setcookie("nom","potec",time()+$expire);
setcookie("prenom","fabrice",time()+$expire);
?>
Comment lire les cookies quand un visiteur revient sur mon site ?

Là encore c'est un jeu d'enfant car php va regarder si un fichier contenant des éventuels cookies existe sur la machine du visiteur. Vous il ne vous reste plus qu'à appeler la valeur stockée dans le cookie à l'aide du tableau global $_COOKIE :

Code PHP

<?

// On affiche la valeur de nickname
echo "Bonjour $_COOKIE["nickname"]";
?>

Notez que si le visiteur n'a pas de cookie venant de votre site, rien ne sera affiché et aucun message d'erreur n'apparaîtra, d'où le côté pratique de cette utilisation.

Quelles sont les restrictions à connaître avec les cookies ?

1 . L'envoi d'un cookie doit être la première fonction PHP que vous utilisez dans votre script, donc tout en haut du script. Si d'autres fonctions interviennent avant l'envoi du cookie, celui-ci ne fonctionnera pas.

2 . Le script qui envoie le cookie doit être placé sur la racine de votre serveur et jamais dans un sous-répertoire, je ne dis pas que cela ne fonctionnera pas chez certains hébergeurs, mais je l'ai testé à plusieurs endroits et seul l'envoi depuis la racine fonctionnait parfaitement.

3 . Si vous envoyez un cookie sur un poste client celui-ci effacera automatiquement l'ancien cookie qui portait le même nom (si il y en avait un), autrement il le créera.

4 . Voici la page de la documentation traitant de la fonction setcookie : http://www.php.net/manual/fr/function.setcookie.php

Site officiel de PHP : www.php.net


Ajouter une réponse
Nom
Email
Titre

Mise en forme : gras = [b]...[/b], italic = [i]...[/i], souligné = [u]...[/u], citation = [quote]...[/quote], lien = [url]liens_externe[/url] ou [url nom=texte]liens_externe[/url], code source : [code]...[/code]

Mémoriser mon nom et mon email : Oui Non
www.phpdebutant.org © 2024 - L'équipe de phpDebutant - Hébergement : WDMédia-hébergement
DEBUTEZ !
 
  0.  Introduction
  1.  Afficher une phrase ou une image
  2.  Afficher la date et l'heure
  3.  PHP dans du code HTML
  4.  La concaténation
  5.  Récupérer les valeurs d'un formulaire
  6.  Les structures de contrôle
  7.  Ecrire et lire dans un fichier texte
  8.  Les fonctions utilisateurs
  9.  Les variables d'environnement
  10.  Quelques fonctions utiles
  11.  SQL/MySQL (Create, Alter & Drop)
  12.  SQL/MySQL (Insert et Select)
  13.  SQL/MySQL (Delete et Update)
  14.  SQL/MySQL (Where)
  15.  Fonctions PHP pour mySQL
  16.  Interroger une table MySQL
  17.  Alimenter une ou plusieurs tables mySQL
  18.  Les pseudos-frames
  19.  Les sessions php4
  20.  Affichage page par page
  21.  Images dynamiques
  22.  Ca marche pas ?
  23.  Variables globales à OFF
  24.  Les variables dynamiques