Tp 2 php render redirect blogpoo
Thème :
Junior
1 vues ·11/30 leçons

Page 11 : Logique du Dashboard d’Administration

L’espace d’administration est le cœur de la gestion de votre application. Il nécessite une sécurité accrue et une organisation rigoureuse.

1. Contrôle d’Accès Strict

Le fichier admin.php commence par une vérification indispensable de la session et des droits de l’utilisateur :

require_once 'app/Emuns/Role.php';
if (!isset($_SESSION['auth']) || !is_array($_SESSION['auth']) || $_SESSION['auth']['role'] !== Role::ADMIN->value) {
    flash_set('error', "Accès refusé ! Vous devez être administrateur.");
    header("Location: index.php");
    exit();
}

Analyse du mécanisme :

  1. isset($_SESSION['auth']) : Vérifie si l’utilisateur est connecté.
  2. is_array($_SESSION['auth']) : Sécurité supplémentaire pour valider la structure de la session.
  3. $_SESSION['auth']['role'] !== Role::ADMIN->value : Vérifie le rôle via l’énumération typée.
  4. flash_set() : Informe l’utilisateur du motif du refus.
  5. header("Location: login.php") : Redirige vers la page de connexion.
  6. exit() : Arrête immédiatement l’exécution du script pour empêcher l’affichage de la page.

2. Intégration du Système de Templating

Comme pour le frontend, nous utilisons la mise en mémoire tampon (ob_start) pour injecter le contenu dans un layout spécifique à l’administration.

$pageTitle = 'Administration';
ob_start();
require_once 'resources/views/admin/admin_html.php';
$pageContent = ob_get_clean();
require_once 'resources/views/layouts/admin-layout/admin-layout_html.php';

Cette approche permet de garder admin.php très propre : il ne contient que de la logique de contrôle, tandis que le HTML est délégué aux vues.

3. Pourquoi un Layout dédié ?

L’administration (Back-Office) a souvent des besoins différents du site public (Front-Office) :

  • Une navigation latérale (Sidebar) au lieu d’une barre horizontale.
  • Des bibliothèques d’icônes ou de graphiques spécifiques (comme ApexCharts).
  • Un design plus dense pour afficher des tableaux de données.

En séparant admin-layout_html.php du layout principal, nous évitons de charger des scripts inutiles sur la partie publique du site.

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur Page 11 : Logique du Dashboard d'Administration. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.