English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel PHP de base

Tutoriel PHP avancé

PHP & MySQL

Manuel de référence PHP

Filtres PHP

Dans ce tutoriel, vous apprendrez à nettoyer et à valider les entrées utilisateur en PHP.

Utilisation des filtres de validation et de nettoyage des données

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.

Nettoyer la chaîne

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 ?

Vérification de la valeur entière

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‹/›

Vérification de l'adresse IP

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‹/›

Nettoyer et vérifier l'adresse e-mail

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 !#$%&'!*+-=?^_`{|}~@.[]。

Nettoyer et vérifier l'URL

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.

Vérification des entiers dans la plage

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‹/›