• Руслан
  • 23 Янв 2009
  • Рубрика: PHP

Фильтрация данных. Активные фильтры.

В предыдущем посте на тему проверки вводимых значения я рассказывал о том как можно просто проверить вводимые данные с помощью тех средств, которые предоставляет в распоряжение программиста язык PHP. Сегодня я продолжу эту тему и расскажу о том как можно создавать “активные” фильтры, т.е. те фильтры которые не просто проверяют введенное значение, но и приводят его, в случае необходимости, к приемлемому виду…

Изменение данных.

При необходимости вводимые данные могут автоматически “подчищаться”. Рассмотрим это на примере обработчика формы…

<?php
if(!filter_has_var(INPUT_POST, "site_url"))
{
echo("Это поле формы не было заполнено");
}
else
{
$site_url = filter_input(INPUT_POST,
"site_url", FILTER_SANITIZE_URL);
}
?>

В вышеприведенном коде мы во-первых убеждаемся в том, что поле формы было заполнено и после этого пропускаем его через фильтр FILTER_SANITIZE_URL, который удаляет из строки запрещенные символы.

Одновременная проверка сразу нескольких полей формы.

Почти всегда форма состоит из более чем одного поля ввода. Нужно ли в таком случае вызывать функции filter_var или filter_input для каждого поля отдельно?

Нет. И в следующем примере мы увидим как три переменные $_GET['name'], $_GET['age'] и $_GET['email'] проверяются одним вызовом функции filter_input_array()

$filters = array
(
"name" => array
(
“filter”=>FILTER_SANITIZE_STRING
),
“age” => array
(
“filter”=>FILTER_VALIDATE_INT,
“options”=>array
(
“min_range”=>16,
“max_range”=>120
)
),
“email”=> FILTER_VALIDATE_EMAIL,
);
$result = filter_input_array(INPUT_GET, $filters);

В примере создается массив $filters, который определяет имена переменных для проверки, выбранные для них фильтры и дополнительные опции (такие как допустимый интервал для целых чисел и т.п.). После этого вызывается функция filter_input_array() которая и сделает за нас всю работу. Да, результаты проверки сохраняются в хеше $result, ключами которого будут имена проверенных переменных (например $result['email'] будет равно true если введенное в поле значение по результатам проверки окажется валидным емейлом и false в противном случае).

Если вам понравился этот сайт, вы можете подписаться на rss

Отзывы: 2 комментария

  • Bлacть
    06 Апр 2009 в 17:46

    На самом деле очень прикольный блог! Спасибо огромное и… разумеется, пишите еще!

  • Владимир Крылов
    08 Апр 2009 в 15:07

    Привет спамерам! Этот блог защищен плагином Parasite Eliminator, спамить его бесполезно.

Ваш отзыв

Имя (*)

E-mail (*)

Сайт

Сообщение

Архивы

Реклама

службы мониторинга серверов