Comment fonctionne une session ?
Les informations sont stockées dans des fichiers, sur le serveur, à chaque session correspond un fichier. Chaque session est désignée par un nom et un identifiant. Lorsque le visiteur accepte les cookies, l'identifiant de la session est stocké dans un cookie, dans le cas contraire, il existe un autre moyen de stocker l'identifiant. Normalement, la session est détruite ou à la fermeture du navigateur, ou au bout de 30 minutes. Cette valeur peut être modifiée dans le fichier php.ini du serveur.
Des exemples
Nous allons voir comment utiliser les sessions dans une suite d'exemple et de bouts de code.
Démarrer une session
Syntaxe :
.01 .02
| |
<?php session_start(); ?>
|
Ce code permet de démarrer une session. Si un fichier existe sur le serveur pour cette session, les variables de sessions seront récupérées, si ce n'est pas le cas, un nouveau fichier sera créé.
Notez que code est à placer tout au début de votre page, avant tout code HTML, car la session ne peut être démarrée que si le cache du navigateur est vide.
Créer une variable de session :
Les variables de sessions sont accessibles, une fois que la sessions est démarrée, via un tableau
super global : $_SESSION
.01 .02
| |
<?php $_SESSION['variable'] = $valeur ; ?>
|
Nous créons ici une variable de session nommée variable qui vaut $valeur
Pour savoir si la variable de session variable existe:
.01 .02 .03 .04 .05 .06
| |
<?php
if(isset($_SESSION['variable']))
echo 'La variable "variable" existe !';
?>
|
Utiliser la valeur d'une variable de session :
Si vous voulez utiliser la valeur d'une variable de session, vous devez passez par $_SESSION
.01 .02 .03 .04 .05 .06
| |
<?php
if(isset($_SESSION['variable']))
echo 'La variable "variable" existe et vaut: ' . $_SESSION['variable'];
?>
|
Supprimer une variable de session :
Pour supprimer une variable de session, il faut utiliser la fonction unset()
.01 .02 .03 .04 .05 .06
| |
<?php
unset($_SESSION['variable']);
echo 'La variable de session "variable" est maintenant détruite';
?>
|
Détruire toutes les variables de session :
La fonction session_unset() détruit toutes les variables de session
Syntaxe :.01 .02
| |
<?php session_unset(); ?>
|
Détruire une session
La fonction session_destroy() permet de détruire une session mais souvent cela ne suffit pas, voici toute les fonctions qui vous permettrons de détruire une session et d'en démarrer une nouvelle.
Syntaxe :.01 .02 .03 .04 .05 .06 .07 .08
| |
<?php
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
?>
|
Rappel :
La session doit être déclarée dans le code tout en haut de votre page car le cache du navigateur doit être vide pour démarrer une session.