📘 Chapitre 2 – Affichage conditionnel & messages d’erreur
1. 🎯 Objectif pédagogique
Être capable de valider les données d’un formulaire et d’afficher des messages d’erreur ou de succès en fonction des entrées utilisateur.
2. 📚 Concepts abordés
- Vérification de la soumission du formulaire
- Affichage dynamique des messages (erreurs ou succès)
- Utilisation de
isset()
,empty()
etfilter_var()
- Affichage conditionnel des champs remplis ou invalides
- Séparation logique entre la partie HTML (formulaire) et PHP (traitement)
3. 🧠 Explication théorique
L’affichage conditionnel permet d’informer l’utilisateur lorsqu’un champ obligatoire est vide ou incorrect. Les messages peuvent être affichés directement dans la page du formulaire.
Exemple simple :
if (empty($_POST['nom'])) {
echo "Le champ nom est obligatoire.";
}
On peut également pré-remplir les champs en cas d’erreur :
<input type="text" name="nom" value="<?= htmlspecialchars($_POST['nom'] ?? '') ?>">
4. 🛠 Tutoriel pratique
Résumé du travail : Créer un formulaire et afficher les erreurs/succès directement dans la même page.
Arborescence projet :
projet_php/
└── formulaire_validation.php
Étape 1 : Créer le formulaire et le traitement
<?php
$erreurs = [];
$nom = $email = '';
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$nom = trim($_POST['nom']);
$email = trim($_POST['email']);
if (empty($nom)) {
$erreurs[] = "Le nom est obligatoire.";
}
if (empty($email)) {
$erreurs[] = "L'email est obligatoire.";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$erreurs[] = "L'email n'est pas valide.";
}
if (empty($erreurs)) {
echo "<p style='color:green;'>Formulaire envoyé avec succès !</p>";
}
}
?>
<form method="POST" action="">
<label>Nom :</label>
<input type="text" name="nom" value="<?= htmlspecialchars($nom) ?>"><br>
<label>Email :</label>
<input type="text" name="email" value="<?= htmlspecialchars($email) ?>"><br>
<button type="submit">Envoyer</button>
</form>
Étape 2 : Afficher les erreurs
<?php
if (!empty($erreurs)) {
echo "<ul style='color:red;'>";
foreach ($erreurs as $err) {
echo "<li>$err</li>";
}
echo "</ul>";
}
?>
Étape 3 : Tester le formulaire
- Laisser les champs vides pour voir les messages d’erreur.
- Renseigner un email incorrect (ex:
abc@
) pour tester la validation.
5. 🧾 Résumé et points-clés
- Les messages d’erreur aident à corriger les champs invalides.
htmlspecialchars()
protège les champs pré-remplis contre les injections HTML.- Utiliser un tableau
$erreurs
permet de lister plusieurs erreurs en même temps. - Les messages de succès/confimation doivent être affichés clairement.