📘 Chapitre 3 – Démarrer une session utilisateur
1. 🎯 Objectif pédagogique
Comprendre le mécanisme des sessions PHP, savoir démarrer une session et stocker des informations utilisateur pour persister les données entre différentes pages.
2. 📚 Concepts abordés
- Fonction
session_start()
- Superglobale
$_SESSION
- Stockage et lecture de variables de session
- Détruire une session (
session_unset()
,session_destroy()
) - Bonnes pratiques de gestion de session
3. 🧠 Explication théorique
Une session permet de sauvegarder des données côté serveur et de les réutiliser tant que l’utilisateur est connecté. Avant d’utiliser $_SESSION
, il faut toujours appeler session_start()
en haut du script PHP (avant tout HTML).
Exemple :
session_start();
$_SESSION['nom'] = 'Alice';
echo $_SESSION['nom']; // Affiche "Alice"
Pour supprimer une session :
session_unset(); // Efface toutes les variables de session
session_destroy(); // Supprime la session en cours
4. 🛠 Tutoriel pratique
Résumé du travail : Créer un mini-script de login avec sessions.
Arborescence projet :
projet_php/
├── login.php
├── profil.php
└── logout.php
Étape 1 : Créer la page login.php
<?php
session_start();
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$nom = trim($_POST['nom']);
if (!empty($nom)) {
$_SESSION['utilisateur'] = $nom;
header('Location: profil.php');
exit;
} else {
$message = "Veuillez entrer votre nom.";
}
}
?>
<form method="POST">
<label>Nom :</label>
<input type="text" name="nom">
<button type="submit">Se connecter</button>
</form>
<?php if (!empty($message)) echo "<p style='color:red;'>$message</p>"; ?>
Étape 2 : Créer la page profil.php
<?php
session_start();
if (!isset($_SESSION['utilisateur'])) {
header('Location: login.php');
exit;
}
echo "<h1>Bienvenue " . $_SESSION['utilisateur'] . " !</h1>";
echo "<a href='logout.php'>Se déconnecter</a>";
Étape 3 : Créer la page logout.php
<?php
session_start();
session_unset();
session_destroy();
header('Location: login.php');
exit;
5. 🧾 Résumé et points-clés
session_start()
doit être appelé en début de page pour activer les sessions.$_SESSION
stocke des données accessibles sur plusieurs pages.session_unset()
etsession_destroy()
permettent de réinitialiser la session.- Les sessions sont essentielles pour l’authentification et la gestion d’état.