Как лучше всего определить реферера в WordPress?

8 сент. 2013 г., 12:36:19
Просмотры: 18.3K
Голосов: 3

Я ищу специфичный для WordPress способ определить любого реферера. Есть идеи? Я знаю, как это сделать на чистом PHP, но хочу узнать, есть ли специальная WP-функция для этого?

РЕДАКТИРОВАНО: вот что я пытаюсь протестировать =>

$referer = wp_get_referer();
// Проверяем, содержит ли реферер ссылку на wordpress.org
if (strpos($referer, 'http://wordpress.org') !== false) echo 'вы пришли с wordpress.org';
0
Все ответы на вопрос 3
2

Лучший способ проверить реферер зависит от того, что именно вы пытаетесь сделать. Вы можете использовать wp_get_referer() или wp_get_original_referer(), но если вы хотите проверить реферер из соображений безопасности, вам определенно следует использовать другие функции, такие как check_admin_referer(), check_ajax_referer(), wp_referer_field() или другие функции WordPress, связанные с Nonces.

8 сент. 2013 г. 13:03:20
Комментарии

спасибо, я знаком с AJAX и функциями безопасности, уже использовал их несколько раз, но не знал, что WP может проверять referer в URL для SEO => пытаюсь реализовать базовую проверку

JMau JMau
8 сент. 2013 г. 13:11:38

я отредактировал свою тему, чтобы вопрос был более точным

JMau JMau
8 сент. 2013 г. 13:14:13
5

Вы можете получить его с помощью функций wp_get_referer() и wp_get_original_referer().

8 сент. 2013 г. 12:38:43
Комментарии

Хорошо, спасибо, ожидал больше деталей (что-то вроде вики) -> но такова эта функция

JMau JMau
8 сент. 2013 г. 12:43:13

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

Vinod Dalvi Vinod Dalvi
8 сент. 2013 г. 12:44:27

раньше не приходилось использовать эти функции, попробую.

JMau JMau
8 сент. 2013 г. 12:49:21

Разница между двумя функциями заключается в том, что если страница отправляет форму на саму себя, wp_get_referer() вернет false, а wp_get_original_referer() вернет исходный реферер. Однако обратите внимание, что обе используют $_SERVER['HTTP_REFERER'], который, как сказано в документации PHP, "Не все пользовательские агенты его устанавливают, а некоторые предоставляют возможность изменять HTTP_REFERER как функционал. Вкратце, ему нельзя полностью доверять." @JMau

gmazzap gmazzap
8 сент. 2013 г. 18:57:29

@G.M. спасибо. Я знаю, что определение UA имеет серьезные недостатки!

JMau JMau
9 сент. 2013 г. 11:40:14
6

используйте wp_get_referer(); для получения реферера из '_wp_http_referer', HTTP реферера или текущей страницы. Для получения дополнительной информации читайте кодекс

8 сент. 2013 г. 12:39:22
Комментарии

Ваш ответ отличается от моего?

Vinod Dalvi Vinod Dalvi
8 сент. 2013 г. 12:42:03

вы ответили одновременно

JMau JMau
8 сент. 2013 г. 12:42:54

не сильно, но мы оба писали ответ в одно и то же время, когда я собирался нажать кнопку отправки ответа, появилось уведомление, но я опоздал, нажал и ответ был опубликован.

Anjum Anjum
8 сент. 2013 г. 12:44:45

@JMau Я думал, что ответил минуту назад.

Vinod Dalvi Vinod Dalvi
8 сент. 2013 г. 12:44:55

@Anjum Все в порядке.

Vinod Dalvi Vinod Dalvi
8 сент. 2013 г. 12:45:49

@VinodDalvi нет, всего на 5-10 секунд раньше моего.

Anjum Anjum
8 сент. 2013 г. 12:45:51
Показать остальные 1 комментариев