Files
mini-projet-cms-simplifie/README.md
2025-11-01 18:24:35 +01:00

46 lines
2.8 KiB
Markdown

# 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 :
1. Une **Zone Publique** pour consulter les articles.
2. 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.
1. **Code Source**
* Clonez ou téléchargez ce dépôt et placez le dossier `my_sql_projet` dans le répertoire web de votre serveur (ex: `htdocs/`).
2. **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 tables `articles` et `utilisateur`, et insérera l'administrateur par défaut.
3. **Configuration de la Connexion**
* Dans le dossier `php/`, trouvez le fichier `pdo.example.php`.
* **Copiez-le** et **renommez** la copie en `pdo.php`.
* Ouvrez `pdo.php` et modifiez la variable `$pass` pour y mettre votre propre mot de passe de base de données (ex: `"root"` pour MAMP).
4. **Lancement**
* C'est terminé ! Vous pouvez maintenant accéder au site public via `http://localhost/my_sql_projet/` et à la page de connexion admin via `http://localhost/my_sql_projet/login.php`.
## 🔑 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 avec `password_verify()`, comme exigé.
* **Injections SQL :** Prévention totale grâce à l'utilisation exclusive de **requêtes préparées** (avec `prepare()` et `execute()`).
* **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 `$_SESSION` active, redirigeant vers `login.php` si l'utilisateur n'est pas authentifié.
* **Gestion des Erreurs :** La page `article.php` gère les ID invalides ou inexistants en affichant un message d'erreur, comme demandé.