Latest web development tutorials
×

PHP курс

PHP курс PHP Краткое введение PHP устанавливать PHP грамматика PHP переменная PHP echo/print PHP Типы данных PHP постоянная PHP строка PHP операторы PHP If...Else PHP Switch PHP массив PHP Сортировка массива PHP Суперглобальные PHP While циркуляция PHP For циркуляция PHP функция PHP Магические Переменные PHP Пространства имен PHP Объектно-ориентированный

PHP форма

PHP форма PHP Аутентификация с помощью форм PHP форма - Обязательные для заполнения поля PHP форма - Проверка электронной почты и URL PHP Полный экземпляр формы PHP $_GET переменная PHP $_POST переменная

PHP Расширенный учебник

PHP Многомерные Массивы PHP дата PHP содержать PHP файл PHP Загрузка файлов PHP Cookie PHP Session PHP E-mail PHP безопасности E-mail PHP Error PHP Exception PHP фильтр PHP Расширенный фильтр PHP JSON

PHP 7 Новые возможности

PHP 7 Новые возможности

PHP база данных

PHP MySQL Краткое введение PHP MySQL подключение PHP MySQL Создание базы данных PHP MySQL Создание таблицы данных PHP MySQL Вставка данных PHP MySQL Вставка нескольких данных PHP MySQL Подготовленные выражения PHP MySQL Считывание данных 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 Краткое введение AJAX PHP AJAX база данных AJAX XML AJAX Поиск в реальном времени AJAX RSS Reader AJAX голосование

PHP справочное руководство

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 обработка изображений PHP RESTful

PHP фильтр

PHP фильтр используется для проверки и фильтрации данных из ненадежных источников, таких как ввод данных пользователем.


Что такое PHP фильтр?

PHP фильтр используется для проверки и фильтрации данных из ненадежных источников.

Тестирование, проверка и пользовательский ввод фильтра или пользовательских данных является важной частью любого веб-приложения.

Расширение PHP фильтр предназначен для фильтрации данных сделать проще и быстрее.


Зачем использовать фильтр?

Почти все веб-приложения зависят от внешних входов. Эти данные, как правило, приходят от пользователей или других приложений (например, веб-сервисов). С помощью фильтров вы можете убедиться, что приложения получить правильный тип входного сигнала.

Вы должны всегда внешняя фильтрация данных!

Фильтрация ввода является наиболее важные вопросы безопасности приложений.

Что такое внешние данные?

  • Входные данные из формы
  • печенье
  • Данные веб-сервисы
  • Переменные сервера
  • Результаты запросов к базам данных

Функции и фильтры

Для фильтрации переменной, используйте одну из следующих функций фильтра:

  • filter_var () - для фильтрации одну переменную с помощью определенного фильтра
  • filter_var_array () - для фильтрации множества переменных одними и теми же или различными фильтрами
  • filter_input - Получить одну входную переменную и фильтровать
  • filter_input_array - получить больше входных переменных, и одними и теми же или различными фильтрами для их фильтрации

В следующем примере мы используем filter_var () функция проверяет целое:

<?php
$int = 123;

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

Приведенный выше код использует "FILTER_VALIDATE_INT" фильтр для фильтрации переменной. Так как целое число является законным, так что приведенные выше выходной код будет:

Если мы попытаемся использовать переменную нецелым (например, "123abc"), выводится: "Integer не действителен".

Для получения полного списка функций и фильтров, посетите наш PHP Filter Reference Manual .


Проверка и дезинфекцию

Есть два вида фильтров:

Проверка фильтров:

  • Используется для проверки пользовательского ввода
  • правила строгий формат (например, URL или E-Mail проверки)
  • В случае успеха, ожидаемый тип возвращаемого значения, если он не возвращает FALSE

Дезинфекции фильтры:

  • Он используется, чтобы разрешить или запретить указанную строку символов
  • Нет правил формата данных
  • Всегда возвращает строку

Параметры и флаги

Функции и флаги используются для добавления дополнительных параметров фильтрации для указанных фильтров.

Различные фильтры имеют различные варианты и флаги.

В следующем примере мы используем filter_var () и "min_range" и опцию "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("不是一个合法的整数");
}
else
{
	echo("是个合法的整数");
}
?>

