💬 Forum PHP/MySQL
Forum web complet avec création de sujets, réponses et système de modération
À propos du projet
Ce forum web est développé en PHP avec une base de données MySQL. Il permet aux utilisateurs inscrits de créer des sujets de discussion, de poster des réponses et de gérer leurs contributions. Un système de modération permet aux administrateurs de superviser et supprimer les contenus inappropriés.
Le projet met en pratique les fondamentaux du développement web côté serveur : gestion des sessions, opérations CRUD complètes, contrôle des droits d'accès et sécurisation des entrées utilisateur.
Fonctionnalités principales
Authentification
Inscription et connexion sécurisées avec sessions PHP. Mots de passe hachés. Accès restreint aux fonctionnalités selon l'état de connexion.
Création de sujets
Les utilisateurs connectés peuvent créer de nouveaux sujets avec titre et contenu. Chaque sujet est rattaché à son auteur et horodaté.
Réponses aux sujets
Système de réponses imbriquées sous chaque sujet. Affichage chronologique avec auteur et date de chaque message.
Modération
Panneau de modération accessible aux administrateurs pour supprimer des sujets ou des réponses signalés.
Gestion des droits
Deux niveaux d'accès : utilisateur standard et administrateur. Vérification des droits à chaque action sensible côté serveur.
Sécurité
Requêtes préparées PDO contre les injections SQL, échappement HTML avec htmlspecialchars() contre les failles XSS.
Architecture technique
Structure de la base de données
Tables principales : utilisateurs (id, username, email, password, role), sujets (id, titre, contenu, auteur_id, date), reponses (id, sujet_id, contenu, auteur_id, date). Relations via clés étrangères.
Inscription et connexion
Formulaires avec validation côté serveur. Vérification de l'unicité du pseudo et de l'email. Hachage du mot de passe avec password_hash() et vérification avec password_verify().
CRUD sujets et réponses
Création via formulaires POST, lecture avec requêtes SELECT + JOIN pour récupérer les infos auteur, modification et suppression réservées à l'auteur ou à l'admin.
Système de modération
Vérification du rôle admin dans la session avant d'afficher les actions de modération. Suppression en cascade des réponses liées à un sujet supprimé.
Sécurisation des entrées
Toutes les requêtes SQL utilisent PDO::prepare(). Toutes les données affichées passent par htmlspecialchars(). Vérification de l'authentification sur chaque page protégée.
Compétences acquises
- Architecture d'une application web PHP multi-pages avec sessions
- Conception de base de données relationnelle avec clés étrangères et relations
- Opérations CRUD complètes avec PDO
- Système de gestion des droits utilisateur/admin
- Sécurité web : protection XSS et injections SQL
- Suppression en cascade et intégrité référentielle