Latest web development tutorials
×

PHP curso

PHP curso PHP breve introdução PHP instalar PHP gramática PHP variável PHP echo/print PHP Tipos de dados PHP constante PHP corda PHP operadores PHP If...Else PHP Switch PHP ordem PHP Classificação de uma matriz PHP superglobais PHP While circulação PHP For circulação PHP função PHP Variáveis ​​mágicas PHP namespaces PHP Object-Oriented

PHP formulário

PHP formulário PHP Autenticação de formulários PHP formulário - campos obrigatórios PHP formulário - -mail de verificação e URL PHP instância de formulário completo PHP $_GET variável PHP $_POST variável

PHP Tutorial avançado

PHP arrays multidimensionais PHP data PHP conter PHP arquivo PHP Carregar arquivo PHP Cookie PHP Session PHP E-mail PHP segurança E-mail PHP Error PHP Exception PHP filtro PHP Filtro avançado PHP JSON

PHP 7 novos Recursos

PHP 7 novos Recursos

PHP banco de dados

PHP MySQL breve introdução PHP MySQL conexão PHP MySQL Criação de um banco de dados PHP MySQL Criar uma tabela de dados PHP MySQL inserir dados PHP MySQL Inserir dados múltiplos PHP MySQL instruções preparadas PHP MySQL ler dados 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 introdução AJAX PHP AJAX banco de dados AJAX XML AJAX busca em tempo real AJAX RSS Reader AJAX voto

PHP manual de referência

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 Processamento de imagem PHP RESTful

filtro de PHP

filtro de PHP é usada para validar e filtrar dados a partir de fontes inseguras, como a entrada do usuário.


O que é um filtro de PHP?

filtro de PHP é usada para validar e filtrar dados a partir de fontes inseguras.

Testar, validar e entrada do usuário filtro ou de dados personalizado é uma parte importante de qualquer aplicação Web.

extensão filtro de PHP é projetado para tornar os dados de filtragem mais fácil e rápido.


Por que usar um filtro?

Quase todos os aplicativos da Web são dependentes de insumos externos. Esses dados geralmente vêm de usuários ou outras aplicações (como os serviços web). Usando filtros, você pode garantir que as aplicações obter o tipo de entrada correta.

Você deve sempre filtragem de dados externos!

A filtragem de entrada é das questões mais importantes de segurança do aplicativo.

O que são dados externos?

  • Os dados de entrada de um formulário
  • bolinhos
  • dados de serviços da Web
  • Variáveis ​​de servidor
  • os resultados da consulta de banco de dados

Funções e Filtros

Para filtrar uma variável, use uma das seguintes funções de filtro:

  • filter_var () - para filtrar uma única variável por um filtro especificado
  • filter_var_array () - para filtrar múltiplas variáveis ​​pelos mesmos ou diferentes filtros
  • filter_input - Obter uma variável de entrada e filtrá-la
  • filter_input_array - Obtenha mais variáveis ​​de entrada, e pelos mesmos ou diferentes filtros para filtrá-los

No exemplo a seguir, usamos filter_var () função valida um inteiro:

<?php
$int = 123;

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

O código acima usa o filtro "FILTER_VALIDATE_INT" para filtrar a variável. Desde o inteiro é legítimo, para que a saída do código acima:

Se tentarmos usar uma variável não inteiro (como "123abc"), é a saída: "Integer não é válido".

Para obter uma lista completa das funções e filtros, visite o nosso Manual do PHP filtros de referência .


Validação e Saneantes

Há dois tipos de filtros:

Validando filtros:

  • Usado para validar a entrada do usuário
  • regras formato rígido (como a verificação de URL ou E-Mail)
  • Se for bem sucedido, o tipo de retorno esperado, se ele falhar para retornar FALSE

Saneantes filtros:

  • É usado para permitir ou proibir a cadeia de caracteres especificada
  • Sem regras de formato de dados
  • Sempre retornar a string

Opções e bandeiras

Opções e bandeiras são usadas para adicionar opções de filtragem adicionais para os filtros especificados.

Filtros diferentes têm diferentes opções e bandeiras.

No exemplo a seguir, usamos filter_var () e "min_range" e opção "max_range" para verificar um inteiro:

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