Как приведенный выше код, как соответствующий вариант должен быть помещен в массив под названием "варианты" в. Если флаг не требуется, в пределах массива.

Так как целое число, "300", это не находится в пределах указанного диапазона, выход кода выше:

不是一个合法的整数

Для получения полного списка функций и фильтров, посетите наш PHP Filter Reference Manual . Вы можете увидеть опции, доступные для каждого фильтра и флагов.


Проверка ввода

Давайте попробуем проверки ввода из формы.

Нам нужно сделать первым делом, чтобы подтвердить, что входные данные, которые мы ищем.

Затем мы используем функцию filter_input () для фильтрации данных, введенных.

В приведенном ниже примере, входная переменная "электронная почта" передается на страницу 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";
	}
}
?>

Примеры приведенных выше результатов были следующими:

Примеры объяснил

В приведенном выше примере имеет входную переменную по электронной почте) ( "GET" метод передачи:

  1. Обнаружение присутствия типа "электронная почта" входной переменной "GET"
  2. Если есть входная переменная для определения, является ли он действительный адрес электронной почты

вход Очистка

Давайте попробуем выяснить исходя из форм URL.

Прежде всего, нам нужно подтвердить, что входные данные, которые мы ищем.

Тогда мы санировать функцию ввода данных filter_input ().

В приведенном ниже примере, переменная ввода "URL" передается на страницу PHP:

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

Примеры объяснил

Примеры выше по одной входной переменной (URL) "GET" метод отправлено:

  1. Обнаружение присутствия типа "URL" входными переменными "GET"
  2. Если входная переменная существует, то его очистка (удаление недопустимых символов), и будет хранить его в переменной $ URL-адрес

Если входная переменная является строкой, следующим образом: "http://www.ruaanoob.com/", переменная $ URL после очистки выглядит следующим образом:



Множество входного фильтра

Формы часто состоят из нескольких полей ввода. Чтобы избежать filter_var или filter_input функцию с именем неоднократно, мы можем использовать filter_input_array filter_var_array или функцию.

В этом случае мы используем filter_input_array () функцию для фильтрации трех переменных GET. Полученное переменные GET является имя, возраст и адрес электронной почты:

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

Примеры объяснил

В приведенном выше примере имеет три входных переменных (имя, возраст и электронная почта), переданные через "GET" метод:

  1. Настройка массив, содержащий имена входных переменных, используемых для задания входных переменных и фильтр
  2. () Функция, входные параметры, в том числе GET переменные и просто набор вызовов массив filter_input_array
  3. Обнаружение $ результат переменной "возраст" и "электронная почта" входной переменной является незаконным. (Если есть незаконный ввод, после того, как функция использования filter_input_array (), входной переменной FALSE.)

filter_input_array () Второй аргумент функции может быть массивом или один фильтр ID.

Если параметр одного фильтра ID, то указанный фильтр будет фильтровать все значения входного массива.

Если этот параметр является массивом, массив должен соответствовать следующим правилам:

  • Должно быть ассоциативный массив, содержащий входной переменной ключа массива (например, "возраст" входной величины)
  • Значение этого массива должен быть идентификатор фильтра или положения фильтра, флаги и опции массивов

Использование фильтра Обратный звонок

При использовании FILTER_CALLBACK фильтров, вы можете вызвать пользовательскую функцию, использовать его в качестве фильтра для использования. Таким образом, мы имеем полный контроль над фильтрацией данных.

Вы можете создать свою собственную функцию, или вы можете использовать существующие функции PHP.

Вы будете готовы использовать функцию фильтра, в соответствии с положениями, указанными вариантами заранее заданным способом. В ассоциативном массиве с именем "варианты".

В следующем примере мы используем пользовательскую функцию всех "_" преобразуется в пробелы:

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

$string = "www_w3big_com!";

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

Результат приведенного выше кода выглядит следующим образом:

Примеры объяснил

Приведенные выше примеры все "_" в "".:

  1. Для того, чтобы создать "_" заменяется на "." Функция
  2. filter_var () Вызов функции, какие параметры FILTER_CALLBACK фильтр и массив, содержащий нашу функцию