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. Эта функция помогает повысить безопасность ваших форм и обеспечивает большую точность в обработке данных.