Como o código acima, como a opção relevante deve ser colocado em um array chamado "opções" em. Se um sinalizador não é necessário dentro da matriz.

Uma vez que o número inteiro é "300", que não está dentro do intervalo especificado, a saída do código acima será:

不是一个合法的整数

Para obter uma lista completa das funções e filtros, visite o nosso Manual do PHP filtros de referência . Você pode ver as opções disponíveis para cada filtro e bandeiras.


entrada de validação

Vamos tentar validar a entrada de um formulário.

Nós precisamos fazer a primeira coisa é para confirmar que os dados de entrada que estamos procurando.

Em seguida, usamos a função filter_input () para filtrar os dados inseridos.

No exemplo abaixo, a variável de entrada "email" é passado para a página 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";
	}
}
?>

Exemplos dos resultados acima referidos foram como se segue:

Exemplos explicou

O exemplo acima tem uma variável de entrada por (e-mail) "GET" método de transferência:

  1. Detectar a presença de "e-mail" tipo de variável de entrada "GET"
  2. Se houver uma variável de entrada para detectar se é um endereço de e-mail válido

entrada de purificação

Vamos tentar esclarecer vindo de uma URL formulário.

Primeiro de tudo, temos de confirmar que os dados de entrada que estamos procurando.

Então nós higienizar função de entrada filter_input dados ().

No exemplo abaixo, a variável de entrada "url" é passado para a página PHP:

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

Exemplos explicou

Exemplos do acima por uma variável de entrada (url) método "get" enviada:

  1. Detectar a presença de "url" variáveis ​​de entrada tipo "GET"
  2. Se existe a variável de entrada, a sua purificação (removendo caracteres ilegais), e armazená-lo na variável $ url

Se a variável de entrada é uma cadeia como este: "http://www.ruaanoob.com/", a variável $ url depois da purificação é a seguinte:



Uma pluralidade de filtro de entrada

Formas, muitas vezes consistem em vários campos de entrada. Para evitar função filter_var ou filter_input chamado repetidamente, podemos usar o filter_var_array ou função filter_input_array.

Neste caso, usamos filter_input_array () para filtrar três variáveis ​​GET. Recebeu variáveis ​​GET é um nome, uma idade e um endereço de 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("输入正确");
}
?>

Exemplos explicou

O exemplo acima tem três variáveis ​​de entrada (nome, idade e e-mail) transmitidos através do método "GET":

  1. Configurar uma matriz que contém os nomes das variáveis ​​de entrada utilizado para especificar as variáveis ​​de entrada e filtro
  2. () Função, parâmetros de entrada, incluindo variáveis ​​GET e apenas definir filter_input_array chamada matriz
  3. Detecção $ result variável "idade" e "e-mail" variável de entrada é ilegal. (Se não houver entrada ilegal, depois use a função filter_input_array (), a variável de entrada é FALSE).

filter_input_array () O segundo argumento para a função podem ser uma matriz ou um único ID de filtro.

Se o parâmetro for um único ID de filtro, em seguida, o filtro especificado irá filtrar todos os valores da matriz de entrada.

Se este parâmetro é uma matriz, a matriz deve respeitar as seguintes regras:

  • Deve ser um array associativo contendo uma variável de entrada é uma chave de matriz (tal como "idade" de entrada)
  • O valor dessa matriz deve ser um ID de filtro, ou as disposições do filtro, bandeiras e opções de matrizes

Use filtro de retorno de chamada

Ao usar filtros FILTER_CALLBACK, você pode chamar uma função personalizada, usá-lo como um filtro para usar. Assim, temos controle total sobre a filtragem de dados.

Você pode criar sua própria função personalizada, ou você pode usar um PHP funções existentes.

Você estará pronto para usar a função de filtro, de acordo com as opções disposições especificadas método pré-determinados. Em uma matriz associativa com o nome de "opções".

No exemplo a seguir, usamos uma função personalizada de todos "_" convertidos em espaços:

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

$string = "www_w3big_com!";

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

O resultado do código acima é o seguinte:

Exemplos explicou

Os exemplos acima todos "_" para "".:

  1. Para criar um "_" é substituído por "." Função
  2. função de chamada filter_var (), que parâmetros são filtro FILTER_CALLBACK e array contendo a nossa função