PHP Validation de Formulaire - Validation de l'E-mail et de l'URL

Cette section montre comment valider le nom, l'e-mail et l'URL.

PHP - Validation du Nom

Le code suivant montre une méthode simple pour vérifier que le champ name contient des lettres et des espaces. Si le champ name est invalide, un message d'erreur est stocké :

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
  $nameErr = "Seulement les lettres et les espaces autorisés"; 
}

Remarque :La fonction preg_match() recherche un modèle dans une chaîne, et retourne true si le modèle existe, sinon false.

PHP - Validation de l'E-mail

Le code suivant montre une méthode simple pour vérifier la syntaxe d'une adresse e-mail. Si l'adresse e-mail est invalide, un message d'erreur est stocké :

$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
  $emailErr = "Format e-mail invalide"; 
}

PHP - Validation de l'URL

Le code suivant montre une méthode simple pour vérifier la syntaxe d'une adresse URL. Si la syntaxe de l'adresse URL est invalide, un message d'erreur est stocké :

$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%",
=~_|]/i,$website)) {
  $websiteErr = "URL invalide"; 
}

PHP - Validation du Nom, E-mail et URL

Maintenant, le script est le suivant :

Exemple

<?php
// Définir les variables et les définir sur 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 obligatoire";
  }
    $name = test_input($_POST["name"]);
    // Vérification que le nom contient des lettres et des espaces
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "Seulement les lettres et les espaces autorisés"; 
    }
  }
  if (empty($_POST["email"])) {
    $emailErr = "L'e-mail est obligatoire";
  }
    $email = test_input($_POST["email"]);
    // Vérification de la syntaxe de l'adresse e-mail
    if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
      $emailErr = "Invalid email format"; 
    }
  }
  if (empty($_POST["website"])) {
    $website = "";
  }
    $website = test_input($_POST["website"]);
    // Vérifier si l'adresse URL de la langue est valide (cette expression régulière permet également les underscores dans l'URL)
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%",
    =~_|]/i,$website)) {
      $websiteErr = "Invalid URL"; 
    }
  }
  if (empty($_POST["comment"])) {
    $comment = "";
  }
    $comment = test_input($_POST["comment"]);
  }
  if (empty($_POST["gender"])) {
    $genderErr = "Gender is required";
  }
    $gender = test_input($_POST["gender"]);
  }
}
?>

Exemple de exécution

Je vais vous expliquer comment éviter que le formulaire ne vide tous les champs d'entrée après que l'utilisateur ait soumis le formulaire.