Dans ce chapitre, nous présenterons comment vérifier les noms, les e-mails et les URL.
Le code suivant utilisera un moyen simple pour détecter si le champ de nom contient des lettres et des espaces. Si la valeur du champ de nom est illégale, un message d'erreur sera généré :
$name = test_input($_POST["name"]);if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Seuls les lettres et les espaces autorisés"; }
preg_match — effectue une correspondance d'expression régulière. grammaire: int preg_match ( chaîne $motif , chaîne $sujet [, tableau $matches [, int $flags ]] ) Recherche dans la chaîne d'objet une correspondance avec l'expression régulière donnée par pattern. Si des correspondances sont fournies, les résultats de la recherche seront renseignés. $matches[0] contiendra du texte qui correspond à l'ensemble du modèle, $matches[1] contiendra du texte qui correspond au premier sous-modèle capturé entre parenthèses, et ainsi de suite. |
Le code suivant vérifiera si l'adresse e-mail est légitime de manière simple. Si l'adresse e-mail est illégale, un message d'erreur s'affichera :
$email = test_input($_POST["email"]);if (!preg_match("/([w-]+@[w-]+.[w-]+)/" ,$email)) { $emailErr = "Format d'e-mail illégal" }
Le code suivant vérifiera si l'adresse URL est légale (l'expression régulière suivante s'exécute dans l'URL contenant des tirets : "-") Si l'adresse URL est illégale, un message d'erreur sera affiché :
$website = test_input($_POST["website"]);if (!preg_match("/b(?:(?:https?|ftp)://|www.)[-a-z0- 9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$siteweb)) { $websiteErr = "Adresse URL illégale" ;
Le code ressemble à ceci :
<?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"]); // Vérifiez si le nom ne contient que des lettres et des espaces if (!preg_match("/^[a-zA-Z ]*$/",$name) ) { $nameErr = "Seuls les lettres et les espaces autorisés"; } } if (empty($_POST["email"])) { $emailErr = "L'e-mail est requis" } else { $email = test_input($_POST["email"]); // Vérifiez si l'e-mail est légal if (!preg_match("/([w-]+@[w-]+.[w- ]+ )/",$email)) { $emailErr = "Format d'e-mail illégal"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // Vérifiez si l'adresse URL est légale si (!preg_match("/b(?:(?:https?|ftp)://|www.) [- a-z0-9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$ site web) ) { $websiteErr = "Adresse URL illégale"; } } if (empty($_POST["comment"])) { $comment = "" } else { $comment = test_input($_POST["comment"] }); (empty($_POST["gender"])) { $genderErr = "Le genre est requis" } else { $gender = test_input($_POST["genre"]); }}?>