-
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
Регистрирует не валидную переменную и возвращает массив, содержащий сведения обо всех зарегистрированных на данный момент подобных переменных.
Не получается разобраться? Спросите в чате!
- Быстрый старт
- Плагины