Les contenus du cours BRE03 Web Dev Course © 2024 par Mari Doucet sont sous licence CC BY-NC-SA 4.0
Après $_GET
et $_POST
nous allons maintenant manipuler une nouvelle variable superglobale : $_SESSION
.
La session sert à créer et stocker des variables, côté serveur qui sont disponibles dans tous les fichiers de votre site.
C’est très utile par exemple, pour gérer la connexion sur un site, et c’est comme ça que nous allons principalement l’utiliser.
Avant de faire quoi que ce soit dans votre index.php
, y compris avant les require
, il va falloir démarrer une session. Pour cela on utilise une fonction mise à notre disposition par PHP :
session_start();
$_SESSION
est une superglobale dans laquelle vous pouvez stocker ce que vous voulez, il suffit de créér une nouvelle clé dans le tableau associatif.
$_SESSION["user"] = "John Doe";
vous pouvez stocker toute sorte de données, y compris des objets.
$user = new User("John", "Doe");
$_SESSION["user"] = $user;
Ceci dit pour des questions de performance, essayez de réduire ce que vous stockez. Stocker une chaine de caractère est plus économe que de stocker un objet complet.
$_SESSION
est un tableau associatif, vous pouvez donc lire les données comme vous le feriez pour un tableau associatif classique.
$_SESSION["first_name"] = "John";
$_SESSION["last_name"] = "Doe";
echo $_SESSION["first_name"]; // John
echo $_SESSION["last_name"]; // Doe
Lorsque vous n’avez plus besoin de votre session (par exemple si votre utilisateur se déconnecte), vous allez utiliser la fonction session_destroy();
.
session_destroy();
En théorie, si on utilise pas session_destroy()
, une session dure 180 minutes (3 heures) mais en pratique cela dépend de la configuration de votre serveur.