Latest web development tutorials
×

PHP Kurs

PHP Kurs PHP Kurze Einführung PHP installieren PHP Grammatik PHP Variable PHP echo/print PHP Datentypen PHP Konstante PHP Schnur PHP Die Betreiber PHP If...Else PHP Switch PHP Feld PHP Sortieren eines Array PHP Superglobals PHP While Verkehr PHP For Verkehr PHP Funktion PHP Magische Variablen PHP Namespaces PHP Objektorientiert

PHP Form

PHP Form PHP Formularauthentifizierung PHP Form - Erforderliche Felder PHP Form - Überprüfung E-Mail und URL PHP Komplette Formularinstanz PHP $_GET Variable PHP $_POST Variable

PHP Erweiterte Tutorial

PHP Mehrdimensionale Arrays PHP Datum PHP enthalten PHP Datei PHP Datei-Upload PHP Cookie PHP Session PHP E-mail PHP Sicherheit E-mail PHP Error PHP Exception PHP Filter PHP Erweiterte Filter PHP JSON

PHP 7 Neue Funktionen

PHP 7 Neue Funktionen

PHP Datenbank

PHP MySQL Kurze Einführung PHP MySQL Verbindung PHP MySQL Erstellen einer Datenbank PHP MySQL Erstellen Sie eine Datentabelle PHP MySQL einfügen von Daten PHP MySQL Legen Sie mehrere Daten PHP MySQL Prepared Statements PHP MySQL Lesen Sie Daten 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 Kurze Einführung AJAX PHP AJAX Datenbank AJAX XML AJAX Echtzeitsuche AJAX RSS Reader AJAX Abstimmung

PHP Referenzhandbuch

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 Bildverarbeitung PHP RESTful

PHP-Filter

PHP-Filter wird verwendet, um zu validieren und Filterdaten aus unsicheren Quellen, wie Benutzereingabe.


Was ist ein PHP-Filter?

PHP Filter wird verwendet, um aus unsicheren Quellen zu validieren und Filterdaten.

Test, Validierung und Filter Benutzereingabe oder benutzerdefinierte Daten ist ein wichtiger Bestandteil jeder Web-Anwendung.

PHP Filter-Erweiterung ist so konzipiert, Filtern von Daten einfacher und schneller zu machen.


Warum einen Filter verwenden?

Fast alle Web-Anwendungen sind abhängig von externen Eingängen. Diese Daten kommen in der Regel von den Benutzern oder anderen Anwendungen (wie zB Web Services). Durch die Verwendung von Filtern können Sie sicherstellen, dass Anwendungen die richtige Eingabetyp erhalten.

Sie sollten immer externe Datenfilterung!

Eingangsfilterung ist die wichtigste Anwendung Sicherheitsfragen.

Was sind externe Daten?

  • Die Eingabedaten aus einem Formular
  • Kekse
  • Web-Services-Daten
  • Server-Variablen
  • Database Query-Ergebnisse

Funktionen und Filter

Um eine Variable zu filtern, verwenden Sie eine der folgenden Filterfunktionen:

  • filter_var () - eine einzige Variable durch einen spezifischen Filter zu filtern
  • filter_var_array () - mehrere Variablen durch die gleichen oder verschiedene Filter zum Filtern
  • filter_input - Holen Sie sich eine Eingangsgröße und filtern
  • filter_input_array - mehr Eingangsvariablen, und von den gleichen oder verschiedenen Filtern sie zu filtern

Im folgenden Beispiel verwenden wir filter_var () Funktion validiert eine ganze Zahl:

<?php
$int = 123;

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

Der obige Code verwendet die "FILTER_VALIDATE_INT" Filter, um die Variable zu filtern. Da die ganze Zahl ist legitim, so dass die obige Code gibt:

Wenn wir versuchen, eine Nicht-Integer-Variable (beispielsweise "123abc") zu verwenden, wird ausgegeben: "Integer nicht gültig".

Eine vollständige Liste der Funktionen und Filter, besuchen Sie unsere PHP Filter - Referenzhandbuch .


Validieren und Sanitizing

Es gibt zwei Arten von Filtern:

Validieren Filter:

  • Gebrauchte Benutzereingaben zu validieren
  • Strikte Formatregeln (wie URL oder E-Mail Bestätigung)
  • Wenn dies gelingt, die erwartete Rendite-Typ, wenn es fehlschlägt FALSE zurück

Sanitizing Filter:

  • Es verwendet, um zuzulassen oder die angegebene Zeichenfolge verbieten
  • Keine Datenformat Regeln
  • Immer geben die Zeichenfolge

Optionen und Fahnen

Optionen und Flags werden verwendet, um zusätzliche Filteroptionen zu den angegebenen Filter hinzuzufügen.

Verschiedene Filter haben unterschiedliche Optionen und Flags.

Im folgenden Beispiel verwenden wir filter_var () und "min_range" und "max_range" Option, um eine ganze Zahl zu überprüfen:

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

Wie der Code oben, da die entsprechende Option muss in einem Array platziert werden in dem Namen "Optionen". Wenn ein Flag nicht innerhalb der Anordnung erforderlich.

