Apprendre PHP (13/19) - Manipulation des cookies

In this French‑language tutorial, the instructor explains the relationship between PHP sessions and HTTP cookies, emphasizing that a session ID is stored in a cookie to link the client to server‑side session data. He advises using sessions for sensitive information (logins, passwords) and reserving cookies for non‑critical data such as shopping‑cart contents or UI preferences. The core example demonstrates how to let a user choose a light or dark site theme and persist that choice with a cookie. The lesson walks through retrieving a ‘theme’ GET parameter, validating it, creating a cookie with setcookie(name, value, expiration) (using time()+3600 for a one‑hour lifetime), reading the cookie via the $_COOKIE superglobal, applying the stored value to select the appropriate CSS file (clair.css or sombre.css), handling the default theme with a ternary operator and the @ error‑suppression operator, and finally issuing a header('Location: …') redirect to avoid double‑click issues and ensure the cookie is sent before the page reloads. The instructor repeatedly tests the flow, clears browser history, and shows that the chosen theme persists across page loads.
Chapters
Bonjour à tous, et bienvenue dans cette nouvelle leçon de PHP. Aujourd'hui nous allons voir les cookies. Dans la vidéo précédente où nous avons vu les sessions, j'ai mentionné qu'il y a une relation étroite entre les variables de session et les cookies. En réalité, la variable de session est créée sur le serveur, mais celui-ci envoie un identifiant de sa création vers le client sous forme de cookie. C'est ce cookie qui permet de faire persister la session en lien entre le navigateur et le serveur. Aujourd'hui, nous allons faire abstraction des variables de session et on va traiter uniquement les cookies. En fait, les cookies sont utilisés par tous les sites web. Même si le développeur du site ne les a pas pris en compte, le serveur les envoie d'une manière automatique via une en-tête HTTP. Les cookies permettent au serveur de mémoriser le client. Imaginez avec moi que vous vous êtes rendu sur un site e-commerce et que vous voulez effectuer des achats. Alors vous avez sélectionné quelques articles et vous les avez placés dans votre panier, mais vous n'avez pas conclu l'achat à l'heure même. Mais quand vous êtes revenu sur le site, vous avez constaté que le panier est toujours plein avec les mêmes articles que vous avez déjà choisis, sachant que vous n'avez fait aucune sauvegarde sur le site concerné. En fait, le site e-commerce avait placé vos produits dans un cookie qu'il vous a renvoyé, et ce cookie a été sauvegardé sur votre navigateur. La prochaine fois que vous vous êtes connecté sur le site, alors le cookie est renvoyé au serveur et celui-ci a pu rétablir votre panier. Alors en général, les cookies sont utilisés dans ce sens, c'est-à-dire pour mémoriser le choix de l'utilisateur. Notez que si vous voulez manipuler des informations sensibles comme les logins et les mots de passe, dans ce cas il est préférable d'utiliser les variables de session, parce que votre session est garantie à la fois par la variable qui est stockée dans le serveur et la cookie qui est stockée chez vous. Par contre, avec les cookies, on peut juste manipuler des informations qui ne sont pas tellement critiques. Comme c'est le cas d'un panier sur un site e-commerce ou d'un thème d'affichage d'un site par exemple. Dans notre cas, nous allons utiliser les cookies afin de mémoriser le choix d'un thème par l'utilisateur. Si vous regardez cette page, elle est stylée avec un petit style CSS qui permet d'appliquer une image d'arrière-plan. Il s'agit en fait d'un style par défaut. Cependant, on va offrir à l'utilisateur la possibilité de choisir un thème. Dans ce cas, il y a le choix entre un thème clair ou bien un thème sombre. Et comme vous l'avez certainement deviné, derrière nous avons prévu 2 feuilles de style différentes: une qui va appliquer le thème clair et l'autre qui va appliquer le thème sombre. Dans le dossier CSS, nous avons 2 styles, un qui s'appelle clair.css et l'autre qui s'appelle sombre.css. Pour avoir une idée de ce que ça contient, la feuille de style clair.css contient une image d'arrière-plan qui est claire avec quelques modifications en ce qui concerne les couleurs d'avant-plan. Et la feuille de style qui est sombre contient une image qui est sombre. Les images sont stockées dans un dossier qui s'appelle images. Alors nous avons une image sombre.jpg qui ressemble à ceci, une image claire.jpg qui ressemble à cela. Maintenant dans le fichier index.php, nous avons appliqué par défaut le style clair.css d'où le résultat suivant. Ici nous avons placé 2 boutons, il s'agit en fait de liens hypertextes qui permettent d'appliquer le thème choisi par l'utilisateur. Alors quand on clique sur l'un de ces liens, on va passer à travers le GET un paramètre qui s'appelle thème qui peut avoir soit la valeur claire ou bien la valeur sombre. Alors première chose à faire dans ce cas, c'est récupérer ce GET. On va donc procéder de la manière classique en PHP. Voilà comme ceci. Donc maintenant nous avons récupéré la valeur thème qui peut être soit claire ou bien sombre. Ce que nous allons faire maintenant, c'est vérifier si le thème correspond bien à l'une des 2 valeurs. Ça veut dire soit clair, soit sombre. Autrement dit, il est possible que l'utilisateur saisisse une valeur qui est différente de ces 2-là. Alors il faut être sûr que la valeur choisie doit être l'une parmi ces 2 qui ont été instaurées. Je mettrai donc ici if thème égal à clair ou bien thème égal à sombre, C'est à ce moment-là que je vais faire mon traitement. Le traitement est simple, je vais créer un cookie qui contient la valeur du thème choisi. Et pour faire ceci, on va faire appel à la fonction setCookie comme ceci. La fonction setCookie contient plusieurs paramètres, mais nous on va se contenter des 3 paramètres les plus importants, à savoir le nom du cookie, on va mettre par exemple thème, Donc ça c'est le nom qui va identifier le cookie. Le deuxième paramètre c'est la valeur de ce cookie, alors ça sera la variable thème. Et le dernier paramètre c'est ce qu'on appelle le timeout, c'est-à-dire la durée durant laquelle le cookie sera actif. Au-delà de cette durée il sera automatiquement supprimé. Et cette durée est calculée à l'aide du timestamp, ça veut dire de manière absolue depuis le 1er janvier 1970. Donc si on met time comme ceci, alors ça donne le timestamp courant, c'est-à-dire que ce cookie est valide juste au temps présent. Autrement dit, si je quitte le site web, le cookie sera automatiquement supprimé. Donc là, je vais mettre+ et je vais rajouter le nombre de secondes que je souhaite. Je mettrai par exemple 3600 pour dire que ce cookie est valide pendant 1 heure. Au-delà de cette heure, il sera automatiquement supprimé. Maintenant, je viens d'enregistrer le cookie et pour voir à quoi ça ressemble, on va faire le test suivant. On va essayer d'afficher les cookies qui ont été envoyés par le serveur à l'aide de la variable superglobale $_COOKIE et comme d'habitude, il s'agit d'un tableau. Alors on mettra println cookie comme ceci. Donc maintenant j'exécute pour voir le résultat. Donc ça me donne array parce que le cookie maintenant est vide. Et quand je clique sur un thème et que j'actualise, donc maintenant ça me donne bien qu'il y a une valeur dans le cookie. Donc il s'appelle thème et il a la valeur clair. Même chose pour la valeur sombre. Voilà, donc là le même cookie mais avec une valeur différente. Alors maintenant je crois que vous avez compris le principe. Suffit d'appliquer la valeur du cookie à l'emplacement de la déclaration du style CSS afin de sélectionner soit la feuille sombre.css ou bien clair.css. On va donc faire ceci. On va déclarer une variable qui s'appelle style à laquelle je vais affecter quelque chose. Et c'est cette variable-là que je mettrai à cet emplacement. Ça veut dire au lieu de figer le style de cette manière, je vais le déclarer en tant que variable PHP qui peut changer. Comme ceci. Alors maintenant, cette variable style peut avoir 2 valeurs, soit clair.css ou bien sombre.css. Donc maintenant, ce qu'il faut savoir, c'est que cette variable style va être appliquée ici. Mais imaginez avec moi que l'utilisateur ne choisit aucun thème. Alors dans ce cas, il faut appliquer un thème par défaut. On mettra donc ici un opérateur ternaire, on va mettre la condition empty cookie avec la valeur theme, c'est-à-dire que si cette variable est vide, dans ce cas on va appliquer un style par défaut. On mettra point d'interrogation et ensuite on va choisir le style clair. Sinon, ça veut dire si la variable cookie theme contient quelque chose, alors il faut appliquer la valeur qu'elle contient à la variable style. Et comme d'habitude, pour éviter les erreurs de notification si cette variable ne contient rien, on mettra donc ici@ et encore ici un@. Alors exécutons maintenant pour voir le résultat. Bon, je vais carrément effacer l'historique de navigation. J'actualise la première fois, donc ça ne me donne rien. Maintenant si je choisis le thème sombre et que j'actualise, alors le thème sombre est appliqué. Ici je sélectionne le thème clair. Dans ce cas, le thème clair est appliqué. D'ailleurs, si j'enlève ça, ça veut dire si j'enlève carrément l'argument, on voit bien qu'il se souvient du thème clair. Bon, même chose pour le thème sombre. Voilà. Afin d'éviter le fait de cliquer deux fois, on mettra donc ici une redirection. Mettra header location. La page courante. Ça veut dire qu'une fois le cookie est appliqué, je vais actualiser la page afin de faire persister. Donc maintenant j'actualise. Donc là j'ai toujours le thème sombre et là c'est le thème clair. Et voilà, même chose, donc thème sombre. Donc maintenant je peux actualiser la page et le navigateur se souvient automatiquement du choix de l'utilisateur parce que c'est enregistré dans un cookie. Alors ça sera tout pour cette séance, merci pour votre attention et à la vidéo prochaine.
More from Yamossoun

Algorithme de calcule de la racine carrée par dichotomie #dichotomy #squareroot #algorithm









