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 :
if (!isset($_SESSION['auth']) || $_SESSION['role'] !== 'admin') {
flash_set('error', "Accès refusé ! Vous devez être administrateur.");
header("Location: login.php");
exit();
}
Analyse du mécanisme :
isset($_SESSION['auth']): Vérifie si l’utilisateur est connecté.$_SESSION['role'] !== 'admin': Vérifie si l’utilisateur possède bien le rôle ‘admin’.flash_set(): Informe l’utilisateur du motif du refus.header("Location: login.php"): Redirige vers la page de connexion.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.