PHP HTTP Referrer - PullRequest
       35

PHP HTTP Referrer

8 голосов
/ 15 марта 2011

У меня есть страница, которая принимает сообщения POST с удаленного сайта. Я хотел бы определить домен, из которого поступают эти сообщения. Я понимаю, что это можно подделать, но это лучше, чем ничего. Я попытался получить доступ к переменной HTTP_REFERER, но она просто возвращает ноль.

Страница принимает сообщения POST из таких источников, как PayPal (мгновенные уведомления о платежах) и других платежных шлюзов.

Как я могу получить реферальный звонок?

Ответы [ 4 ]

9 голосов
/ 15 марта 2011

Вы правильно написали Referer.Должно быть:

$_SERVER['HTTP_REFERER']
6 голосов
/ 15 марта 2011
$_SERVER['HTTP_REFERER'] 

с одним R, попробуйте var_dump ($ _ SERVER) для получения дополнительной информации.

2 голосов
/ 15 января 2014

Это работает для меня довольно хорошо:

https://stackoverflow.com/a/17958676/2635701

<form action="http://www.yourdomain.com/subscribe" 
   method="POST" 
   onsubmit=
      "document.getElementById('www.yourdomain.com.referrer').value=window.location;" >
    <!-- hidden input for field starts with a domain registered by you 
    just so that it's unlikely to clash with anything else on the page -->
    <input type="hidden" id="www.yourdomain.com.referrer" name="referrer"/>
    your email: <input name="email" type="text"/>
    ... rest of form ...
    <input type="submit" value="Subscribe"/>
</form>
2 голосов
/ 15 марта 2011

Вы правы в том, что реферер легко подделать, однако есть лучшее решение.Прочитайте документацию ipn , в которой упоминаются механизмы проверки.Никогда не доверяй пользователю.

...