Latest web development tutorials
×

PHP corso

PHP corso PHP breve introduzione PHP installare PHP grammatica PHP variabile PHP echo/print PHP Tipi di dati PHP costante PHP stringa PHP operatori PHP If...Else PHP Switch PHP schieramento PHP Ordinamento di un array PHP superglobals PHP While circolazione PHP For circolazione PHP funzione PHP Variabili magici PHP Namespace PHP Object-Oriented

PHP modulo

PHP modulo PHP Forms Authentication PHP modulo - I campi obbligatori PHP modulo - e-mail di verifica e l'URL PHP esempio forma completa PHP $_GET variabile PHP $_POST variabile

PHP Tutorial avanzato

PHP array multidimensionali PHP data PHP contenere PHP file PHP File Upload PHP Cookie PHP Session PHP E-mail PHP sicurezza E-mail PHP Error PHP Exception PHP filtro PHP Filtro avanzato PHP JSON

PHP 7 nuove funzionalità

PHP 7 nuove funzionalità

PHP Database

PHP MySQL breve introduzione PHP MySQL collegamento PHP MySQL Creazione di un database PHP MySQL Creare una tabella di dati PHP MySQL inserire i dati PHP MySQL Inserire più dati PHP MySQL prepared statement PHP MySQL leggere i dati 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 breve introduzione AJAX PHP AJAX Database AJAX XML AJAX ricerca in tempo reale AJAX RSS Reader AJAX voto

PHP Manuale di riferimento

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 Elaborazione immagini PHP RESTful

Filtro PHP

Filtro PHP viene utilizzato per convalidare e filtrare i dati provenienti da fonti non sicure, come ad esempio l'input dell'utente.


Che cosa è un filtro PHP?

Filtro PHP viene utilizzato per convalidare e filtrare i dati provenienti da fonti non sicure.

Sperimentare, convalidare e l'input dell'utente filtro o di dati personalizzati è una parte importante di qualsiasi applicazione Web.

estensione filtro PHP è progettato per rendere più facile e veloce filtraggio dei dati.


Perché usare un filtro?

Quasi tutte le applicazioni Web sono dipendente da input esterni. Questi dati di solito provengono da utenti o di altre applicazioni (come i servizi web). Utilizzando i filtri, è possibile garantire che le applicazioni ottenere il tipo di ingresso corretto.

Si dovrebbe sempre filtraggio dei dati esterni!

filtraggio in ingresso è le più importanti questioni di sicurezza delle applicazioni.

Cosa sono i dati esterni?

  • I dati di input da un modulo
  • biscotti
  • dati servizi Web
  • Variabili Server
  • i risultati delle query di database

Funzioni e Filtri

Per filtrare una variabile, utilizzare una delle seguenti funzioni di filtro:

  • filter_var () - per filtrare una singola variabile da un filtro specificato
  • filter_var_array () - per filtrare più variabili uguali o diversi filtri
  • filter_input - Ottenere una variabile di ingresso e di filtrarla
  • filter_input_array - Chiedere variabili di input, e dagli stessi o diversi filtri per filtrarli

Nel seguente esempio, usiamo filter_var () funzione convalida un numero intero:

<?php
$int = 123;

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

Il codice precedente utilizza il filtro "FILTER_VALIDATE_INT" per filtrare la variabile. Dal momento che l'intero è legittima, in modo che il sopra uscita codice:

Se cerchiamo di usare una variabile non intero (come "123abc"), viene emesso: "Integer non è valido".

Per un elenco completo delle funzioni e filtri, visitare il nostro Manuale PHP filtro di riferimento .


Convalida e sanificazione

Ci sono due tipi di filtri:

Convalida filtri:

  • Utilizzato per convalidare l'input dell'utente
  • regole severe formato (come URL o e-mail di verifica)
  • In caso di successo, il tipo di rendimento atteso, se non riesce a restituire FALSE

Sanificazione filtri:

  • E 'utilizzato per consentire o vietare la stringa di caratteri specificata
  • Nessuna regola formato dei dati
  • Riportare sempre la stringa

Opzioni e bandiere

Opzioni e bandiere vengono utilizzati per aggiungere ulteriori opzioni di filtro per i filtri specificati.

Diversi filtri hanno diverse opzioni e le bandiere.

Nel seguente esempio, usiamo filter_var () e "min_range" e l'opzione "max_range" per verificare un numero intero:

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

