Que sont les filtres PHP ? Quels types de filtres existe-t-il ?

慕斯
Libérer: 2023-03-10 07:16:02
original
2365 Les gens l'ont consulté

L'article précédent vous a présenté "Comment écrire des fichiers de programme de messagerie en utilisant PHP ? 》, cet article continue de vous présenter qu'est-ce qu'un filtre PHP ? Quels types de filtres existe-t-il ? Allons-y ensemble !

Que sont les filtres PHP ? Quels types de filtres existe-t-il ?

Que sont les filtres PHP ?

  • Les filtres PHP sont utilisés pour valider et filtrer les données provenant de sources non sécurisées.

  • Tester, valider et filtrer les entrées utilisateur ou les données personnalisées est une partie importante de toute application Web.

  • L'extension de filtre de PHP est conçue pour rendre le filtrage des données plus facile et plus rapide.

  • Les filtres PHP sont utilisés pour valider et filtrer les données provenant de sources non sécurisées, telles que les entrées de l'utilisateur.

Pourquoi utiliser des filtres ?

Presque toutes les applications Web reposent sur une entrée externe. Ces données proviennent généralement des utilisateurs ou d'autres applications (telles que des services Web). En utilisant des filtres, vous pouvez vous assurer que votre application obtient le type d'entrée correct.

Vous devez toujours filtrer les données externes !

Le filtrage des entrées est l'un des sujets les plus importants en matière de sécurité des applications.

Qu'est-ce que les données externes ?

Données de saisie des formulaires

  • Cookies

  • Données des services Web

  • Variables du serveur

  • Résultats de la requête de base de données

  • Fonction et filtres

Pour filtrer une variable, utilisez l'une des fonctions de filtre suivantes :

  • filter_var() - filtrer par un filtre spécifié pour filtrer un seul variable

  • filter_var_array() - filtre plusieurs variables avec des filtres identiques ou différents

  • filter_input - Obtient une variable d'entrée et le filtre

  • filter_input_array - Obtient plusieurs variables d'entrée et les exécute à travers des filtres identiques ou différents Filtre

Dans Dans l'exemple suivant, nous utilisons la fonction filter_var() pour vérifier un entier :

<?php
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
{
echo("不是一个合法的整数");
}
else
{
echo("是个合法的整数");
}
?>
Copier après la connexion

Le résultat de l'exécution du code est le suivant :

Que sont les filtres PHP ? Quels types de filtres existe-t-il ?

Validation et désinfection

Il existe deux types de filtres :

Filtre de validation :

  • Utilisé pour valider la saisie de l'utilisateur

  • Règles de formatage strictes (telles que la validation d'URL ou d'e-mail)

  • Renvoie le type attendu en cas de succès, FALSE en cas d'échec

Filtre de désinfection :

  • est utilisé pour autoriser ou interdire les caractères spécifiés dans la chaîne

  • Aucune règle de format de données

  • Renvoie toujours la chaîne

  • Options et drapeaux Les options et les drapeaux sont utilisés pour ajouter des options de filtrage supplémentaires au filtre spécifié.

  • Différents filtres ont des options et des indicateurs différents.

Dans l'exemple ci-dessous, nous validons un entier en utilisant filter_var() avec les options "min_range" et "max_range" :

<?php
$var=300;
$int_options = array(
"options"=>array
(
"min_range"=>0,
"max_range"=>256
)
);
if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
{
echo("不是一个合法的整数");
}
else
{
echo("是个合法的整数");
}
?>
Copier après la connexion

Juste comme le code ci-dessus, les options doivent être placées dans un tableau associé appelé « options ». Si vous utilisez des indicateurs, ils n'ont pas besoin d'être dans un tableau.

Puisque l'entier est "300", il n'est pas dans la plage spécifiée, la sortie du code ci-dessus sera

Le résultat de l'exécution du code est le suivant :

Que sont les filtres PHP ? Quels types de filtres existe-t-il ?

Filtrer plusieurs entrées

Les formulaires se composent généralement de plusieurs champs de saisie. Pour éviter les appels répétés aux fonctions filter_var ou filter_input, nous pouvons utiliser filter_var_array ou la fonction filter_input_array.

Dans cet exemple, nous utilisons la fonction filter_input_array() pour filtrer trois variables GET. Les variables GET reçues sont un nom, un âge et une adresse e-mail :

<?php
$filters = array
(
"name" => array
(
"filter"=>FILTER_SANITIZE_STRING
),
"age" => array
(
"filter"=>FILTER_VALIDATE_INT,
"options"=>array
(
"min_range"=>1,
"max_range"=>120
)
),
"email"=> FILTER_VALIDATE_EMAIL
);
$result = filter_input_array(INPUT_GET, $filters);
if (!$result["age"])
{
echo("年龄必须在 1 到 120 之间。<br>");
}
elseif(!$result["email"])
{
echo("E-Mail 不合法<br>");
}
else
{
echo("输入正确");
}
?>
Copier après la connexion

Les résultats sont les suivants :

Que sont les filtres PHP ? Quels types de filtres existe-t-il ?

Explication des exemples :

L'exemple ci-dessus comporte trois variables d'entrée (nom, âge et email) transmises via la méthode "GET" :

Définissez un tableau qui contient le nom de la variable d'entrée et le filtre utilisé pour la variable d'entrée spécifiée

Appelez la fonction filter_input_array(), les paramètres incluent la variable d'entrée GET et le tableau il suffit de définir

Vérifiez si les variables "age" et "email" dans la variable $result ont une entrée illégale. (S'il y a une entrée illégale, la variable d'entrée est FALSE après avoir utilisé la fonction filter_input_array().)

Le deuxième argument de la fonction filter_input_array() peut être un tableau ou l'ID d'un seul filtre.

Si ce paramètre est l'ID d'un seul filtre, alors le filtre spécifié filtrera toutes les valeurs du tableau d'entrée.

Si le paramètre est un tableau, alors le tableau doit suivre les règles suivantes :

doit être un tableau associatif contenant les variables d'entrée qui sont les clés du tableau (Par exemple, variable d'entrée "age")

La valeur de ce tableau doit être l'ID du filtre, ou un tableau spécifiant des filtres, des drapeaux et des options

Apprentissage recommandé :《Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!