Les Cookies en PHP

Les Cookies en PHP

  1. Objectifs

    • Etre capable de créer des cookies en PHP
  2. Définitions

    • Le cookie est un petit fichier qui peut être écrit par un script PHP ou par d’autres langages, tel JavaScript, sur l’ordinateur du visiteur. À l’exception du piratage, c’est le seul cas où un site peut intervenir sur le disque dur d’un utilisateur.
    • Un cookie, c’est un petit fichier que l’on enregistre sur l’ordinateur du visiteur. Ce fichier contient du texte et permet de "retenir" des informations sur le visiteur.
    • Est un petit fichier texte (65 Ko maxi) stocké sur le disque dur du visiteur du site
    • Le cookie est un petit fichier texte, souvent chiffré, qui est situé dans les répertoires des navigateurs. Il est utilisé par les développeurs web pour aider les utilisateurs à naviguer sur leurs sites web de manière efficace et à effectuer certaines actions.



  3. Emplacement des cookies

    • Cela dépend du navigateur que vous utilisez
      • Google Chrome
        • Cliquez sur . Vous le trouverez en haut à droite de la fenêtre de Chrome.
        • Sélectionnez . Vous le verrez vers le bas du menu déroulant.
        • Descendez et appuyez sur . Vous trouverez cette option vers le bas de la page.
      • Mozilla Firefox
        • Aller dans le menu Outils > Options > Vie privée > Supprimer des cookies spécifiques
      • Microsoft Edge
        • Ouvrez Microsoft Edge et sélectionnez Paramètres et plus > Paramètres > Confidentialité, recherche et services.
        • Effacer les données de navigation, sélectionnezChoisir les éléments à effacer.
        • Sous Intervalle de temps, choisissez un intervalle de temps.
        • Sélectionnez Cookies et autres données de site.
      • Opéra
      • Pour créer un cookie, utiliser la fonction setcookie()
      • La fonction setcookie() permet d’envoyer un cookie sur le client. Cette fonction doit être appelée avant tout affichage de texte dans la page.
      • Cette fonction doive être appelée avant d’écrire tout code HTML pour qu’elle fonctionne puisque les cookies doivent être envoyés avant toute autre sortie.
      • Les Cookies en PHP

      • Syntaxe
        • boolean setcookie(string nom_cookie,[string valeur, integer datefin,string chemin, string domaine, integer securite] )
      • Paramètres
        • nom_cookie
          • Le nom du cookie: est une chaîne définissant le nom du cookie.
          • Ce nom obéissant aux mêmes règles de nommage que les variables, il faut éviter les caractères spéciaux. Ce nom sert à identifier le cookie pour les opérations de lecture de leur contenu.
          • Le nom du cookie créé est obligatoire.
        • string valeur
          • La valeur du cookie: Cette valeur est stockée sur l’ordinateur du client.
        • integer datefin
          • Le temps après lequel le cookie expire. C’est un timestamp Unix, donc, ce sera un nombre de secondes depuis l’époque Unix (1 Janvier 1970).
          • Si ce paramètre est omis, le cookie n’est valable que pendant le temps de connexion du visiteur sur le site.
        • string chemin
          • Le chemin sur le serveur sur lequel le cookie sera disponible.
        • string domaine
          • Définit le nom entier du domaine à partir duquel vous pouvez accéder au cookie.
        • integer securite
          • securite est une valeur de type boolean qui vaut TRUE (ou la valeur 1) si le cookie doit être transmis par une connexion sécurisée (avec une adresse du type https://www.mondomaine.com) et FALSE (ou la valeur 0) dans le cas contraire, qui est la valeur par défaut.
      • Exemples
        • <?php
          //cookie valable uniquement pour la session
          setcookie("prenom","Riadh");
          //Cookie valable 6 heures
          setcookie("nom","HAJJI",time()+21600);
          ?>

      • Vous pouvez écrire plusieurs valeurs sous un même nom de cookie en utilisant la notation à crochets des tableaux.
      • <?php
        setcookie("identification[prenom]", "Riadh", time()+365*24*3600);
        setcookie("identification[nom]", "HAJJI", time()+365*24*3600);
        setcookie("identification[email]", "administrateur@apcpedagogie.com", time()+365*24*3600);
        ?>
      • Enregistre un cookie nommé “identification” contenant trois valeurs utilisables pendant une heure.
      • Un cookie peut être utilisé avec des tableaux associatifs. Cela à l’avantage de sauvegarder plusieurs valeurs sur un seul cookie.
      • <?php
        $tabcookies = array("prenom"=>"Riadh", "nom"=>"HAJJI","email"=>"administrateur@apcpedagogie.com");
        foreach($tabcookies as $cle=>$valeur)
        {
        setcookie("identification[$cle]",$valeur,time()+7200);
        }
        ?>
      • Avant de commencer la lecture d’une page, PHP lit les cookies du client pour récupérer toutes les informations qu’ils contiennent. Ces informations sont placées dans la superglobale $_COOKIE, sous forme d’array.
      • <?php
             echo $_COOKIE['prenom'];
             echo $_COOKIE['nom'];
        ?>
      • La fonction foreach() peut servir à parcourir toutes les valeurs et les clés d’un tableau associatif représenté par un cookie de type tableau.
      • foreach($_COOKIE["identification"] as $cle=>$valeur)
        {
           echo "Le cookie nommé: $cle contient la valeur : $valeur <br />";
        }
      • Vous pouvez aussi accéder individuellement à chaque valeur.
      • Pour récupérer la valeur “prenom”, par exemple, vous écrivez :
      • $_COOKIE["identification"]["prenom"]

      • Pour modifier la valeur d’un cookie, il faut recréer un cookie de même nom mais de valeur différente.
      • <?php
        // Après avoir rechargé la page :
        if (isset($_COOKIE['CompteurPage'])) {
          $nbPages = $_COOKIE['CompteurPage']; // on récupère l'ancienne valeur
          $nbPages++; // on incrémente
          setcookie("CompteurPage", $nbPages, time()+365*24*3600); // on modifier le cookie
        }
        ?>
      • Pour modifier la valeur d’un cookie tableau, il faut, comme dans le cas d’un cookie simple recréer un cookie avec le même nom de tableau mais de valeur différente.
      • La valeur récupérée doit être traitée comme un tableau.
      • <?php
        // Après avoir rechargé la page :
        if (isset($_COOKIE['CompteurPage'])) {
          $tabNbPages = $_COOKIE['CompteurPage']; // on récupère l'ancienne valeur
          $tabNbPages['accueil']++; // on incrémente
          setcookie("CompteurPage[accueil]", $tabNbPages, time()+365*24*3600); // on modifier le cookie
        }
        ?>
    • Pour supprimer un cookie Il faut pour créer un cookie du même nom mais sans valeur.
    • <?php
      //avant tout affichage de contenu
      setcookie("CompteurPage");
      
  4. Applications

    • Application 01
      • Énoncé
        • Créer le cookie suivant:
          • Nom:"Exemple_Cookies"
          • Contenu:"Exemple de Cookie valable 6 heures"
          • Devrait expirer après: "6 heures"

      • Solution
        • Afficher le cookie "Exemple_Cookies"
        • echo $_COOKIE["Exemple_Cookies"];
    • Application 02
      • Enoncé
        • Créer une page nommée index.php contenant un formulaire d’identification (nom et prénom dans un seul champs de texte)
        • Faire en sorte que si le visiteur vient pour la première fois (ou qu’il a supprimé ses cookies), il aurait alors, la possibilité de saisir son nom et prénom dans le formulaire,
        • S’il ne s’agit pas de sa première visite, afficher tout simplement “Bonjour :” puis son nom et prénom
      • Solution
        • Essayez de faire l’exercice de votre côté avant de regarder la Solution !