English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, vous apprendrez à nettoyer et à valider les entrées utilisateur en PHP.
Nettoyer et valider les entrées utilisateur
Pour utiliser l'extension de filtre pour valider les données, vous devez utiliser la fonction filter_var() de PHP. La syntaxe de base de cette fonction peut être donnée de la manière suivante :
filter_var(variable, filter, options)
Cette fonction prend trois paramètres, les deux derniers étant optionnels. Le premier paramètre est la valeur à filtrer, le second est l'ID du filtre à appliquer, et le troisième est un tableau d'options associées au filtre. Voyons comment cela fonctionne.
L'exemple suivant supprimera tous les balisages HTML de la chaîne :
<?php //Commentaire utilisateur d'exemple $comment = "<h1>Hey ! Comment s'est passée ta journée aujourd'hui ?</h1>"; //Nettoyer et afficher la chaîne de commentaires $sanitizedComment = filter_var($comment, FILTER_SANITIZE_STRING); echo $sanitizedComment; ?>testez pour voir‹/›
Le résultat de l'exemple précédent est affiché comme suit :
Hey ! Comment s'est passée ta journée aujourd'hui ?
L'exemple suivant vérifiera si cette valeur est un entier valide.
<?php // Valeur entière de l'exemple $int = 20; // Vérification de la valeur entière if(filter_var($int, FILTER_VALIDATE_INT)){ echo "<b>$int</b> est un entier valide"; }else{ echo "<b>$int</b> n'est pas un entier valide"; } ?>testez pour voir‹/›
Dans l'exemple précédent, si vous définissez la variable $int sur 0, le code d'exemple affichera un message d'entier non valide. Pour résoudre ce problème, vous devez tester explicitement la valeur 0, comme suit :
<?php //Valeur entière de l'exemple $int = 0; // Valider la valeur entière de l'exemple if(filter_var($int, FILTER_VALIDATE_INT) === 0 || filter_var($int, FILTER_VALIDATE_INT)){ echo "The <b>$int</b> est un entier valide"; }else{ echo "The <b>$int</b> n'est pas un entier valide"; } ?>testez pour voir‹/›
L'exemple suivant vérifie si cette valeur est une adresse IP valide.
<?php // Adresse IP $ip = "172.16.254.1"; // Exemple de vérification d'adresse IP if(filter_var($ip, FILTER_VALIDATE_IP)){ echo "<b>$ip</b> est une adresse IP valide"; } else { echo "<b>$ip</b> n'est pas une adresse IP valide"; } ?>testez pour voir‹/›
Vous pouvez utiliser FILTER_FLAG_IPV4ou FILTER_FLAG_IPV6drapeau supplémentaire pour IPV4ou IPV6 L'adresse IP doit être vérifiée. Voici un exemple :
<?php // Adresse IP $ip = "172.16.254.1"; // Exemple de vérification d'adresse IP if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { echo "<b>$ip</b> est une adresse IPV6adresse "; } else { echo "<b>$ip</b> n'est pas une adresse IPV6adresse "; } ?>testez pour voir‹/›
L'exemple suivant vous montrera comment nettoyer et vérifier une adresse e-mail.
<?php // adresse e-mail $email = "someone@@example.com"; //Supprimer tous les caractères non valides de l'adresse e-mail $sanitizedEmail = filter_var($email, FILTER_SANITIZE_EMAIL); //Vérification de l'adresse e-mail if($email == $sanitizedEmail && filter_var($email, FILTER_VALIDATE_EMAIL)){ echo "$email est une adresse e-mail valide"; }else{ echo "$email n'est pas une adresse e-mail valide"; } ?>testez pour voir‹/›
Remarque :Le filtre FILTER_SANITIZE_EMAIL supprime tous les caractères non valides, à l'exception des lettres, des chiffres et des caractères de la chaîne d'adresse e-mail fournie !#$%&'!*+-=?^_`{|}~@.[]。
Les exemples suivants vous montreront comment nettoyer et vérifier une URL.
<?php // url exemple $url = "http:://www.example.com" //Supprimer tous les caractères illégaux de l'URL $sanitizedUrl = filter_var($url, FILTER_SANITIZE_URL); // Vérification de l'adresse URL du site Web if($url == $sanitizedUrl && filter_var($url, FILTER_VALIDATE_URL)){ echo "$url est une adresse de site Web valide"; }else{ echo "$url n'est pas une adresse de site Web valide"; } ?>testez pour voir‹/›
Attention :Le filtre FILTER_SANITIZE_URL supprime tous les caractères invalides, à l'exception des lettres, des chiffres et des caractères spéciaux de la chaîne d'URL fournie$-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
Vous pouvez également utiliser le drapeau pour vérifier si l'URL contient la chaîne de requête FILTER_FLAG_QUERY_REQUIRED, comme dans l'exemple suivant :
<?php //url $url = "http://www.example.com?topic=filters"; //Vérification de l'adresse du site Web pour obtenir la chaîne de requête if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)){ echo "<b>$url</b>Contient la chaîne de requête"; }else{ echo "<b>$url</b>Ne contient pas la chaîne de requête"; } ?>testez pour voir‹/›
Veuillez consulterURL HTMLtutoriel pour comprendreURLdifférents composants.
Les exemples suivants vérifieront si la valeur fournie est un entier, et s'il se trouve entre 0 et10dans la plage de 0.
<?php // Valeur entière de l'exemple $int = 75; //Vérification de la valeur entière de l'échantillon if(filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range" => 0,"max_range" => 100)))){ echo "<b>$int</b>Se trouve entre 0 et10dans la plage de "0"; }else{ echo "<b>$int</b>Ne se trouve pas entre 0 et10dans la plage de "0"; } ?>testez pour voir‹/›