La notion de session en PHP est un moyen de stocker des informations (dans les variables). Ces variables peuvent alors être utilisées sur plusieurs pages du site WEB. Contrairement à un cookie, ces informations ne sont pas stockées sur l'ordinateur des utilisateurs mais sur le serveur.
Le serveur web ne sait pas qui vous êtes ou ce que vous faites sur le site parce que l'adresse HTTP ne mémorise pas d'état. Les variables de session peuvent résoudre ce problème en stockant les informations de l'utilisateur. Ces informations peuvent être ensuite utilisées sur plusieurs pages (par exemple nom d'utilisateur, couleur préférée, etc.).
Par défaut, les variables de session durent jusqu'à ce que l'utilisateur ferme le navigateur.
Les variables de session contiennent des informations sur l'utilisateur et sont disponibles pour toutes les pages. Concrètement, les sessions peuvent servir pour:
Une session commence avec la fonction session_start ()
Les variables de session sont définis avec la variable globale : $ _SESSION
Exemple de création d'une nouvelle session de PHP dans un fichier "demo1.php"
<?php /* initialise des informations de session */ session_start(); ?> <!DOCTYPE html> <html> <head> <title>Exemple</title> <meta charset="UTF-8" /> </head> <body> <?php /* fixer une valeur dans une variable de session */ $_SESSION["utilisateur"] = "inconnu" ; $_SESSION["motdepasse"] = "12345678" ; $_SESSION["couleurprefere"] = "green" ; ?> </body> </html>
Nous allons créer une page "demo2.php". Depuis cette page, nous allons accéder aux informations de session qui ont été mises depuis la première page "demo1.php".
Remarque :
Notez que les variables de session ne sont pas passées individuellement à chaque nouvelle page. Elles sont récupérées à partir de la session, nous ouvrons au début de chaque page avec session_start ()
Notez également que toutes les variables de session sont stockées dans la variable globale $_SESSION
<?php /* initialise des informations de session */ session_start(); ?> <!DOCTYPE html> <html> <head> <title>Exemple</title> <meta charset="UTF-8" /> </head> <body> <?php /* Affichage des variables de session stockées par la première page */ echo "Utilisateur : " . $_SESSION["utilisateur"] . "<br/>" ; echo "mot de passe : " . $_SESSION["motdepasse"] . "<br/>" ; echo "Votre couleur préféréee : " . $_SESSION["couleurprefere"] . "<br/>" ; ?> </body> </html>
Pour supprimer toutes les variables globales de session et dons détruire la session, on utilise session_unset () et session_destroy ()
<?php /* initialise des informations de session */ session_start(); ?> <!DOCTYPE html> <html> <head> <title>Exemple</title> <meta charset="UTF-8" /> </head> <body> <?php /* Suppression de toutes les variables de session */ session_unset(); /* Destruction de la session */ session_destroy(); ?> </body> </html>