Skip to content
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

Регистрирует не валидную переменную и возвращает массив, содержащий сведения обо всех зарегистрированных на данный момент подобных переменных.

Clone this wiki locally