Как я могу проверить, находится ли данный URL в определенном домене? PHP - PullRequest
2 голосов
/ 19 января 2012

Как я могу проверить, находится ли данный URL в определенном домене, скажем, пользователь регистрируется для запросов API от:

http://domain.com

Затем он делает запрос от:

http://domain.com/script.ext?var=foo //this should validate true

http://example.com/script.ext?var=foo //this should validate false

http://www.domain.com/script.ext?var=foo //this should validate true also

Заранее спасибо

Ответы [ 3 ]

13 голосов
/ 19 января 2012

Использование parse_url():

if ( 'domain.com' == parse_url( $url, PHP_URL_HOST ) )
{
    // do something awesome
}
1 голос
/ 19 января 2012

Я не уверен, правильно ли я понимаю вашу проблему, но если вы хотите увидеть, откуда исходит запрос, вы можете использовать поле «http referer», которое доступно в заголовке http.(http://en.wikipedia.org/wiki/HTTP_referer)

Я не очень хорош в php, но я думаю, что вы можете использовать что-то вроде $ _SERVER ['HTTP_REFERER'], чтобы получить значение. Значение устанавливается автоматически, поэтому вам просто нужно прочитатьit.

Допустим, вы называете страницу "www.domain.com/page.php", щелкая ссылку на странице "www.domain.com/referer.php", тогда запрос будет иметьполе реферера "http://www.domain.com/referer.php" когда вы читаете $ _SERVER ['HTTP_REFERER'] внутри" www.domain.com/page.php".

Если вы запрашиваете "www.domain.com/page.php"непосредственно введя его в браузер, вы получите referer = null, и если вы нажмете на ссылку www.anotherdomain.com, которая ведет на «www.domain.com/page.php», вы получите referer = http://www.anotherdomain.com.

Тогда вам просто нужно сравнить доменную часть этого значения с доменом / доменами, которые вы разрешаете.

0 голосов
/ 19 января 2012

Может быть, вы можете проверить функцию parse_url .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...