WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Купить персональные IPV4 и IPV6 прокси

wp_referer_field() WP 2.0.4

Выводит/получает скрытое input поле формы со значением URI текущей страницы (referer).

Ссылка referer — это URI текущего запроса — $_SERVER['REQUEST_URI']. Атрибут name равен _wp_http_referer.

<input type="hidden" name="_wp_http_referer" value="/current-page" />

Хуков нет.

Возвращает

Строку. HTML тег <input>.

Использование

wp_referer_field( $echo );
$echo(логический)
true — вывести на экран. false — возвратить в переменную для дальнейшей обработки.
По умолчанию: true

Примеры

#1 Редирект обратно

// Есть операция
if ( $doaction ) {
	// делаем что-либо
}
// Нет операции, вернем пользователя обратно
elseif ( ! empty($_REQUEST['_wp_http_referer']) ) {
	 wp_save_redirect( $_REQUEST['_wp_http_referer'] );
	 exit;
}

#2 Добавим скрытое поле _wp_http_referer и проверим его

Добавим в нашу форму скрытое поле _wp_http_referer и затем проверим это поле, чтобы убедится, что запрос пришел именно с нужной нам страницы. Пусть, страница с формой имеет УРЛ: /my-page, тогда:

<form action="/proverka" method="post">
	... другие поля формы ...
	<?php wp_referer_field() ?>
	... кнопка отправки формы ...
</form>

wp_referer_field() выведет:

<input type="hidden" name="_wp_http_referer" value="/my-page" />

Теперь, после того как мы отправим данные они уйдут на страницу /proverka, где мы сможет проверить поле _wp_http_referer так:

if( $_POST['_wp_http_referer'] === '/my-page' ){
	// Проверка пройдена, делаем что-то с данными
}
else {
	// Проверка не пройдена!
}

Список изменений

С версии 2.0.4 Введена.

Код wp referer field: wp-includes/functions.php WP 5.2.2

<?php
function wp_referer_field( $echo = true ) {
	$referer_field = '<input type="hidden" name="_wp_http_referer" value="' . esc_attr( wp_unslash( $_SERVER['REQUEST_URI'] ) ) . '" />';

	if ( $echo ) {
		echo $referer_field;
	}
	return $referer_field;
}

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

Из метки: form (функции формы)

Еще из метки: nonce (защита)

Еще из раздела: Защита

Danya 50
Программист фрилансер. Кодингом на PHP занимаю с 2008 года.
Редакторы: Kama 7573
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться