Easy-Micro

LANGAGE Langage PHP
Cookies PHP

Gestion des cookies en PHP

Création: fonction setcookie()

Les cookies sont adaptées à la sauvegarde de données. Ce sont de petit fichier texte qui permettent de stocker des informations sur le disque dur du visiteur.

Il peut-être utile, par exemple, de faire en sorte qu'un visiteur déjà inscrit sur votre site, n'est pas besoin de devoir s'identifier à chaque connexion, à chaque visite. Seul les cookies permettent cette technique d'auto-identification car l'utilisation des sessions PHP ne permettent pas de reconnaitre un visiteur sans identification préalable. Les cookies restent donc, malgés les sessions PHP, très utiles.

Pour créer un cookie, on utilise la fonction PHP :

setcookie(nom, valeur, expire, chemin)

Exemple de création d'un cookie nommé 'identifiant'
<?php
$prenomvisiteur = $_POST['prenomvisiteur'] ; // on récupère une valeur
$expiration = time()+(3600*24*30); // on fixe la date d'expiration à 30 jours
setcookie("identifiant",$prenomvisiteur,$expiration,"/");
?>
  • Un nom qui peut être afficher via un <?php echo $_COOKIE['nomducookie']; ?>
  • Une valeur, c'est à dire un contenu (souvent le prénom du visiteur).
  • Le temps - en seconde - après lequel le cookie expire. A l'aide de la fonction time(), on ajoute le nombre de secondes après lequel on veut que le cookie expire (time()+3600 = 1 heure).
  • Le chemin sur le serveur sur lequel le cookie sera disponible. Si la valeur est '/', le cookie sera disponible sur l'ensemble du domaine. Sinon, utilisez la syntaxe: '/monrépertoire/'
Attention: Les cookies font partie des en-têtes HTTP, ce qui impose que setcookie() soit appelée avant tout affichage de texte.

Lecture: variable $_COOKIE[]

Pour la lecture du cookie, on utilise la variable prédéfinie $_COOKIE[]

Exemple de lecture du cookie 'identifiant'
<?php
// on ouvre une session pour y stocker le cookie
session_start();
// Si le cookie 'identifiant' existe
if( isset($_COOKIE['identifiant']) ) {
// on le stock dans une variable (pratique pour affichage)
$identifiant = $_COOKIE['identifiant'];
// et on le stock dans la variable de session (facultatif)
$_SESSION['visiteurinscrit'] = $identifiant;
}
?>

Exemple de code pour l'affichage des cookies:
<?php echo $_SERVER["HTTP_COOKIE"]."<br>"; ?>

Pour supprimer un cookie, il suffit de le recréer avec tout ces paramètres à zéro : <? setcookie("identifiant","",0,"/"); ?>

Trouvez vos cookies

En local, le cookie se présente sous la forme nom_de_session@127.0.0.1. Sous Windows XP/2003, voir votre cookie "identifiant" dans "C:\Documents and Settings\votre nom\Local Settings\Temporary Internet files"

Trouvez vos cookies sous Windows 7 directement par C:\Users\Administrateur\AppData\Local\Microsoft\Windows\Temporary Internet Files ou bien depuis le navigateur IE8 par le menu, Outils / options Internet / Onglet "Général" / Historique de navigation, Bouton "Paramètres" / Bouton "Afficher les fichiers".

En test local, votre cookie est nommé : cookie:nom_de_login_windows@127.0.0.1


< Page précédente LANGAGE PHP Page suivante >