Функция WP_REFERER_FIELD() в WordPress: справка и примеры использования

WP_REFERER_FIELD() │ WP 2.0.4

Функция WP_REFERER_FIELD() позволяет отображать или получать скрытое поле ввода для формы, где хранится адрес текущей страницы. Это полезно для проверки, откуда пришёл пользователь.

Что такое Referer?

Referer (реферер) — это адрес (URI) текущей страницы, с которой поступил запрос. В PHP он доступен через переменную $_SERVER['REQUEST_URI']. Например, если вы используете эту функцию, скрытое поле будет выглядеть так:

Возвращаемое значение

Функция возвращает строку, содержащую HTML-разметку для поля реферера.

Использование функции

Функция вызывается следующим образом:

wp_referer_field( $display );
  • $display (boolean): Указывает, нужно ли выводить поле на экран (true) или вернуть его в виде строки (false). По умолчанию стоит true.

Примеры использования

Пример 1: Обратное перенаправление

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

if ( $doaction ) {
    // Выполните какое-то действие
} elseif ( ! empty($_REQUEST['_wp_http_referer']) ) {
    wp_save_redirect( $_REQUEST['_wp_http_referer'] );
    exit;
}

Пример 2: Добавление скрытого поля и его проверка

Рассмотрим, как добавить скрытое поле _wp_http_referer в нашу форму и проверить, пришёл ли запрос с нужной страницы. Допустим, у нас есть URL /my-page.

Код формы:

... другие поля ... ... кнопка отправки ...

После вызова wp_referer_field() будет выведено следующее:

Код для check.php:

if( $_POST['_wp_http_referer'] === '/my-page' ){
    // Проверка успешна! Обрабатываем данные здесь.
} else {
    // Проверка не удалась!
}

Код функции

Вот как выглядит реализация функции wp_referer_field() в файле wp-includes/functions.php:


function wp_referer_field( $display = true ) {
$request_url = remove_query_arg( '_wp_http_referer' );
$referer_field = '';

if ( $display ) {
    echo $referer_field;
}

return $referer_field;

}

Связанные функции

Функции для форм

  • checked()
  • disabled()
  • form_option()
  • selected()
  • wp_readonly()

Nonce (защита безопасности)

  • check_admin_referer()
  • check_ajax_referer()
  • wp_create_nonce()
  • wp_nonce_ays()
  • wp_nonce_field()
  • wp_nonce_url()
  • wp_verify_nonce()

Безопасность

  • sanitize_url()
  • wp_generate_password()
  • wp_hash()
  • wp_hash_password()
  • wp_http_validate_url()
  • wp_kses_post()
  • wp_salt()
  • wp_sanitize_redirect()

Теперь вы знаете, как использовать функцию WP_REFERER_FIELD() для обработки рефереров в WordPress. Эта функция помогает повысить безопасность ваших форм и обеспечивает большую точность в обработке данных.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *