Tutoriel PHP

PHP

Découvez les bases de PHP dans mon support de formation dédié à ce puissant langage orienté web.


HTML HTML5 CSS Dreamweaver Bootstrap

Les cookies

Dans ce tutoriel, nous abordons les COOKIES en PHP.

$_COOKIE

Un cookie est un fichier petit fichier texte que l'on stocke sur le poste du visiteur.

Exemple :

Vous stockez le pseudo du visiteur. Lorsqu'il revient sur votre site, vous pouvez lire dans le cookie et lui afficher "Bonjour votre_pseudo".

Contrairement à certaines légendes, les cookies sont totalement inoffensifs, ce ne sont pas des virus ou troyens ou je ne sais quoi !

Ecrire un cookie avec setcookie

La fonction PHP qui permet d'écrire un cookie est setcookie qui signifie Placer un cookie en français.

setcookie (string nom, string valeur, string expiration, string chemin, string domaine, string securise)

On utilise généralement les 3 premiers paramétres en respectant l'ordre:

  1. Le nom du cookie (ex : "Nom")
  2. La valeur du cookie (ex : "Paul")
  3. La date d'expiration du cookie, sous forme de timestamp (ex : 1090521508)

Vour remarquez que le 3éme paramétre définit la durée de vie pour du cookie, aprés celui ci sera supprimé.

Exemple d'un cookie qui a une durée de vie de 1 an

time() + 365*24*3600 // Timestamp actuel + Nb de secondes dans un an

setcookie à la bonne place !

Comme pour session_start que nous avons vu dans l'article précédent, setcookie doit être placé avant votre code HTML.

Placer le avant la balise <!DOCTYPE>

Exemple

Créer 2 cookies: Un qui retient mon nom et un autre qui retient mon prénom.

<?php
$timestamp = time() + 365*24*3600; // Le cookie a une durée de vie de 1an
setcookie('Nom', 'Lambert', $timestamp); // On écrit un cookie
setcookie('Prenom', 'Christophe', $timestamp); // On en écrit un autre cookie...
// Vous remarquez que tout est bien noté avant le début du code HTML
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Titre de ma page</title>
</head>
etc ...

Afficher un cookie

$_COOKIE['Nom_cookie']

PHP va lire l'information stockée dans le cookie du visiteur.

Ces informations sont placées dans la superglobale $_COOKIE, sous forme d'array (tableau)

<?php
echo "Bonjour " .$_COOKIE['Nom'] ." " .$_COOKIE['Prenom']; // Afficher les cookies

// Ancienne syntaxe pour afficher un cookie, elle est obsoléte
echo $HTTP_COOKIE_VARS["Nom"];
?>

Modifier la valeur d'un cookie

Pour modifier la valeur d'un cookie, il faut faire appel à setcookie en conservant le même nom de cookie et en modifiant simplement sa valeur.

Si je veux maintenant modifier mon prénom :

<?php
setcookie('Prenom', 'Cristobal', $timestamp);
?>

Ou retouver les cookies sur mon poste ?

Sous Firefox :

Aller dans le menu Outils > Options > Vie privée > Supprimer des cookies spécifiques

Sous Internet Explorer et Windows :

La procédure est un peu plus longue, je vous invite à consulter cet article.

Suprimer un cookie

Pour supprimer un cookie, Il suffit de déclarer le cookie sans mettre de valeur

setcookie("Nom_cookie")

<?php
// Pour supprimer le cookie Nom
setcookie("Nom");
?>