Les Cookies en PHP
Sommaire
- 1- Objectifs
- 2- Définitions
- 3- Emplacement des cookies
- 3.1- Google Chrome
- 3.2- Mozilla Firefox
- 3.3- Microsoft Edge
- 3.4- Opéra
- 4- Créer un cookie en PHP
- 4.1- Créer un cookie simple
- 4.2- Syntaxe
- 4.3- Paramètres
- 4.4- Exemples
- 4.5- Créer un cookie avec plusieurs valeurs sous un même nom
- 4.6- Créer un cookie à partir d'un tableau
- 5- Récupérer la valeur d'un cookie en php
- 5.1- Cookie simple
- 5.2- Cookie tableau
- 6- Modifier la valeur d'un cookie en PHP
- 6.1- Cookie simple
- 6.2- Cookie tableau
- 7- Supprimer un cookie en PHP
- 8- Applications
- 8.1- Application 01
- 8.2- Énoncé
- 8.3- Solution
- 8.4- Application 02
- 8.5- Enoncé
- 8.6- Solution
- 8.6.1- Cours PHP
Les Cookies en PHP
-
Objectifs
- Etre capable de créer des cookies en PHP
-
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.
-
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
-
Créer un cookie en PHP
-
Créer un cookie simple
- 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.
-
Syntaxe
-
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
-
Créer un cookie avec plusieurs valeurs sous un même nom
- Vous pouvez écrire plusieurs valeurs sous un même nom de cookie en utilisant la notation à crochets des tableaux.
- Enregistre un cookie nommé “identification” contenant trois valeurs utilisables pendant une heure.
-
Créer un cookie à partir d’un tableau
- Un cookie peut être utilisé avec des tableaux associatifs. Cela à l’avantage de sauvegarder plusieurs valeurs sur un seul cookie.
-
Récupérer la valeur d’un cookie en php
-
Cookie simple
- 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
. -
Cookie tableau
- 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. - Vous pouvez aussi accéder individuellement à chaque valeur.
- Pour récupérer la valeur “prenom”, par exemple, vous écrivez :
-
Modifier la valeur d’un cookie en PHP
-
Cookie simple
- Pour modifier la valeur d’un cookie, il faut recréer un cookie de même nom mais de valeur différente.
-
Cookie tableau
- 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.
-
Supprimer un cookie en PHP
- Pour supprimer un cookie Il faut pour créer un cookie du même nom mais sans valeur.
-
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"
-
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 !
boolean setcookie(string nom_cookie,[string valeur, integer datefin,string chemin, string domaine, integer securite] )
<?php
//cookie valable uniquement pour la session
setcookie("prenom","Riadh");
//Cookie valable 6 heures
setcookie("nom","HAJJI",time()+21600);
?>
<?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);
?>
<?php
$tabcookies = array("prenom"=>"Riadh", "nom"=>"HAJJI","email"=>"administrateur@apcpedagogie.com");
foreach($tabcookies as $cle=>$valeur)
{
setcookie("identification[$cle]",$valeur,time()+7200);
}
?>
<?php
echo $_COOKIE['prenom'];
echo $_COOKIE['nom'];
?>
foreach($_COOKIE["identification"] as $cle=>$valeur)
{
echo "Le cookie nommé: $cle contient la valeur : $valeur <br />";
}
$_COOKIE["identification"]["prenom"]
<?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
}
?>
<?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
}
?>
<?php
//avant tout affichage de contenu
setcookie("CompteurPage");
echo $_COOKIE["Exemple_Cookies"];