Apprendre à coder sur pierre-giraud.com

DES COURS COMPLETS ET GRATUITS POUR TOUS

SOMMAIRE

Introduction

  1. Présentation du cours
  2. Introduction au PHP
  3. Mettre en place un env. de travail

Les bases en PHP

  1. Syntaxe de base du PHP
  2. Premières instructions PHP
  3. Introduction aux variables PHP
  4. Types de valeurs et concaténation
  5. Opérations sur les variables
  6. Conditions et opérateurs de comparaison
  7. Les conditions if, if...else et if... elseif... else
  8. Utilisation avancée des conditions
  9. Structures ternaires et switch
  10. Les boucles PHP
  11. Découverte des fonctions
  12. La portée des variables
  13. Les constantes PHP
  14. Les variables tableaux PHP
  15. Tableaux associatifs
  16. Tableaux multidimensionnels
  17. Test n°1

Gestion des dates en PHP

  1. Le timestamp
  2. Obtenir et formater une date
  3. Tester la validité d'une date
  4. Test n°2

Opérations sur les fichiers en PHP

  1. Lire, ouvrir, fermer un fichier
  2. Parcourir et lire un fichier par partie
  3. Créer un fichier et écrire dedans
  4. Ecrire dans un fichier
  5. Les instructions include et require
  6. Test n°3

Les variables superglobales

  1. Découverte des variables superglobales
  2. Les cookies
  3. Les sessions
  4. Test n°4

Les expressions régulières et PHP

  1. Découverte des regex
  2. Les fonctions PHP PCRE
  3. Quantifieurs et options
  4. Classes de caractères
  5. Test n°5

L'orienté objet en PHP

  1. Classes, instances et objets
  2. Propriétés et méthodes
  3. Extension de classe et héritage
  4. Le principe d'encapsulation
  5. La méthode constructeur
  6. L'opérateur de résolution de portée et la surcharge
  7. Constantes, méthodes et propriétés statiques
  8. Les classes et méthodes abstraites
  9. Les interfaces
  10. Les méthodes magiques
  11. Le chainage de méthodes
  12. Test n°6

Notions avancées en POO

  1. Le typage explicite
  2. Les traits
  3. Les closures et les classes anonymes
  4. L'auto-chargement des classes
  5. Le mot clef final
  6. Résolution statique à la volée
  7. Parcourir des objets
  8. Le clonage d'objets
  9. Comparaison d'objets
  10. Test n°7

Filtres, erreurs et exceptions

  1. Introduction aux filtres
  2. Utilisation pratique des filtres
  3. Gérer les erreurs en PHP
  4. Gérer les exceptions en PHP

LES COOKIES EN PHP

Présentation des cookies en PHP

Un cookie est un petit fichier ne contenant généralement qu’une information précise, comme un pseudonyme ou un mot de passe par exemple.

Ce petit fichier possède toujours une date d’expiration : les cookies ne sont jamais stockés pour l’éternité.

Les cookies vont être stockés sur les ordinateurs de vos visiteurs. Ainsi, à tout moment, un utilisateur peut lui même supprimer les cookies de son ordinateur.

Généralement, nous allons utiliser les cookies pour faciliter la vie des utilisateurs. En effet, grâce aux cookies, nous allons pouvoir identifier un utilisateur revenant sur notre site et ainsi, par exemple, lui proposer une reconnexion automatique à son espace client, etc.

Les cookies ne sont donc pas dangereux en soi même s'ils continuent d'avoir mauvaise réputation. En revanche, comme ceux-ci peuvent contenir des informations sensibles, il convient de s’assurer qu’un utilisateur malveillant ne pourra pas intercepter ces cookies.

Créer un cookie en PHP

Pour créer un cookie en PHP, nous allons utiliser la fonction setcookie().

La première particularité de cette fonction est qu’il va falloir l’appeler avant d’écrire tout code HTML pour qu’elle fonctionne.

Cette fonction peut accepter jusqu’à sept arguments. Cependant, seul le premier (le nom du cookie créé) est obligatoire.

