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 :
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/
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.
Il suffit d'affecter une valeur avec le tableau
$_SESSION. Par exemple, pour affecter la valeur "pass" à la variable "mot"
:
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.
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é.
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().
Modifiez l'exemple ci-dessus en ajoutant un
lien et le code nécessaire pour clore la session.