Sessions PHP

Les variables de session PHP sont utilisées pour stocker des informations sur la session de l'utilisateur ou pour modifier les paramètres de la session. Les informations que stockent les variables de session sont uniques pour un utilisateur et peuvent être utilisées sur toutes les pages de l'application.

Variables de session PHP

Lorsque vous exécutez une application, vous l'ouvrez, effectuez des modifications et la fermez. Cela ressemble beaucoup à une session. L'ordinateur sait qui vous êtes. Il sait quand vous démarrez l'application et quand vous la terminez. Mais sur Internet, il y a un problème : le serveur ne sait pas qui vous êtes ni ce que vous faites, car l'adresse HTTP ne peut pas maintenir l'état.

En stockant les informations utilisateur sur le serveur pour une utilisation ultérieure, PHP session résout ce problème (comme le nom de l'utilisateur, les articles achetés, etc.). Cependant, les informations de session sont temporaires et seront supprimées après que l'utilisateur quitte le site. Si vous avez besoin de stocker des informations de manière permanente, vous pouvez les stocker dans une base de données.

Le mécanisme de travail des sessions est le suivant : pour chaque visiteur, créer un identifiant unique (UID) et stocker les variables en fonction de cet UID. L'UID est stocké dans un cookie ou transité par l'URL.

Démarrage de la session PHP

Avant de stocker des informations utilisateur dans la session PHP, vous devez d'abord démarrer la session.

Remarque :La fonction session_start() doit être placée avant les balises <html> :

<?php session_start(); ?>
<html>
<body>
</body>
</html>

Le code ci-dessus enregistrera la session de l'utilisateur sur le serveur, vous permettant ainsi de commencer à sauvegarder des informations utilisateur, tout en assignant un UID à la session de l'utilisateur.

Stockage des variables de session

La méthode correcte pour stocker et récupérer les variables de session est d'utiliser la variable $_SESSION PHP :

<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>

Sortie :

Pageviews=1

Dans l'exemple suivant, nous avons créé un simple compteur de page-view. La fonction isset() détecte si la variable "views" est déjà définie. Si "views" est déjà définie, nous ajoutons à la compteur. Si "views" n'existe pas, nous créons la variable "views" et la définissons à 1 :

<?php
session_start();
if(isset($_SESSION['views']))
  $_SESSION['views']=$_SESSION['views']+1;
else
  $_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>

Terminer la session

Si vous souhaitez supprimer certains données de session, vous pouvez utiliser la fonction unset() ou session_destroy().

La fonction unset() est utilisée pour libérer la variable de session spécifiée :

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

Vous pouvez également utiliser la fonction session_destroy() pour mettre fin complètement à la session :

<?php
session_destroy();
?>

Remarque :La fonction session_destroy() réinitialisera la session, vous perdrez tous les données de session stockés.