Voici à quoi correspondent les différents arguments de setcookie() dans leur ordre d’écriture :

  1. Le nom du cookie ;
  2. La valeur du cookie ;
  3. La date d’expiration du cookie (sous forme de timestamp UNIX) ;
  4. Le chemin sur le serveur sur lequel le cookie est disponible (c’est-à-dire les différents dossiers pour lesquels le cookie est accessible) ;
  5. Le domaine pour lequel le cookie est accessible ;
  6. True ou false, indiquant si le client doit passer par une connexion sécurisée pour transmettre le cookie. Si on passe la valeur true, le cookie ne sera envoyé que si la connexion est sécurisée (https) ;
  7. True ou false. Si on passe la valeur true, le cookie ne sera disponible que par le protocole http. Cela permet d’interdire l’accès au cookie aux langages de scripts comme le JavaScript par exemple, pour se protéger des failles XSS.

Créons ensemble nos premiers cookies afin de bien comprendre le fonctionnement de la fonction setcookie().

Création de deux cookies en PHP avec la fonction setcookie()

Ici, nous créons deux cookies avec la fonction PHP setcookie() : un premier cookie nommé prenom et un second nommé pass.

Comme je vous l’ai précisé précédemment, il faut appeler cette fonction avant d’écrire un quelconque code HTML. Nous appelons donc setcookie() dans une balise PHP, avant même d'écrire notre élément html.

Nous utilisons la fonction time() sans lui passer d'argument pour récupérer la valeur du timestamp actuel. Ensuite, nous lui ajoutons un certain nombre de secondes pour définir la date d’expiration des cookies.

Pour notre deuxième cookie, nous utilisons la valeur par défaut pour le chemin du serveur sur lequel le serveur est accessible, c’est à dire la valeur / qui signifie que le cookie sera accessible dans tous les dossiers d’un certain domaine.

Nous précisons ensuite que le cookie doit être accessible et valide sur le domaine pierre.giraud.com (et tous ses sous domaines par conséquent).

Finalement, nous précisons les valeurs true pour les arguments « secure » (passage par une connexion sécurisée pour transmettre le cookie) et « httponly » (obligation d'utiliser le protocole http pour accéder au cookie).

Récupérer la valeur d’un cookie

Pour récupérer la valeur d’un cookie, nous allons utiliser la variable superglobale $_COOKIE.

Cette superglobale stocke un tableau contenant les valeurs des différents cookies définis dans un script. On peut accéder à la valeur d'un cookie en particulier en renseignant le nom du cookie en clef de ce tableau.

On va donc pouvoir manipuler la valeur d’un cookie ou tout simplement l'echo.

Utilisation de la superglobale PHP $_COOKIE

On récupère la valeur d’un cookie avec $_COOKIE en PHP

Ici, on utilise la fonction PHP isset() pour vérifier si notre cookie est bien défini avant d’utiliser $_COOKIE.

Notez qu’il est possible (et même probable) si vous testez le code ci-dessus en travaillant comme moi en local que la fonction setcookie() ne fonctionne pas et que vous ayez donc le texte cookie non défini d’echo dan votre navigateur.

Si c’est le cas, cela est certainement dû à un problème de configuration de votre serveur local (WAMP, MAMP, etc.).

Pour modifier cela, il vous faudra aller dans le fichier de configuration php.ini de votre logiciel et modifier la valeur de l’output buffering si celui-ci est défini sur « off ».

Avec MAMP, le fichier se trouve dans MAMP/bin/php/phpx.x.x/php.ini. Remplacez le x.x.x par la dernière version de PHP.

Ouvrez donc le fichier, modifiez la valeur de l’output buffering (donnez lui la valeur 4096 par exemple), puis fermez et redémarrez MAMP.

Modifier la valeur d’un cookie ou supprimer un cookie

Pour modifier la valeur d’un cookie, il suffit d’utiliser à nouveau setcookie() en réécrivant le cookie à l’identique et en changeant simplement la valeur donnée.

Modifier la valeur d’un cookie en PHP avec setcookie

Pour modifier la valeur d’un cookie en PHP, il suffit de le réécrire à l’identique

Finalement, pour supprimer un cookie, il suffit de lui donner une date d’expiration passée, c’est-à-dire un timestamp plus petit que celui de la date actuelle.

Pour faire cela, il faut une nouvelle fois utiliser la fonction setcookie(). Pas besoin cependant cette fois-ci de repréciser la valeur du cookie.

Suppression d’un cookie en PHP

On supprime un cookie en PHP en passant une date d’expiration passée via setcookie()

Chapitre précédent

Chapitre suivant