Derniers tutoriels de développement web
 

PHP 5 Formulaires - Champs obligatoires


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
Email 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?" .