📘 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() et session_destroy() permettent de réinitialiser la session.
  • Les sessions sont essentielles pour l’authentification et la gestion d’état.