PHP Formulaires - Champs Obligatoires


Ce chapitre explique comment rendre les champs de saisie obligatoires et créer des messages d'erreur si nécessaire.


PHP - Champs Obligatoires

D'après le tableau des règles de validation de la page précédente, nous constatons que les champs "Nom", "E-mail" et "Genre" sont obligatoires. Ces champs ne peuvent pas être vides et doivent être remplis dans le formulaire HTML.

Champ Règles de Validation
Nom Obligatoire. + Ne doit contenir que des lettres et des espaces
E-mail Obligatoire. + Doit contenir une adresse e-mail valide (avec @ et .)
Site Web Optionnel. S'il est présent, il doit contenir une URL valide
Commentaire Optionnel. Champ de saisie multi-lignes (textarea)
Genre Obligatoire. Doit en sélectionner un

Dans le chapitre précédent, tous les champs de saisie étaient optionnels.

Dans le code suivant, nous avons ajouté quelques nouvelles variables : $nameErr , $emailErr , $genderErr , et $websiteErr . Ces variables d'erreur contiendront des messages d'erreur pour les champs obligatoires. Nous avons également ajouté une instruction if else pour chaque variable $_POST . Cela vérifie si la variable $_POST est vide (avec la fonction PHP empty() ). Si elle est vide, un message d'erreur est stocké dans les différentes variables d'erreur, et si elle n'est pas vide, elle envoie les données saisies par l'utilisateur à travers la fonction test_input() :

// définir des variables et les initialiser à des valeurs vides $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Le nom est requis"; } else { $name = test_input($_POST["name"]); } if (empty($_POST["email"])) { $emailErr = "L'email est requis"; } else { $email = test_input($_POST["email"]); } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = "Le genre est requis"; } else { $gender = test_input($_POST["gender"]); } } 


PHP - Afficher Les Messages D'Erreur

Ensuite, dans le formulaire HTML, nous ajoutons un petit script après chaque champ obligatoire, qui génère le message d'erreur approprié si nécessaire (c'est-à-dire si l'utilisateur essaie de soumettre le formulaire sans remplir les champs obligatoires) :

Exemple

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> Nom: <input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span> <br><br> E-mail: <input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span> <br><br> Site Web: <input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> Commentaire: <textarea name="comment" rows="5" cols="40"></textarea> <br><br> Genre: <input type="radio" name="gender" value="female">Femme <input type="radio" name="gender" value="male">Homme <input type="radio" name="gender" value="other">Autre <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Soumettre"> </form> 
Exécuter l'exemple »

L'étape suivante consiste à valider les données saisies, c'est-à-dire "Le champ Nom ne contient-il que des lettres et des espaces ?", "Le champ E-mail contient-il une syntaxe d'adresse e-mail valide ?", et si rempli, "Le champ Site Web contient-il une URL valide ?".