Da die ganze Zahl "300" ist, ist es nicht innerhalb des spezifizierten Bereichs, der Ausgang des Code wird über sein:

不是一个合法的整数

Eine vollständige Liste der Funktionen und Filter, besuchen Sie unsere PHP Filter - Referenzhandbuch . Sie können für jeden Filter und Fahnen die verfügbaren Optionen zu sehen.


Validieren Eingang

Lassen Sie uns versuchen, eine Eingabe von einem Formular zu validieren.

Wir müssen erste, was zu tun ist, um zu bestätigen, dass die Eingangsdaten die wir suchen.

Dann benutzen wir filter_input () Funktion, um die eingegebenen Daten zu filtern.

Im Beispiel unten wird die Eingangsvariable "E-Mail", um die PHP-Seite übergeben:

<?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";
	}
}
?>

Beispiele für die obigen Ergebnisse waren wie folgt:

Beispiele erklärt

Das obige Beispiel hat eine Eingangsgröße von (E-Mail) "GET" Methode des Transfers:

  1. Nachweis der Anwesenheit von "E-Mail" Eingangsvariable "GET" type
  2. Wenn es eine Eingangsvariable zu erfassen, ob es eine gültige E-Mail-Adresse ist

Die Reinigung Eingang

Lassen Sie uns versuchen, von einer Form URL zu klären kommen.

Zunächst einmal müssen wir bestätigen, dass die Eingangsdaten die wir suchen.

Dann sterilisieren wir Eingangsdaten filter_input () Funktion.

In dem folgenden Beispiel wird die Eingangsvariable "url" zur PHP-Seite übergeben:

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

Beispiele erklärt

Beispiele für die oben durch eine Eingangsvariable (url) Methode "GET" gesendet:

  1. Nachweis der Anwesenheit von "url" Eingangsvariablen "GET" type
  2. Wenn die Eingangsgröße vorhanden ist, (Entfernen von ungültigen Zeichen) seine Reinigung und speichert sie in der $ url-Variable

Wenn die Eingangsgröße ist ein String wie folgt: "http://www.ruaanoob.com/", die $ url variable nach der Reinigung ist wie folgt:



Eine Mehrzahl von Eingangsfilter

Formulare bestehen oft aus mehreren Eingabefeldern. Um zu vermeiden, immer wieder genannt filter_var oder filter_input Funktion, können wir die filter_input_array filter_var_array oder Funktion verwenden.

In diesem Fall verwenden wir filter_input_array () Funktion drei GET-Variablen zu filtern. Received GET-Variablen ist ein Name, ein Alter und eine E-Mail-Adresse:

<?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("输入正确");
}
?>

Beispiele erklärt

Das obige Beispiel hat drei Eingangsvariablen (Name, Alter und E-Mail) über Methode "GET" übertragen:

  1. Legen Sie ein Array auf, die die Namen von Eingangsvariablen enthält verwendet, um die Eingangsgrößen zu spezifizieren und Filter
  2. () Funktion, Eingabeparameter, einschließlich der GET-Variablen und gerade eingestellt Array Anruf filter_input_array
  3. Erkennung $ result Variable "Alter" und "E-Mail" Eingangsgröße ist illegal. (Wenn es illegal Eingang, nach dem Gebrauch filter_input_array () Funktion, die Eingangsgröße ist FALSE.)

filter_input_array () Das zweite Argument der Funktion kann ein Array oder ein einzelner Filter-ID sein.

Wenn der Parameter ein einzelnes Filter-ID ist, dann wird der angegebene Filter filtern alle Eingabefeldwerte.

Wenn dieser Parameter ein Array ist, muss das Array mit den folgenden Regeln entsprechen:

  • Muss ein assoziatives Array sein, eine Eingangsgröße enthält, ist ein Array Taste (zB "Alter" Eingangsgröße)
  • Der Wert dieses Feldes muss eine Filter-ID, oder die Bestimmungen des Filters, Fahnen und Optionen Arrays

Filter verwenden Rückruf

Durch die Verwendung von FILTER_CALLBACK Filter, können Sie eine benutzerdefinierte Funktion aufrufen, verwenden Sie es als Filter zu verwenden. So haben wir die vollständige Kontrolle über die Datenfilterung.

Sie können Ihre eigene benutzerdefinierte Funktion, oder Sie verwenden können, eine bestehende PHP-Funktionen erstellen.

Sie werden bereit sein, die Filterfunktion zu verwenden, die nach den Bestimmungen festgelegten Optionen vorgegebenen Verfahren. In einem assoziativen Array mit den Namen "Optionen".

Im folgenden Beispiel verwenden wir eine benutzerdefinierte Funktion aller "_" in Leerzeichen umgewandelt:

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

$string = "www_w3big_com!";

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

Ergebnis des obigen Code ist der folgende:

Beispiele erklärt

Die obigen Beispiele alle "_" in ".":

  1. So erstellen Sie ein "_" ersetzt durch "." Funktion
  2. Rufen Sie filter_var () Funktion, die Parameter sind FILTER_CALLBACK Filter und Array mit unserer Funktion