-
Notifications
You must be signed in to change notification settings - Fork 0
Input
Bashka edited this page Apr 21, 2017
·
2 revisions
Плагин предоставляет механизмы фильтрации и верификации данных.
- INPUT_* (см. filter_input) - правила фильтрации и верификации входных данных страницы
// Файл article/view/index.php $sp = [ 'input' => [ INPUT_GET => [ // Фильтр параметров запроса 'id' => [ // Верификация параметра $_GET['id'] FILTER_SANITIZE_NUMBER_INT, // Фильтр целых чисел [ // Верификатор положительного числа 'filter' => FILTER_VALIDATE_INT, 'options' => ['min_range' => 1], 'comment' => 'Идентификатор должен быть положительным, целым числом' ], ], ], ], ... ]; ...
- filters - фильтры пользователя в формате
имя => функция-фильтр
// Файл config.php [ 'input' => [ 'filters' => [ 'id' => function($value){ $value = filter_var($value, FILTER_SANITIZE_NUMBER_INT); return filter_var($value, FILTER_VALIDATE_INT, [ 'options' => ['min_range' => 1] ]); }, ], ], ... ]
- shredder - функция-обработчик нарушения правил доступа к странице. Функции передается единственный параметр - массив комментариев о причинах нарушения валидности. По умолчанию используется функция, завершающая исполнение и возвращающая ответ с кодом 400
// Файл config.php [ 'input' => [ 'shredder' => function(array $invalid){ foreach($invalid as $name => $comments){ echo $name . ': ' . var_export($comments, true) . '<br/>'; } http_response_code(400); exit; }, ], ... ]
Важно: функции-верификаторы должны возвращать false
, если верификация не пройдена.
input_filter_build(mixed $config, [array $customFilters]) : array
Функция-фабрика, формирующая фильтр для вызова filter_var или filter_input.
list($filter, $options, $flags, $comment) = input_filter_build($sp['input'][INPUT_GET]['id'][0], $sp['input']['filters']); $id = filter_var($_GET['id'], $filter, [ 'options' => $options, 'flags' => $flags, ]);
input_invalid_register(string $name, [string $comment]) : array
Регистрирует не валидную переменную и возвращает массив, содержащий сведения обо всех зарегистрированных на данный момент подобных переменных.
Не получается разобраться? Спросите в чате!
- Быстрый старт
- Плагины