Cookies & sessions — Programmation objet avec PHP

Licence Informatique, semestre 6

Alexandre NiveauJean-Marc Lecarpentier — Judith Jeyafreeda Andrew

Enseignement des technologies du Web

 

Cookies & sessions — Programmation objet avec PHP

Notes de cours

Travail personnel

Objectifs

Ce TP commence par deux exercices d'application directe des principes des cookies et des sessions. Ils ont l'avantage de vous faire manipuler du PHP simple et réfléchir un peu au fonctionnement de HTTP.

Le troisième exercice (optionnel) montre une application classique des cookies, l'enregistrement de préférences de l'internaute.

Exercice 1 — Cookies #

Un corrigé de cet exercice est disponible (version en ligne ; archive du code).

  1. Écrire un script PHP qui crée une page HTML simple affichant la date et l'heure courantes.
  2. En utilisant un cookie, faire en sorte que si l'internaute a déjà visité la page, alors la date et l'heure de sa dernière visite sont également affichées.
    Exemple de résultat
    Exemple de résultat
  3. Modifier le code précédent pour que le site ne se souvienne de l'internaute que pendant trente secondes.
  4. Ouvrir l'outil « Réseau » de Firefox (menu > Développement web > Réseau ; raccourci : control-shift-E), et observer le cookie transmis dans les en-têtes HTTP de la requête.
  5. Ouvrir l'outil « Stockage » de Firefox (menu > Développement web > Inspecteur de stockage). Vous pouvez voir les cookies enregistrés par le navigateur pour les domaines utilisés par la page. Essayer de modifier le cookie, et actualiser la page. En particulier, comment s'affiche la page si vous mettez du HTML dans le cookie ? Essayer également de le supprimer.
  6. Conclure sur la confidentialité et la sécurité de l'utilisation des cookies.

Exercice 2 — Sessions PHP #

Un corrigé de cet exercice est disponible (archive du code).

  1. En utilisant les sessions PHP, écrire un script qui crée une page HTML indiquant le nombre de visites de l'internaute, en suivant ce modèle.
  2. Ajouter à la page un bouton ou un lien qui permet de remettre le compteur à zéro.
  3. Ouvrir l'outil « Réseau » de Firefox (menu > Développement web > Réseau ; raccourci : control-shift-E), et observer le cookie de session transmis dans les en-têtes HTTP de la requête. Comment s'appelle-t-il ?
  4. L’utilisation du nom par défaut pour le cookie de session est déconseillée : il vaut mieux mettre un nom spécifique à votre application, ce qui permet de faire tourner plusieurs applications sur le même serveur sans risque qu'elles modifient les données les unes des autres. Modifier le nom du cookie de session (et vérifier que cela a bien pris effet).
  5. Ouvrir l'outil « Stockage » de Firefox (menu > Développement web > Inspecteur de stockage), supprimer le cookie et actualiser la page. Que se passe-t-il ? Essayer également de modifier la valeur de l'identifiant. Quelle est la différence par rapport à si on avait utilisé un simple cookie nb-visites ?

Exercice 3 (optionnel) — Stockage de préférences avec un cookie #

Un corrigé de cet exercice est disponible (version simple ; avec formulaire ; archive du code).

  1. Écrire un script PHP qui crée une page HTML simple avec un titre et du texte.
  2. Créer deux fichiers CSS pour cette page, defaut.css et special.css, qui donnent des rendus très différents (par exemple différentes couleurs de fond).
  3. En utilisant les cookies, faire en sorte que le CSS utilisé soit defaut.css lors de la première visite d'un·e internaute, et special.css si l'internaute a déjà visité la page.
  4. Ajouter un formulaire sur la page permettant à l'internaute de choisir le fichier CSS qu'il ou elle préfère, et faire en sorte que ce choix soit enregistré pendant 30 minutes. NB : pour tester pendant le développement, il est plus pratique de mettre 30 secondes ! N'oubliez pas l'onglet « Stockage » des outils de développement de Firefox, pratique également pour faire des tests.