QueryPost


QueryPost предоставляет статические методы для получения параметров текущего POST-запроса.

Поддерживает

  • проверку наличия параметра
  • получение значения с экранированными HTML-символами
  • получение исходного значения без обработки
  • получение всех параметров POST-запроса

Создавать экземпляр класса не нужно.

Быстрый старт

php
if (QueryPost::isset('title')) {
    $title = QueryPost::getValue('title');
}

Проверка параметра

isset($key): bool

Возвращает true, если параметр присутствует в POST-запросе:

php
if (QueryPost::isset('publish')) {
    // Параметр publish передан.
}

Проверяйте наличие параметра перед вызовом getOriginalValue().

Получение значения

getValue($key): ?string

Возвращает значение с экранированными специальными HTML-символами:

php
$title = QueryPost::getValue('title');

if ($title !== null) {
    echo '<h1>' . $title . '</h1>';
}

Символы <, >, &, одинарные и двойные кавычки преобразуются в HTML-сущности.

Если параметр отсутствует, метод возвращает null.

Метод не проверяет назначение и формат значения. Числовые параметры нужно дополнительно приводить к нужному типу:

php
$page = (int) QueryPost::getValue('page');

Все обработанные значения

getPostArray(): array

Возвращает все параметры POST-запроса с экранированными HTML-символами:

php
$values = QueryPost::getPostArray();

$title = $values['title'] ?? '';
$content = $values['content'] ?? '';

Если POST-запрос не содержит параметров, метод возвращает пустой массив.

Метод предназначен для плоского набора строковых значений. Если форма передаёт массивы, используйте getOriginalPostArray() и обрабатывайте каждый элемент отдельно.

Исходные значения

getOriginalValue($key): mixed

Возвращает значение параметра без обработки:

php
if (QueryPost::isset('content')) {
    $content = QueryPost::getOriginalValue('content');
}

Если вызвать метод для отсутствующего параметра, PHP сформирует предупреждение о неизвестном ключе. Поэтому сначала используйте isset().

getOriginalPostArray(): array

Возвращает исходный массив POST-запроса:

php
$values = QueryPost::getOriginalPostArray();

Значения возвращаются без экранирования и дополнительной проверки.

Параметры-массивы

Для параметров, переданных как массив, используйте исходное значение и проверяйте его тип:

php
$categories = [];

if (QueryPost::isset('categories')) {
    $value = QueryPost::getOriginalValue('categories');
    $categories = is_array($value) ? $value : [];
}

Каждый элемент массива нужно проверять и обрабатывать отдельно.

Важные замечания

  • класс используется статически
  • getValue() возвращает null, если параметр отсутствует
  • getValue() экранирует HTML-символы, но не проверяет формат значения
  • getValue() и getPostArray() предназначены для строковых параметров
  • методы с Original в названии возвращают данные без обработки
  • перед вызовом getOriginalValue() проверяйте параметр через isset()
  • все данные POST-запроса считаются пользовательским вводом и требуют проверки в зависимости от назначения