Dans ce chapitre, nous expliquerons comment définir les champs obligatoires et les messages d'erreur du formulaire.
Dans le chapitre précédent nous avons présenté les règles de validation du tableau. Nous pouvons voir que les champs "Nom", "E-mail" et "Sexe" sont obligatoires et chaque champ ne peut pas être vide.
Champ | Règles de validation |
---|---|
nom | Requis. + ne peut contenir que des lettres et des espaces |
Requis. + Doit contenir une adresse e-mail valide (contient "@" et ".") | |
URL | Facultatif. S'il est présent, il doit contenir une URL valide |
Remarque | Facultatif. Champs multilignes (champs de texte). |
genre | Requis. Obligatoire d’en sélectionner un. |
Comme dans les chapitres précédents, tous les champs de saisie sont facultatifs.
Dans le code suivant, nous avons ajouté de nouvelles variables : $nameErr, $emailErr, $genderErr et $websiteErr. Ces variables d'erreur seront affichées dans les champs obligatoires. Nous avons également ajouté une instruction if else pour chaque variable $_POST. Ces instructions vérifieront si la variable $_POST est vide (en utilisant la fonction vide() de PHP). S'il est vide, le message d'erreur correspondant s'affichera. Si elles ne sont pas vides, les données seront transmises à la fonction test_input() :
<?php// Définir les variables et les définir sur des valeurs vides par défaut $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'e-mail est requis."; $_POST["email"]); } if (vide($_POST["site Web"])) { $site Web = "" } else { $site Web = test_input($_POST["site Web"]); } if (vide($_POST["comment"])) { $comment = "" } else { $comment = test_input($_POST["comment"] } if (empty($_POST["gender"])) { $genderErr = "Le sexe est requis." } else { $gender = test_input($_POST["genre"]); }}?>
Dans l'exemple de formulaire HTML suivant, nous avons ajouté des scripts à chaque champ. Chaque script affichera un message d'erreur lorsque les informations sont saisies de manière incorrecte. (Si l'utilisateur soumet le formulaire sans remplir les informations, un message d'erreur sera affiché) :
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"> Nom : <input type="text" name="name"> <span>* <? php echo $nameErr;?></span> <br><br> E-mail : <input type="text" name="email"> <span>* <?php echo $emailErr;?></span > <br><br> Site Web : <input type="text" name="website"> <span><?php echo $websiteErr;?></span> <br><br> Remarques : <textarea name=" comment" rows="5" cols="40"></textarea> <br><br> Sexe : <input type="radio" name="gender" value="female">Femme<input type="radio" " nom = " genre " value="male">Homme<span>* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Submit"> </ formulaire>