Ce projet est une application intranet développée en PHP/PDO suivant l'architecture MVC. Elle permet au Club Coin-Coin de gérer son inventaire de canards (en plastique, peluches, bouées) et le suivi des adoptions par les étudiants du campus.
- Nom : Ch
- Prénom : Ali
- Nom de la base :
la_canardotheque - Instance MySQL : Configurée sur le Port 3307.
- Importation : 1. Créez la base de données
la_canardothequevia MySQL Workbench ou PhpStorm. 2. Importez et exécutez le fichierdatabase.sqlsitué à la racine du projet pour générer les tables (canard,etudiant,emprunter) et les données de test.
Assurez-vous que votre serveur local (Apache) est actif. L'URL d'accès est :
http://localhost/MiniProjetLaCanardotheque/index.php
- Listing : Affichage dynamique de tous les canards avec leur nom, type et état actuel.
- Ajout : Formulaire permettant d'ajouter un nouveau canard (type ENUM : Plastique, Peluche, Bouée).
- Listing : Affichage de la liste des étudiants inscrits.
- Ajout : Enregistrement de nouveaux étudiants avec numéro de carte, nom, prénom et email.
- Adoption : Formulaire liant un canard disponible à un étudiant avec une date de retour prévue.
- Mise à jour automatique : Lors d'un emprunt, l'état du canard passe automatiquement de
Dans la mareàEn vadrouilleen base de données.
- Injections SQL : Utilisation systématique de requêtes préparées (
$pdo->prepare()+$stmt->execute()) pour toutes les données provenant des formulaires ($_POST). - Failles XSS : Protection de l'affichage HTML via la fonction
htmlspecialchars()pour chaque donnée issue de la base de données.
Le projet respecte une structure MVC pour une meilleure maintenance :
models/: Logique de données (Requêtes SQL).controllers/: Logique métier (Lien entre Modèle et Vue).views/: Présentation (Fichiers HTML/PHP).config/db.php: Connexion PDO centralisée.
Voici le Modèle Conceptuel de Données réalisé pour la Canardothèque :

Le passage du modèle conceptuel au modèle logique a permis de définir la structure exacte des tables et les relations (clés étrangères) :
- CANARD :
id_canard(PK), nom, type, etat. - ETUDIANT :
num_carte(PK), nom, prenom, email. - EMPRUNTER :
id_emprunt(PK), #id_canard (FK), #num_carte (FK), date_pret, date_retour_prevue.
