Aller au contenu

Sessions

Les sessions permettent de conserver des données entre les requêtes HTTP.


Utilisation de base

use Fleche\Session;

// Sauvegarder
Session::definir('utilisateur_id', 42);
Session::definir('nom', 'Harouna');

// Lire
$id  = Session::obtenir('utilisateur_id');
$nom = Session::obtenir('nom', 'Anonyme'); // avec valeur par défaut

// Vérifier l'existence
if (Session::a('utilisateur_id')) {
    // utilisateur connecté
}

// Supprimer une clé
Session::supprimer('utilisateur_id');

// Tout effacer (déconnexion)
Session::vider();

Messages flash

Un message flash est lu une seule fois puis automatiquement supprimé. Utile pour les notifications après une redirection.

// Définir un message flash
Session::flash('succes', 'Votre compte a été créé avec succès !');
Session::flash('erreur', 'Email ou mot de passe incorrect.');

// Lire et supprimer le message
$message = Session::obtenirFlash('succes'); // "Votre compte a été créé avec succès !"
$message = Session::obtenirFlash('succes'); // null — déjà supprimé

Afficher dans une vue :

<?php $succes = Session::obtenirFlash('succes'); ?>

<?php if ($succes): ?>
    <div class="alerte alerte-succes">
        <?= htmlspecialchars($succes) ?>
    </div>
<?php endif; ?>

Exemple complet — Connexion / Déconnexion

// Connexion
$app->routeur->post('/connexion', function ($req) {
    $utilisateur = DB::table('utilisateurs')
        ->filtrer('email', $req->entree('email'))
        ->premier();

    if (!$utilisateur) {
        return Reponse::json(['erreur' => 'Identifiants incorrects'], 401);
    }

    Session::definir('utilisateur_id', $utilisateur['id']);
    Session::definir('utilisateur_nom', $utilisateur['nom']);

    return Reponse::rediriger('/tableau-de-bord');
});

// Déconnexion
$app->routeur->get('/deconnexion', function () {
    Session::vider();
    Session::flash('succes', 'Vous avez été déconnecté.');
    return Reponse::rediriger('/connexion');
});

Référence

Méthode Description
Session::definir($cle, $valeur) Sauvegarder une valeur
Session::obtenir($cle, $defaut) Lire une valeur
Session::a($cle) Vérifier si une clé existe
Session::supprimer($cle) Supprimer une clé
Session::vider() Effacer toute la session
Session::flash($cle, $message) Définir un message flash
Session::obtenirFlash($cle) Lire et supprimer un message flash