Come il codice di cui sopra, in quanto la relativa opzione deve essere collocato in un array chiamato "opzioni" a. Se un flag non è richiesto all'interno della matrice.

Poiché il numero intero è "300", non è compreso nell'intervallo specificato, l'output del codice precedente sarà:

不是一个合法的整数

Per un elenco completo delle funzioni e filtri, visitare il nostro Manuale PHP filtro di riferimento . È possibile vedere le opzioni disponibili per ogni filtro e bandiere.


ingresso Convalida

Proviamo validare l'input da un modulo.

Abbiamo bisogno di fare prima cosa è quello di confermare che i dati di input stiamo cercando.

Poi usiamo la funzione filter_input () per filtrare i dati inseriti.

Nell'esempio che segue, la variabile di ingresso "email" viene passato alla pagina 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";
	}
}
?>

Esempi dei risultati di cui sopra sono stati i seguenti:

Esempi spiegato

L'esempio di cui sopra ha una variabile di ingresso per (e-mail) "GET" metodo di trasferimento:

  1. Rilevare la presenza di tipo "e-mail" variabile di ingresso "GET"
  2. Se vi è una variabile di ingresso per rilevare se è un indirizzo e-mail valido

ingresso purificazione

Proviamo a chiarire proveniente da un URL modulo.

Prima di tutto, abbiamo bisogno di confermare che i dati di input che stanno cercando.

Poi abbiamo disinfettare funzione di immissione dati filter_input ().

Nell'esempio che segue, la variabile di ingresso "url" viene passato alla pagina PHP:

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

Esempi spiegato

Esempi di quanto sopra da una variabile di ingresso (URL) "get" metodo inviati:

  1. Rilevare la presenza di variabili di input di tipo "URL" "GET"
  2. Se esiste la variabile di ingresso, la sua purificazione (rimuovendo caratteri non validi), e memorizzarlo nella variabile $ url

Se la variabile di ingresso è una stringa come questa: "http://www.ruaanoob.com/", la variabile $ url dopo la purificazione è il seguente:



Una pluralità di filtro di ingresso

Forme spesso costituiti da più campi di input. Per evitare filter_var o filter_input funzione chiamata più volte, si può utilizzare il filter_var_array filter_input_array o funzione.

In questo caso, usiamo filter_input_array () per filtrare tre variabili GET. Ricevuto variabili GET è un nome, un'età e un indirizzo 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("输入正确");
}
?>

Esempi spiegato

L'esempio precedente ha tre variabili di ingresso (nome, età ed e-mail) trasmessi attraverso il metodo "GET":

  1. Impostare un array che contiene i nomi di variabili di input utilizzati per specificare le variabili di input e filtro
  2. () Funzione, i parametri di input, tra cui le variabili GET e solo impostare filter_input_array chiamata serie
  3. Rilevazione $ risultato "età" variabile e variabile di ingresso "e-mail" è illegale. (Se ci sono di ingresso illegale, utilizzare la funzione filter_input_array () dopo, la variabile di ingresso è FALSE.)

filter_input_array () Il secondo argomento della funzione può essere un array o un singolo ID filtro.

Se il parametro è un singolo ID filtro, il filtro specificato filtrerà tutti i valori della matrice di input.

Se questo parametro è un array, l'array deve rispettare le seguenti regole:

  • Deve essere un array associativo contenente una variabile di ingresso è una chiave array (come variabile di ingresso "età")
  • Il valore di questo array deve essere un ID di filtro, o le disposizioni del filtro, le bandiere e gli array opzioni

Usa filtro Richiamata

Utilizzando i filtri FILTER_CALLBACK, è possibile chiamare una funzione personalizzata, usarlo come un filtro da utilizzare. Così, abbiamo il controllo completo sul filtraggio dei dati.

È possibile creare la propria funzione personalizzata, oppure è possibile utilizzare un funzioni PHP esistenti.

Sarete pronti per utilizzare la funzione di filtro, in base alle opzioni disposizioni di cui metodo predeterminati. In un array associativo con le "opzioni" di nome.

Nel seguente esempio, si usa una funzione personalizzata di tutti "_" convertito in spazi:

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

$string = "www_w3big_com!";

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

Risultato del codice precedente è la seguente:

Esempi spiegato

I suddetti esempi tutti "_" in "".:

  1. Per creare un "_" è sostituito da "." Funzione
  2. funzione di chiamata filter_var (), che i parametri sono filtro FILTER_CALLBACK e matrice contenente la nostra funzione