Latest web development tutorials
×

PHP cours

PHP cours PHP Brève introduction PHP installer PHP grammaire PHP variable PHP echo/print PHP Types de données PHP constante PHP chaîne PHP opérateurs PHP If...Else PHP Switch PHP tableau PHP Tri d'un tableau PHP Superglobales PHP While circulation PHP For circulation PHP fonction PHP Variables magiques PHP Namespaces PHP Object-Oriented

PHP forme

PHP forme PHP Authentification Forms PHP forme - Les champs obligatoires PHP forme - email de vérification et d'URL PHP Complète instance de formulaire PHP $_GET variable PHP $_POST variable

PHP Tutorial avancée

PHP Les tableaux multidimensionnels PHP date PHP contenir PHP fichier PHP File Upload PHP Cookie PHP Session PHP E-mail PHP sécurité E-mail PHP Error PHP Exception PHP filtre PHP filtre avancé PHP JSON

PHP 7 Nouvelles fonctionnalités

PHP 7 Nouvelles fonctionnalités

PHP Base de données

PHP MySQL Brève introduction PHP MySQL raccordement PHP MySQL La création d'une base de données PHP MySQL Créer une table de données PHP MySQL Insérer des données PHP MySQL Insérez des données multiples PHP MySQL Déclarations préparées PHP MySQL Lire les données PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX Brève introduction AJAX PHP AJAX Base de données AJAX XML AJAX Recherche en temps réel AJAX RSS Reader AJAX vote

PHP Manuel de référence

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP Traitement de l'image PHP RESTful

filtre PHP

filtre PHP est utilisé pour valider les données de filtre à partir de sources non sécurisées, telles que la saisie de l'utilisateur.


Qu'est-ce qu'un filtre de PHP?

filtre PHP est utilisé pour valider les données de filtre à partir de sources d'insécurité.

Tester, valider et entrée de l'utilisateur du filtre ou des données personnalisées est une partie importante de toute application Web.

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


Pourquoi utiliser un filtre?

Presque toutes les applications Web sont dépendantes des intrants externes. Ces données proviennent généralement d'utilisateurs ou d'autres applications (telles que les services Web). En utilisant des filtres, vous pouvez vous assurer que les applications obtiennent le type d'entrée correct.

Vous devriez toujours le filtrage de données externe!

Le filtrage des entrées est des questions les plus importantes en matière de sécurité de l'application.

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

  • Les données d'entrée d'un formulaire
  • cookies
  • les données de services Web
  • Variables de serveur
  • résultats Base de données de requête

Fonctions et filtres

Pour filtrer une variable, utilisez l'une des fonctions de filtres suivants:

  • filter_var () - pour filtrer une seule variable d'un filtre spécifique
  • filter_var_array () - pour filtrer plusieurs variables par les mêmes ou différents filtres
  • filter_input - Obtenir une variable d'entrée et filtrer
  • filter_input_array - Obtenez plus de variables d'entrée, et par les mêmes ou différents filtres pour les filtrer

Dans l'exemple suivant, nous utilisons filter_var () fonction valide un nombre entier:

<?php
$int = 123;

if(!filter_var($int, FILTER_VALIDATE_INT))
{
	echo("不是一个合法的整数");
}
else
{
	echo("是个合法的整数");
}
?>

Le code ci-dessus utilise le "FILTER_VALIDATE_INT" filtre pour filtrer la variable. Étant donné que le nombre entier est légitime, donc la sortie code volonté ci-dessus:

Si nous essayons d'utiliser une variable non-entier (tel que "123abc"), est sortie: "Integer est pas valide".

Pour une liste complète des fonctions et des filtres, consultez notre Manuel PHP Filtre de référence .


Validation et assainissement

Il existe deux types de filtres:

Validation des filtres:

  • Utilisé pour valider les données utilisateur
  • règles de format strictes (comme la vérification des URL ou E-Mail)
  • En cas de succès, le type de rendement attendu, si elle ne retourne FALSE

Désinfection filtres:

  • Il est utilisé pour autoriser ou interdire la chaîne de caractères spécifiée
  • Pas de règles de format de données
  • Toujours remettre la chaîne

Options et drapeaux

Options et drapeaux sont utilisés pour ajouter des options de filtrage supplémentaires pour les filtres spécifiés.

Différents filtres ont différentes options et des drapeaux.

Dans l'exemple suivant, nous utilisons filter_var () et option "max_range" "min_range" et de vérifier un nombre entier:

<?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("是个合法的整数");
}
?>

Comme le code ci-dessus, l'option correspondante doit être placée dans un tableau appelé "options" dans. Si un indicateur est pas nécessaire dans le tableau.

