📘 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() et filter_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.