Les sessions  

Les sessions sont adaptées à la sauvegarde de données confidentielles ou importantes. On peut citer quelques exemples courants de leur mise en application :

  • authentifier un visiteur ;
  • garder des informations sur un utilisateur tout au long de sa présence dans votre application ;
  • gérer le panier d’achat d’un internaute sur votre site marchand ;
  • mettre en place des formulaires en plusieurs parties et donc retenir les informations fournies dans les pages précédentes ;
  • effectuer un cache par utilisateur de certaines actions coûteuses en ressources.

Qu'est-ce qu'une session ?

Au lieu de stocker vos informations chez le visiteur, vous les stockez sur le serveur. Techniquement, vous attribuez au visiteur un identifiant. À chaque fois qu'il revient en annonçant cet identifiant, PHP récupérera toutes les informations qu'il avait sauvegardé et qui sont relatives à ce visiteur.

Lecture et écriture

L'utilisation des sessions est très simple pour le programmeur : la manipulation est presque transparente et il suffit de lire ou d'écrire dans un tableau associatif classique une fois l'initialisation de la session faite.

La session s'initialise avec session_start(). PHP essaie alors de lire l'identifiant fourni par l'utilisateur, va chercher le fichier correspondant, et vous met à disposition les informations sauvegardées dans la superglobale $_SESSION[].

Ecriture d'une variable de sessions

Pour ecrire dans une variable de session il suffit d'initialiser les sessions via session_start() et d'ecrire dans la superglobale $_SESSION[].

Ecriture d'une variable de session
  1. <?php
  2. $_SESSION['language'] = 'fr';
  3. ?>

 

Apres cette instanciation il sera possible sur toutes les pages suivantes d'afficher la valeur de la variable de session $_SESSION['language'].

Lecture d'une variable de sessions

Lecture d'une variable de session
  1. <?php
  2. echo $_SESSION['language'];
  3. ?>

 

Pour résumer, les informations de session se manient exactement comme des variables PHP. Vous pouvez ajouter, enlever ou modifier des éléments à la session simplement en modifiant le tableau de session.

Suppression d'une session

PHP efface la session de lui-même au bout d'un certain temps.

Si vous voulez forcer la destruction de la session vous pouvez utiliser la fonction session_destroy().

Suppression d'une variable de session
  1. <?php
  2. ?>

 

Notez que cette fonction ne fait qu'effacer le fichier de données sur le serveur, elle n'efface pas les variables présentes dans $_SESSION[] ni ne supprime le cookie. Si vous voulez éviter tout risque de confusion, effacez $_SESSION[] aussi.

Grossomodo c'est tout ce qu'il faut savoir pour utiliser des variables de sessions. Si vous voulez voir une mise en pratique regardez le tutoriel sur la création d'un espace sécurisé.

Ce que vous trouverez de plus dans le livre PHP 5 avancé :

Image
  • Fonctionnement interne des sessions
  • Définition manuelle de l'initialisation
  • Stockage des données de session
  • Paramètres du cookie
  • Accès concurrents aux sessions
  • Configuration de PHP
  • Initialisation des sessions
  • Stockage des données de session
  • Paramètres du cookie
  • Expiration des sessions
  • Gestion du cache
  • Transmission de l'identifiant
  • Gestionnaires de sessions
  • Définir un gestionnaire personnalisé
  • Limitations et sécurité
  • Cachez les sessions
  • N'utilisez pas la réécriture des liens
  • Les identifiants par défaut suffisent
  • Attaque par fixation de session
  • Cas d'application : Authentification par formulaire

 


Retour à l'accueil des articles