Chapprend · PHP

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.

CookieSession
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.