100%
This commit is contained in:
47
README.md
47
README.md
@@ -1 +1,46 @@
|
||||
Mini-Projet de Développement Web - CMS Simplifié
|
||||
# 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é.
|
||||
Reference in New Issue
Block a user