Connaissances connexes sur le filtre PHP (Filtre)
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"); } ?>
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"); } ?>
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"; } } ?>
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); } ?>
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"); } ?>
例子解释:
上面的例子有三个通过 "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")); ?>
以上代码的结果是这样的:
Peter is a great guy!
例子解释:
上面的例子把所有 "_" 转换成空格:
创建一个把 "_" 替换为空格的函数
调用 filter_var() 函数,它的参数是 FILTER_CALLBACK 过滤器以及包含我们的函数的数组。
本篇对过滤器进行了讲解,更多的学习资料清关注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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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

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.

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

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,

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

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 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.