Étant donné que le nombre entier est "300", il est pas dans la plage spécifiée, la sortie du code ci-dessus sera:

不是一个合法的整数

Pour une liste complète des fonctions et des filtres, consultez notre Manuel PHP Filtre de référence . Vous pouvez voir les options disponibles pour chaque filtre et des drapeaux.


entrée Validating

Essayons de valider une entrée d'un formulaire.

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

Ensuite, nous utilisons la fonction filter_input () pour filtrer les données saisies.

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

<?php
if(!filter_has_var(INPUT_GET, "email"))
{
	echo("没有 email 参数");
}
else
{
	if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
	{
		echo "不是一个合法的 E-Mail";
	}
	else
	{
		echo "是一个合法的 E-Mail";
	}
}
?>

Des exemples des résultats ci-dessus sont les suivants:

Des exemples expliqués

L'exemple ci-dessus présente une variable d'entrée par (e-mail) "GET" méthode de transfert:

  1. Détection de la présence de "email" variable d'entrée "GET" Type
  2. S'il y a une variable d'entrée pour détecter si elle est une adresse e-mail valide

Entrée de purification

Essayons d'éclaircir provenant d'un formulaire URL.

Tout d'abord, nous avons besoin de confirmer que les données d'entrée nous recherchons.

Ensuite, nous assainissons fonction d'entrée filter_input de données ().

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

<?php
if(!filter_has_var(INPUT_GET, "url"))
{
	echo("没有 url 参数");
}
else
{
	$url = filter_input(INPUT_GET, 
	"url", FILTER_SANITIZE_URL);
	echo $url;
}
?>

Des exemples expliqués

Des exemples de ce qui précède par une variable d'entrée (url) "GET" méthode envoyé:

  1. Détection de la présence de "url" variables d'entrée "GET" Type
  2. Si la variable d'entrée existe, sa purification (en supprimant les caractères illégaux), et le stocker dans la variable $ url

Si la variable d'entrée est une chaîne comme ceci: "http://www.ruaanoob.com/", la variable $ url après purification est la suivante:



Une pluralité de filtre d'entrée

Les formes sont souvent constituées de plusieurs champs d'entrée. Pour éviter la fonction filter_var ou filter_input appelé à plusieurs reprises, nous pouvons utiliser la filter_var_array ou de la fonction filter_input_array.

Dans ce cas, nous utilisons filter_input_array () pour filtrer trois variables GET. Reçu variables GET est 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("输入正确");
}
?>

Des exemples expliqués

L'exemple ci-dessus a trois variables d'entrée (nom, âge et e-mail) transmis par la méthode "GET":

  1. Mettre en place un tableau qui contient les noms des variables d'entrée utilisées pour spécifier les variables d'entrée et filtre
  2. () Fonction, les paramètres d'entrée, y compris les variables GET et vient de mettre tableau appel filter_input_array
  3. Détection $ result «âge» variable et variable d'entrée "e-mail" est illégale. (S'il y a entrée illégale, après la fonction de l'utilisation filter_input_array (), la variable d'entrée est FALSE.)

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

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

Si ce paramètre est un tableau, le tableau doit se conformer aux règles suivantes:

  • Doit être un tableau associatif contenant une variable d'entrée est une clé du tableau (comme variable d'entrée "d'âge")
  • La valeur de ce tableau doit être un ID de filtre, ou les dispositions du filtre, des drapeaux et des options réseaux

Utiliser le filtre Callback

En utilisant des filtres de FILTER_CALLBACK, vous pouvez appeler une fonction personnalisée, l'utiliser comme un filtre à utiliser. Ainsi, nous avons un contrôle complet sur le filtrage des données.

Vous pouvez créer votre propre fonction personnalisée, ou vous pouvez utiliser une fonction PHP existantes.

Vous serez prêt à utiliser la fonction de filtre, selon les dispositions spécifiées des options méthode prédéterminées. Dans un tableau associatif avec le nom de "options".

Dans l'exemple suivant, nous utilisons une fonction personnalisée de tous "_" convertis en espaces:

<?php
function convertSpace($string)
{
	return str_replace("_", ".", $string);
}

$string = "www_w3big_com!";

echo filter_var($string, FILTER_CALLBACK,
array("options"=>"convertSpace"));
?>

Résultat du code ci-dessus est le suivant:

Des exemples expliqués

Les exemples ci-dessus tous les "_" dans "".:

  1. Pour créer un "_" est remplacé par "." Fonction
  2. fonction Appel filter_var (), quels paramètres sont filtre FILTER_CALLBACK et tableau contenant notre fonction