Chapitre 36 : Mini-projet – Livre d'or
Créez une application web PHP complète pour recueillir et afficher les messages des visiteurs
1. Objectif du projet
Ce mini-projet vous propose de créer un livre d'or en PHP dans lequel les visiteurs peuvent laisser un message, qui sera stocké dans une base de données et affiché dynamiquement.
2. Fonctionnalités à implémenter
- Formulaire avec nom, email, message
- Validation des données en PHP (email, message vide, etc.)
- Insertion en base de données (table
messages) - Affichage de la liste des messages avec date
- Protection contre les failles XSS
3. Structure de la base de données
CREATE TABLE messages (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(100) NOT NULL,
email VARCHAR(150) NOT NULL,
message TEXT NOT NULL,
date_creation DATETIME DEFAULT CURRENT_TIMESTAMP
);
4. Exemple de formulaire HTML
<form action="livreor.php" method="POST">
<input type="text" name="nom" placeholder="Votre nom" required>
<input type="email" name="email" placeholder="Votre email" required>
<textarea name="message" placeholder="Votre message" required></textarea>
<button type="submit">Envoyer</button>
</form>
5. Exemple de traitement PHP
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$nom = htmlspecialchars(trim($_POST["nom"]));
$email = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL);
$message = htmlspecialchars(trim($_POST["message"]));
if ($nom && $email && $message) {
$pdo = new PDO("mysql:host=localhost;dbname=livreor", "root", "");
$stmt = $pdo->prepare("INSERT INTO messages (nom, email, message) VALUES (?, ?, ?)");
$stmt->execute([$nom, $email, $message]);
echo "Message envoyé !";
} else {
echo "Données invalides.";
}
}
6. Affichage des messages
$pdo = new PDO("mysql:host=localhost;dbname=livreor", "root", "");
$stmt = $pdo->query("SELECT * FROM messages ORDER BY date_creation DESC");
foreach ($stmt as $row) {
echo "<article><h3>" . htmlspecialchars($row['nom']) . "</h3>";
echo "<p>" . nl2br(htmlspecialchars($row['message'])) . "</p>";
echo "<small>" . $row['date_creation'] . "</small></article>";
}
7. Exercice pratique : Complétez votre application
🎯 Objectif : Finaliser votre livre d'or avec toutes les fonctionnalités attendues.
Consignes :
- Créer la base de données et la table
- Créer les fichiers PHP :
formulaire.php,traitement.php,messages.php - Relier correctement le formulaire au script
- Afficher les messages dans une page dédiée
- Sécuriser les entrées utilisateur (XSS)
Bonus :
- Ajoutez une pagination
- Autorisez uniquement les messages de moins de 500 caractères
- Envoyez une confirmation par email avec PHPMailer
8. Résumé
- ✅ Vous avez manipulé les formulaires, la base de données, les requêtes SQL et la sécurité
- ✅ Vous avez structuré une petite application complète
- ✅ Ce projet est une excellente base pour aller vers des projets plus complexes
Félicitations pour ce premier mini-projet PHP !