Retour aux projets

Projet Application Web

01/12/25 → 19/12/25

Projet de groupe : installation d'un serveur web sous Linux (Apache, PHP, MariaDB, phpMyAdmin), puis développement d'une page de connexion en PHP organisée selon le modèle MVC.

PHP HTML CSS MySQL Apache PDO

Contexte

Projet de groupe réalisé en décembre 2025, dans le cadre du cours de PHP / MySQL. Le but était de monter nous-mêmes un environnement de développement web complet sous Linux, puis de l'utiliser pour créer une page qui permet à un utilisateur de s'authentifier.

Objectifs

  • Installer et configurer une pile web sous Linux : PHP, serveur Apache, MariaDB et phpMyAdmin
  • Créer une base de données et une table d'utilisateurs
  • Se connecter à la base en PHP et vérifier un couple identifiant / mot de passe
  • Développer un formulaire de connexion avec redirection et message d'erreur en cas d'échec

Réalisation

  • Serveur : installation de PHP, Apache et MariaDB avec dnf, sécurisation de la base avec mysql_secure_installation, configuration de l'hôte virtuel Apache, et accès à phpMyAdmin (soit en ouvrant l'accès dans sa configuration, soit par un tunnel SSH depuis PhpStorm)
  • Base de données : création de la base et de la table users (identifiant, login, mot de passe) avec des comptes de test
  • Modèle : connexion à la base avec PDO, et fonctions de récupération d'un utilisateur et d'authentification écrites avec des requêtes préparées
  • Contrôleur : fonctions utilitaires pour lire proprement les variables GET et POST, vérification des identifiants, ouverture d'une session et redirection
  • Vue : formulaire de connexion envoyé en POST, message d'erreur en cas d'échec, et page d'accueil après une connexion réussie

Compétences mobilisées

  • Gérer le patrimoine informatique : installation et configuration d'un serveur web et d'un SGBD
  • Répondre aux incidents et aux demandes : diagnostic et résolution des problèmes de configuration (accès à phpMyAdmin, connexion à la base)
  • Développer la présence en ligne : création d'une page web dynamique connectée à une base de données
  • Travailler en mode projet : répartition du travail au sein du groupe et respect des étapes du sujet
  • Organiser son développement professionnel : découverte de l'architecture n-tiers et des patrons MVC et DAO

Captures d'écran

À compléter : ajouter ici les captures du projet (dossier src/screen projets).

Bilan

Ce TP m'a permis de comprendre tout le chemin d'une requête web, du serveur Linux jusqu'à la base de données, et de structurer un code PHP en séparant modèle, vue et contrôleur. Les requêtes préparées avec PDO protègent l'application contre les injections SQL.

Avec le recul, plusieurs améliorations seraient nécessaires pour une vraie mise en production : stocker les mots de passe hachés (password_hash / password_verify) plutôt qu'en clair, sortir les identifiants de connexion à la base du code, et soigner l'interface du formulaire avec du CSS.