Maison développement back-end tutoriel php Connaissances connexes sur le filtre PHP (Filtre)

Connaissances connexes sur le filtre PHP (Filtre)

May 08, 2018 am 09:22 AM
filter php 过滤器

PHP Filter est utilisé pour vérifier et filtrer les données provenant de sources non sécurisées, telles que les entrées de l'utilisateur. Cet article en apprendra plus sur les filtres.

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.

La validation et le filtrage des entrées utilisateur ou des données personnalisées sont une partie importante de toute application Web.

Les extensions de filtre pour PHP sont conçues pour rendre le filtrage des données plus facile et plus rapide.

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 ?

Saisie des données des formulaires

Cookies

Variables du serveur

Résultats des requêtes de base de données

Fonctions et filtres

À filtrez les variables, utilisez l'une des fonctions de filtre suivantes :

filter_var() - Filtre une seule variable par un filtre spécifié

filter_var_array() - Filtre des filtres identiques ou différents pour filtrer plusieurs variables

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

filter_input_array - Obtient plusieurs variables d'entrée et les filtre en les filtrant avec des filtres identiques ou différents

Dans l'exemple suivant, nous validons un entier à l'aide de la fonction filter_var() :

<?php
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
 {
 echo("Integer is not valid");
 }
else
 {
 echo("Integer is valid");
 }
?>
Copier après la connexion

Le code ci-dessus utilise le filtre "FILTER_VALIDATE_INT" pour filtrer les variables. Puisque cet entier est légal, le résultat du code est : « L’entier est valide ».

Si nous essayons d'utiliser une variable non entière, le résultat est : "L'entier n'est pas valide".

Pour une liste complète des fonctions et des filtres, veuillez visiter notre manuel de référence des filtres PHP.

Validation et désinfection

Il existe deux types de filtres :

Filtre de validation :

Utilisé pour valider la saisie de l'utilisateur

Format strict règles (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 indicateurs

Les options et les indicateurs sont utilisés pour spécifier que les filtres ajoutent des options de filtrage supplémentaires.

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

Dans l'exemple suivant, 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("Integer is not valid");
 }
else
 {
 echo("Integer is valid");
 }
?>
Copier après la connexion

Comme le code ci-dessus, l'option doit être 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", ce qui n'est pas dans la plage spécifiée, la sortie du code ci-dessus sera "L'entier n'est pas valide".

Pour une liste complète des fonctions et des filtres, veuillez visiter le manuel de référence des filtres PHP fourni par W3School. Vous pouvez voir les options et les indicateurs disponibles pour chaque filtre.

Validation de la saisie

Essayons de valider la saisie d'un formulaire.

La première chose que nous devons faire est de confirmer que les données d'entrée que nous recherchons existent.

Ensuite, nous utilisons la fonction filter_input() pour filtrer les données d'entrée.

Dans l'exemple suivant, la variable d'entrée "email" est passée à la page PHP :

<?php
if(!filter_has_var(INPUT_GET, "email"))
 {
 echo("Input type does not exist");
 }
else
 {
 if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
  {
  echo "E-Mail is not valid";
  }
 else
  {
  echo "E-Mail is valid";
  }
 }
?>
Copier après la connexion

Explication de l'exemple :

L'exemple ci-dessus a une passe "GET" Variable d'entrée (email) envoyée par la méthode :

Vérifier s'il existe une variable d'entrée "email" de type "GET"

S'il existe une variable d'entrée, vérifier si elle est une adresse e-mail valide

Sanitize input

Essayons de nettoyer l'URL transmise depuis le formulaire.

Tout d'abord, nous voulons confirmer que les données d'entrée que nous recherchons existent.

Ensuite, nous utilisons la fonction filter_input() pour purifier les données d'entrée.

Dans l'exemple suivant, la variable d'entrée "url" est passée à la page PHP :

<?php
if(!filter_has_var(INPUT_POST, "url"))
 {
 echo("Input type does not exist");
 }
else
 {
 $url = filter_input(INPUT_POST, "url", FILTER_SANITIZE_URL);
 }
?>
Copier après la connexion

Explication de l'exemple :

L'exemple ci-dessus a un pass "POST" Variable d'entrée (url) transmise par la méthode :

Détecter s'il existe une variable d'entrée "url" de type "POST"

Si cette variable d'entrée existe, purifier la (supprimer caractères illégaux), et stockez-la dans la variable $url

Si la variable d'entrée est similaire à celle-ci : "http://www.W3illegitimeol.com.ccharacters/", alors la variable $url purifiée devrait va comme ceci :

http://www.W3School.com.cn/

Filtrer plusieurs entrées

Les formulaires se composent généralement de plusieurs champs de saisie. Pour éviter les appels répétés à 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 email :

<?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("Age must be a number between 1 and 120.<br />");
 }
elseif(!$result["email"])
 {
 echo("E-Mail is not valid.<br />");
 }
else
 {
 echo("User input is valid");
 }
?>
Copier après la connexion

例子解释:

上面的例子有三个通过 "GET" 方法传送的输入变量 (name, age and email)

设置一个数组,其中包含了输入变量的名称,以及用于指定的输入变量的过滤器

调用 filter_input_array 函数,参数包括 GET 输入变量及刚才设置的数组

检测 $result 变量中的 "age" 和 "email" 变量是否有非法的输入。(如果存在非法输入,)

filter_input_array() 函数的第二个参数可以是数组或单一过滤器的 ID。

如果该参数是单一过滤器的 ID,那么这个指定的过滤器会过滤输入数组中所有的值。

如果该参数是一个数组,那么此数组必须遵循下面的规则:

必须是一个关联数组,其中包含的输入变量是数组的键(比如 "age" 输入变量)

此数组的值必须是过滤器的 ID ,或者是规定了过滤器、标志以及选项的数组

使用 Filter Callback

通过使用 FILTER_CALLBACK 过滤器,可以调用自定义的函数,把它作为一个过滤器来使用。这样,我们就拥有了数据过滤的完全控制权。

您可以创建自己的自定义函数,也可以使用已有的 PHP 函数。

规定您准备用到过滤器函数的方法,与规定选项的方法相同。

在下面的例子中,我们使用了一个自定义的函数把所有 "_" 转换为空格:

<?phpfunction convertSpace($string)
{
return str_replace("_", " ", $string);
}$string = "Peter_is_a_great_guy!";
echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace"));
?>
Copier après la connexion

以上代码的结果是这样的:

Peter is a great guy!

例子解释:

上面的例子把所有 "_" 转换成空格:

创建一个把 "_" 替换为空格的函数

调用 filter_var() 函数,它的参数是 FILTER_CALLBACK 过滤器以及包含我们的函数的数组。

本篇对过滤器进行了讲解,更多的学习资料清关注php中文网即可观看。

相关推荐:

关于对PHP 异常处理的操作

关于PHP 文件打开/读取/读取相关知识

关于PHP Include 文件的讲解

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

See all articles