04-07-2008 : 2h01 min - non connecté
Dernière modification le 12 août 2007

 

Les sessions

 

Les sessions permettent de passer des variables de pages en pages. Elles permettent d'enregistrer des variables propres à chaque utilisateur. Les variables sont enregistrées sur le serveur (contrairement aux cookies qui sont enregistrés sur le poste client). Lorsqu'une session est créée, un identifiant unique permet de retrouver les variables propres à chaque utilisateur. Cette identifiant est propagé de page en page de deux manières :

  • par un cookie
  • par l'URL

Suivant la version et la façon d'installer PHP, ce passage de page peut être différent. Pour plus de détails voir cette page : http://www.php.net/manual/fr/ref.session.php

Une FAQ sur les sessions : http://cyberzoide.developpez.com/php4/faqsession/

Créer une session

On crée une session avec l'instruction session_start().

Cette instruction doit être placée avant tout affichage, y compris un simple saut de ligne.

Créer une variable de session

Il suffit d'affecter une valeur avec le tableau $_SESSION. Par exemple, pour affecter la valeur "pass" à la variable "mot" :

$_SESSION['mot']="pass";

Détruire la session

On détruit la session avec l'instruction session_destroy(). Toutes les variables sont détruites et donc effacées du serveur.

La session est aussi détruite lorsqu'on ferme le navigateur.

Un exemple

Nous allons créer une page où l'accès n'est autorisé que si on est passé par un formulaire d'authentification. Cette première partie du code définie le formulaire de saisie du mot de passe. Si le mot de passe saisi est correct une session est créée et on affecte la valeur "ok" à la variable de session "autorise".

En cliquant sur le lien "continuer" on arrive à la deuxième page du site. Si on a fourni le code correct, l'accès est autorisé. Dans le cas contraire l'accès est refusé.

Voici le code de la page "test.php" :

Commentaire :

Si on essaye d'accèder à cette page sans passer par le formulaire, l'accès sera refusé, car la variable de session n'existe pas. Dans ce cas on détruit la session avec l'instruction session_destroy().

Exercice :

Modifiez l'exemple ci-dessus en ajoutant un lien et le code nécessaire pour clore la session.

 

Page suivante : tester la validité des éléments d'un formulaire