Gérer les cookies en PHP 8, tout en utilisant efficacement les variables superglobales comme $_COOKIE
et $_POST
, peut s’avérer complexe pour de nombreux développeurs ce qui expose leurs applications à des risques de sécurité et de mauvaise gestion des sessions.
Ignorer la configuration correcte des cookies peut entraîner des pertes de données, des failles de sécurité comme les attaques XSS, et une mauvaise expérience utilisateur, compromettant ainsi la fiabilité de votre application web.
Dans cet article, découvrez comment utiliser les cookies en PHP pour stocker, afficher et sécuriser des informations tout en garantissant une gestion optimale des sessions utilisateur.
Fonctionnement des Cookies en PHP 8 : Comprendre les Bases
Dans cette section, vous découvrirez ce qu’est un cookie et comment il fonctionne pour améliorer votre expérience en ligne. Vous apprendrez également la syntaxe de base et verrez un exemple pratique en PHP pour gérer les cookies dans vos applications web.
Un cookie est un petit fichier texte que les sites web placent sur votre appareil lorsque vous les visitez. Ce fichier contient des informations qui permettent au site web de se souvenir de vous et de vos préférences lors de vos prochaines visites. Les cookies sont essentiels pour offrir une expérience utilisateur personnalisée et pour gérer les sessions des utilisateurs.
Par exemple, vous inscrivez dans un cookie le pseudo du visiteur. Comme ça, la prochaine fois qu’il viendra sur votre site, vous pourrez lire son pseudo en allant regarder ce que son cookie contient.
Parfois, les cookies ont une mauvaise image.
Syntaxe
Un cookie est créé avec la setcookie
()fonction.
setcookie(nom, valeur, expiration, chemin, domaine, sécurisé, HttpOnly);
Les paramètres ont la signification suivante :
Paramètre | Signification |
---|---|
nom | Le nom du cookie. Le nom d’un cookie est soumis aux mêmes règles que les noms des variables.
|
valeur | La valeur du cookie. Comme cette valeur est stockée sur l’ordinateur d’un utilisateur, on évitera de stocker des informations sensibles.
|
expiration | La date d’expiration du cookie sous forme d’un timestamp UNIX (nombre de secondes écoulées depuis le 1er janvier 1970). Si aucune valeur n’est passée en argument, le cookie expirera à la fin de la session (lorsque le navigateur sera fermé).
|
Chemin | Le chemin sur le serveur sur lequel le cookie sera disponible. Si la valeur est ‘/’, le cookie sera disponible sur l’ensemble du domaine. Si la valeur est ‘/cours/’, le cookie ne sera disponible que dans le répertoire (le dossier) /cours/ (et dans tous les sous-répertoires qu’il contient).
|
domaine | Indique le domaine ou le sous-domaine pour lequel le cookie est disponible.
|
sécurisé | Indique si le cookie doit uniquement être transmis à travers une connexion sécurisée HTTPS depuis le client. Si la valeur passée est true, le cookie ne sera envoyé que si la connexion est sécurisée.
|
httponly | Indique si le cookie ne doit être accessible que par le protocole HTTP. Pour que le cookie ne soit accessible que par le protocole HTTP, on indiquera la valeur true. Cela permet d’interdire l’accès au cookie aux langages de scripts comme le JavaScript par exemple, pour se protéger potentiellement d’une attaque de type XSS.
|
Exemple
Arguments Supplémentaires pour Configurer les Cookies en PHP 8
Dans cette section, vous allez découvrir quatre arguments supplémentaires pour enrichir votre compréhension de la gestion des cookies. Vous apprendrez à utiliser des paramètres additionnels pour affiner la configuration des cookies et les adapter à vos besoins spécifiques.
Voici comment vous pouvez utiliser setcookie
() avec tous les paramètres :
Dans cet exemple :
- ‘pseudo’ : Nom du cookie.
- ‘pierre’ : Valeur du cookie.
- time () + 365 * 24 * 3600 : Date d’expiration du cookie (dans ce cas, un an à partir de maintenant).
- ‘/’ : Chemin où le cookie est disponible (le cookie sera accessible sur tout le site).
- ‘example.com’ : Domaine pour lequel le cookie est valide (remplacez-le par votre domaine réel).
- true : Le cookie est transmis uniquement sur des connexions HTTPS (sécurisé).
- true : Le cookie est accessible uniquement par HTTP (HttpOnly).
Apres exécution de code en obtient le résultat suivant
Afficher la Valeur d'un Cookie PHP 8 sur une Page Web
Une fois que vous avez créé et stocké un cookie, vous pourriez vouloir afficher sa valeur sur une page web. Voici comment vous pouvez procéder en PHP.
Voici un exemple simple pour afficher la valeur d’un cookie sur votre page web :
Résultat affiché :
Voici un diagramme détaillé des étapes client-serveur avec des flèches pour illustrer le processus de définition et d’affichage d’un cookie :
Stocker Plusieurs Informations dans un Cookie PHP 8
Pour vous permettre de stocker plusieurs informations dans un cookie, vous avez deux approches possibles : utiliser plusieurs cookies ou combiner les données dans un seul cookie. Voici comment procéder avec chaque méthode
Exemple 1 : Utilisation de plusieurs cookies
Vous pouvez créer plusieurs cookies pour stocker différentes informations. Voici un exemple qui montre comment stocker le nom, l’âge et la ville de l’utilisateur dans des cookies distincts :
Résultat affiché :
Lire et Afficher un Cookie PHP 8 sur une Autre Page
Pour afficher la valeur d’un cookie sur une page différente de celle où il a été défini, vous devez suivre ces étapes :
- Définir le cookie : Créez un cookie sur une première page.
- Accéder au cookie sur une autre page : Lisez et affichez la valeur du cookie sur une seconde page.
Sur la page index.php, vous définissez les cookies et affichez leurs valeurs. Vous fournissez également un lien vers une autre page où vous afficherez la valeur du cookie pseudo.
Création des Cookies dans index.php
";
echo"Aller vers la page";
echo"";
?>
Affichage des Cookies sur une Autre Page avec page.php
Sur page.php, vous pouvez afficher la valeur du cookie pseudo que vous avez défini dans index.php :
Résultat affiché :
Sécuriser les Cookies en PHP 8 : Bonnes Pratiques
Pour sécuriser la valeur des cookies, vous devez prendre plusieurs mesures afin de protéger les données stockées contre les accès non autorisés et les attaques. Voici comment vous pouvez sécuriser les cookies en PHP :
Code PHP pour Sécuriser et Afficher les Cookies
Voici le code PHP mis à jour avec des mesures de sécurité pour la gestion des cookies :
Google', time() + 3600 , null,null, false, true);
setcookie('age',12, time() + 3600 );
setcookie('ville',"Paris", time() + 3600 );
echo $_COOKIE['age'];
echo",";
echo htmlspecialchars($_COOKIE['pseudo']);
echo",";
echo $_COOKIE['ville'];
echo",";
echo"";
echo"Aller vers la page";
echo"
";
?>
Résultat affiché :
Comment Supprimer un Cookie en PHP 8
Lorsque vous souhaitez supprimer un cookie, vous devez définir le cookie avec la même clé et le même chemin, mais avec une date d’expiration passée. Cela indique au navigateur qu’il doit supprimer le cookie.
Voici comment vous pouvez procéder pour supprimer un cookie en PHP :
Définir le Cookie avec une Date d’Expiration Passée
Vous devez utiliser la fonction setcookie()
pour définir le cookie avec une date d’expiration antérieure à la date actuelle. Cela indiquera au navigateur de supprimer le cookie.
Vérifier la Suppression du Cookie
Après avoir supprimé le cookie, vous pouvez vérifier qu’il n’est plus présent dans la superglobale $_COOKIE.
Exemple de Code pour Supprimer un Cookie
Code pour Supprimer un Cookie
Explication du Code
Élément | Description | Code Exemple |
---|---|---|
Supprimer les Cookies | Utilisez setcookie() avec une date d’expiration passée pour indiquer au navigateur de supprimer le cookie. | setcookie(‘pseudo’, », time() – 3600, ‘/’); |
Vérifier la Suppression | Vérifiez si les cookies ont été supprimés en consultant la superglobale $_COOKIE. | if (!isset($_COOKIE[‘pseudo’]) && !isset($_COOKIE[‘age’]) && !isset($_COOKIE[‘ville’])) { echo « Les cookies ont été supprimés. »; }
|
Exercice : Créer un Formulaire avec PHP 8
Dans cette section, vous devez écrire un formulaire HTML conçu pour permettre aux utilisateurs de créer et de soumettre un pseudonyme. Lorsque l’utilisateur entre un pseudonyme dans le champ de texte et soumet le formulaire, les données sont envoyées au serveur via une requête POST. Le serveur traite cette requête en utilisant un script PHP, qui enregistre le pseudonyme dans un cookie. Ce cookie a une durée de vie d’une heure, ce qui signifie que la valeur saisie sera stockée et pourra être récupérée ultérieurement, même après que l’utilisateur ait quitté la page ou fermé le navigateur. Ce formulaire est simple et efficace pour la gestion des données temporaires des utilisateurs et sert de base pour des exercices pratiques sur la manipulation des cookies.
Voici le code
welcome
Après l’exécution du formulaire et la soumission du pseudonyme, le résultat affiché sur la page suivante devrait ressembler à la figure suivante :
Résultat affiché :
Exercice : Styliser un Formulaire
Pour améliorer l’apparence de votre formulaire, vous devez ajouter le style suivant :
@import url('https://fonts.googleapis.com/css2?family=Montserrat&display=swap');
body{
font-family: 'Montserrat', sans-serif;
height: 100vh;
margin: 0;
background-color: #7f8c8d;
display: flex;
justify-content: center;
align-items: center
}
section{
width: 450px;
}
section h1{
text-align: center;
font-size: 30px;
letter-spacing: 2px;
color:#bdc3c7;
}
section input[type="submit"]{
width: 100%;
margin-top: 15px;
padding: 15px;
border-radius: 10px;
border: none;
cursor: pointer;
outline: none;
background-color: #bdc3c7;
font-size: 25px;
letter-spacing: 1px;
color:#333;
}
section input[type="submit"]:hover{
background: #fff;
}
Après l’application du style, le résultat affiché devrait ressembler à ce qui suit :
Exercice : Personnaliser le Champ Pseudo
Maintenant, dans cette section, vous allez mettre en forme le champ de pseudonyme en appliquant le style suivant. Ajoutez le code CSS ci-dessous pour améliorer l’apparence du champ.
section div{
display: flex;
}
section div label{
background-color: #bdc3c7;
color:#ecf0f1;
padding: 10px 15px;
font-size: 2rem;
text-transform:capitalize;
border: 1px solid #777;
border-radius: 0 5px 5px 0;
}
section div input{
width: 100%;
border: 1px solid #777;
border-left: none;
padding-left: 10px;
font-size: 1.5rem;
color:#aaa;
outline: none;
border-radius: 0 5px 5px 0;
}
Après l’application du style, le résultat affiché devrait ressembler à ce qui suit :
Exercice : Créer un Cookie Pseudo
Voici un code PHP révisé pour créer un cookie avec le pseudonyme soumis via le formulaire. Ce code inclut des améliorations pour la gestion des erreurs et la configuration du cookie.
Explication du Code
- Initialise une variable $error pour stocker les messages d’erreur.
- Vérification de la Soumission du Formulaire : Utilise
isset($_POST['creer'])
pour vérifier si le formulaire a été soumis. - Validation : Vérifie si le champ pseudo est vide. Si c’est le cas, assigne un message d’erreur.
- Définition du Cookie : Utilise setcookie() pour créer un cookie avec le pseudonyme saisi. Le cookie expire dans une heure (time() + 3600) et est disponible sur tout le site (‘/’).
- Redirection : Redirige vers display_cookie.php pour afficher la valeur du cookie. Vous pouvez ajuster cette URL selon vos besoins.
Pour afficher les messages d’erreur, assurez-vous que vous avez du code HTML dans votre page qui affiche $error
, comme ceci :
Exercice : Lire un Cookie Pseudo
Dans cette section, vous allez créer et lire un cookie pour stocker et afficher un pseudonyme utilisateur. Vous apprendrez à gérer les erreurs de saisie et à utiliser les cookies pour personnaliser l’expérience utilisateur sur la page.
welocome
Bonjour
Voilà résulte d’affichage de code
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui. Découvrez des cours variés pour tous les niveaux !
Conclusion
Les cookies jouent un rôle essentiel dans la gestion de l’état et des préférences des utilisateurs sur le web. Voici les concepts fondamentaux à connaître pour comprendre leur fonctionnement et leur utilisation sécurisée :
- Concept Fondamental : Les cookies sont des petits fichiers stockés sur le client qui permettent de conserver des informations entre les sessions de navigation.
- Création et Lecture : Vous avez appris à créer des cookies avec
setcookie()
et à lire leurs valeurs via la superglobale$_COOKIE.
- Gestion des Erreurs : La validation des données saisies et la gestion des erreurs sont cruciales pour garantir la précision et la sécurité des informations stockées.
- Persistance des Données : Les cookies permettent de conserver des données utilisateur sur le long terme, améliorant ainsi l’expérience utilisateur en préservant les préférences et les paramètres.
- Sécurité : Des pratiques sécurisées doivent être appliquées pour protéger les données stockées dans les cookies et éviter les vulnérabilités telles que les attaques XSS.
L’article à venir abordera la gestion des sessions en PHP 8, en explorant les concepts essentiels et les meilleures pratiques pour sécuriser et gérer efficacement les données de session.