PHP · FICHE DE RÉVISION
Les sessions
Conserver un état utilisateur entre plusieurs pages.
Comprendre l’état
HTTP ne mémorise pas à lui seul l’utilisateur entre deux requêtes. Une session associe un identifiant aux données conservées côté serveur. Cet identifiant est généralement transporté par un cookie.
| Cookie | Session |
|---|---|
| Valeur conservée dans le navigateur. | Données de session conservées côté serveur. |
| Renvoi dans les requêtes concernées. | L’identifiant permet de retrouver les données. |
Initialiser et utiliser
PHP
session_start(); // avant toute sortie HTML
// Après une authentification réussie :
session_regenerate_id(true);
$_SESSION["user"] = ["id" => 12, "prenom" => "Lina"];
$user = $_SESSION["user"] ?? null;Les pages qui lisent la session doivent l’ouvrir. La présence d’une session ne signifie pas que l’authentification a été validée : c’est le traitement serveur qui établit cet état.
Déconnecter
PHP
session_start();
$_SESSION = [];
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), "", time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]);
}
session_destroy();Où sont les données de $_SESSION ?
Côté serveur. Le navigateur conserve généralement uniquement l’identifiant permettant de les retrouver.