Les sessions en PHP


1. Introduction

Les sessions en PHP 4.0 constituent un moyen de préserver des variables d'une page à l'autre. C'est indispensable dans certaines applications.

Prenons l'exemple d'un site web qui permet de consulter sa boite mail en ligne. L'utilisateur s'identifie une fois, et n'a pas besoin de ressaisir son identifiant à chaque fois qu'il consulte une nouvelle page. En effet, alors qu'il navigue sur le site entre les différentes pages, son identifiant (ainsi qu'éventuellement d'autres informations) est mémorisé.

Lorsque vous utilisez les sessions PHP, chaque visiteur accédant pour la première fois à une de vos pages web se voit assigné un identifiant unique, appelé "identifiant de session". Lorsqu'il consulte ensuite une autre ou la même page de votre site (sans avoir entre temps fermé son navigateur), il envoie au serveur son identifiant de session en même temps que toute requête http.

L'identifiant de session peut être stocké soit dans un cookie, soit propagé dans l'URL. Les cookies sont optimaux, mais tous les internautes ne les acceptent pas, d'où la possibilité de passer l'identifiant de session dans l'URL. Le mécanisme de session de PHP gère de façon transparente le passage d'une technique à l'autre.

Le support des sessions vous permet d'enregistrer un nombre illimité de variables qui doivent être préservées entre les requêtes.

2. Utilisation des sessions

Pour utiliser les sessions, vous devez en premier lieu faire appel à la fonction session_start() dans toute page qui enregistre ou utilise des variables de session. Cet appel doit se faire avant tout code html.

Pour enregistrer une variable de session, il suffit d'ajouter une entrée dans le tableau $_SESSION. En effet, $_SESSION est disponible comme variable globale, au même titre que $_POST, $_GET, $_REQUEST, etc.

Pour détruire une session sur le serveur, il faut appeler la fonction session_destroy(). Il peut être important de terminer une session, pour des raisons de sécurité ou de logique de fonctionnement d'un site.

Pour plus d'informations, consulter le site http://www.php.net/manual/fr.

  <?php
    session_start();
    if (!isset($_SESSION['compteur'])) {
        $_SESSION['compteur'] = 0;
    } else {
        $_SESSION['compteur']++;
    }
  ?>

Exemple 1: Enregistrer une variable de session avec $_SESSION.



  <?php
    session_start();
    unset($_SESSION['compteur']);
  ?>

Exemple 2: Retirer une variable de session.

  <?php
    session_start();
    session_destroy();
  ?>

Exemple 3:Détruire une session


Anne Millet (millet@irit.fr) – Février 2005
Valid HTML 4.01!   Valid CSS!