À 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

BDD

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.

01

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().

02

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.

03

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é.

04

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