Ce chapitre montre comment faire des champs d'entrée nécessaires et créer des messages d'erreur en cas de besoin.
PHP - Les champs obligatoires
Des règles de validation tableau de la page précédente, nous voyons que le "Name" , "E-mail" et "Gender" champs sont obligatoires. Ces champs ne peuvent pas être vide et doit être rempli dans le formulaire HTML.
Champ | Règles de validation |
---|---|
prénom | Champs obligatoires. + Ne doit contenir que des lettres et des espaces |
Champs obligatoires. + Doit contenir une adresse email valide (with @ and .) | |
Site Internet | Optionnel. Le cas échéant, il doit contenir une URL valide |
Commentaire | Optionnel. Champ de saisie à plusieurs lignes (textarea) |
Le genre | Champs obligatoires. Vous devez sélectionner un |
Dans le chapitre précédent, tous les champs d'entrée sont en option.
Dans le code suivant, nous avons ajouté quelques nouvelles variables: $ nameErr, emailErr $, genderErr $ et websiteErr $. Ces variables d'erreur détiendront des messages d'erreur pour les champs obligatoires. Nous avons également ajouté une instruction if else pour chaque variable $ _POST. Cela permet de vérifier si la variable $ _POST est vide (with the PHP empty() de fonction). Si elle est vide, un message d'erreur est stockée dans les différentes variables d'erreur, et si elle n'est pas vide, il envoie les données d'entrée utilisateur via le test_input() fonction:
<?php
// define variables and set to empty values
$nameErr = $emailErr
= $genderErr = $websiteErr = "";
$name = $email = $gender = $comment =
$website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"]))
{
$emailErr = "Email is required";
} 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 = "Gender is required";
} else
{
$gender = test_input($_POST["gender"]);
}
}
?>
PHP - Affichage des messages d'erreur
Ensuite, dans le formulaire HTML, nous ajoutons un petit script après chaque champ requis, ce qui génère le message d'erreur correct si nécessaire (qui est si l'utilisateur tente de soumettre le formulaire sans remplir les champs obligatoires):
Exemple
<form method="post" action="<?php echo
htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <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>
Website:
<input type="text" name="website">
<span
class="error"><?php echo $websiteErr;?></span>
<br><br>
Comment: <textarea name="comment" rows="5"
cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender"
value="female">Female
<input type="radio" name="gender" value="male">Male
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input
type="submit" name="submit" value="Submit">
</form>
»Exécuter exemple L'étape suivante consiste à valider les données d'entrée, qui est "Does the Name field contain only letters and whitespace?" -ce que "Does the Name field contain only letters and whitespace?" des "Does the Name field contain only letters and whitespace?" des "Does the Name field contain only letters and whitespace?" Et "Does the E-mail field contain a valid e-mail address syntax?" -ce que "Does the E-mail field contain a valid e-mail address syntax?" , Et si rempli, "Does the Website field contain a valid URL?" .