8ce52971a93e9d66e26692a16f4b8fd4f72e3391
Mini-Projet : CMS Simplifié (PHP-SQL)
Ce projet est un système de gestion de contenu (CMS) simple réalisé en PHP pur et sql. Il utilise l'extension PDO pour des requêtes sécurisées vers une base de données MySQL.
L'application est divisée en deux parties :
- Une Zone Publique pour consulter les articles.
- Une Zone Administration protégée par mot de passe, qui permet la gestion complète (CRUD) des articles.
🚀 Procédure d'installation
Pour installer et lancer ce projet en local, vous aurez besoin d'un environnement serveur (MAMP, XAMPP, WAMP, Docker, etc.) supportant PHP et MySQL.
-
Code Source
- Clonez ou téléchargez ce dépôt et placez le dossier
my_sql_projetdans le répertoire web de votre serveur (ex:htdocs/).
- Clonez ou téléchargez ce dépôt et placez le dossier
-
Base de Données
- Ouvrez votre outil de gestion de base de données (comme phpMyAdmin).
- Créez une nouvelle base de données. Le nom attendu est
my_sql_projet. - Sélectionnez cette base de données et importez le fichier
sql/tables.sql. Ce script créera les tablesarticlesetutilisateur, et insérera l'administrateur par défaut.
-
Configuration de la Connexion
- Dans le dossier
php/, trouvez le fichierpdo.example.php. - Copiez-le et renommez la copie en
pdo.php. - Ouvrez
pdo.phpet modifiez la variable$passpour y mettre votre propre mot de passe de base de données (ex:"root"pour MAMP).
- Dans le dossier
-
Lancement
- C'est terminé ! Vous pouvez maintenant accéder au site public via
http://localhost/my_sql_projet/et à la page de connexion admin viahttp://localhost/my_sql_projet/login.php.
- C'est terminé ! Vous pouvez maintenant accéder au site public via
🔑 Identifiants de Connexion
Un compte administrateur est créé par défaut par le script tables.sql pour vous permettre de tester la zone d'administration.
- Login :
admin - Mot de passe :
admin123(ou celui que vous avez généré)
🏛️ Architecture du Projet
- Langage : PHP pur (orienté script, sans framework).
- Base de Données : MySQL.
- Connexion : L'extension PDO est utilisée pour toutes les interactions avec la base de données.
- Sécurité :
- Mots de passe : Hachage systématique avec
password_hash()et vérification avecpassword_verify(), comme exigé. - Injections SQL : Prévention totale grâce à l'utilisation exclusive de requêtes préparées (avec
prepare()etexecute()). - Failles XSS : Protection lors de l'affichage des données avec
htmlspecialchars(). - Zone Admin : Toutes les pages d'administration (
dashboard.php,creer_article.php, etc.) sont protégées et vérifient l'existence d'une$_SESSIONactive, redirigeant verslogin.phpsi l'utilisateur n'est pas authentifié.
- Mots de passe : Hachage systématique avec
- Gestion des Erreurs : La page
article.phpgère les ID invalides ou inexistants en affichant un message d'erreur, comme demandé.
Description
Languages
PHP
100%