| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Определить, с какого домена запрашивается скрипт |
| Автор: begin 29.6.2011, 15:48 |
| Есть основной сайт "А". К нему можно подключать по заявке другие домены "Б". После внесения на их стороне соответствующих А-записей и внесения нужных настроек на стороне сайта "А" получается следующее: набираем в адресной строке адрес сайта "Б", а видим содержимое сайта "А". Такое часто используется при подключении сайтов к партнерским программам интернет-магазинов и прочих сервисов. Но вот задача: как в скриптах сайта "А" (а ведь именно и только они исполняются при обращении и к А и к Б) определить с какого домена происходит обращение? С помощью $_SERVER['HTTP_REFERER'] не получается, т.к. если просто набрать адрес сайта Б, то значение этой переменной еще пусто. Подскажите решение |
| Автор: ayax2005 29.6.2011, 15:55 |
| HTTP_REFERER - может содержать входящий линк. HTTP_HOST - содержит исполняющий хост. Тут всё будет зависить от того, как вы запускаете скрипты из А -: Если это TDS и вы делаете редирект - то HTTP_REFERER будет содержать Б, вне зависимости от того, откуда пришли на Б. Если это партнёрка, А и Б расположены на одном сервере и вы инклюдите скрипты А, то используйте HTTP_HOST. Если ваши домены припаркованы и вы подключаетесь к А через XML или ещё как - так и передавайте в эти скрипты HTTP_HOST. |
| Автор: begin 29.6.2011, 16:17 |
| А - это наш сервер, Б и прочи - чужие серверы. Сейчас попробовал $_SERVER["HTTP_HOST"] и $_SERVER["SERVER_NAME"]. Оба варианта работают правильно - выдают домен, видимый в адресной строке. Какой из вариантов лучше использовать? Наверное, $_SERVER["SERVER_NAME"], т.к. его нельзя подделать в отличие от $_SERVER["HTTP_HOST"] ? |
| Автор: ayax2005 29.6.2011, 16:24 |
| на счёт того, можно ли подделать - не интересовался. В принципе, вам, как ПП-серверу, в общем-то всё равно - ваша задача получить траф, а откуда, никакой разницы по большому счёту - вы кроме контента никакой серкертной информации не передаёте. При желании можете по md5 проверять какой-нить ключик, в принципе. В самих перменных почти не отличия, кроме того, что server_host будет содержать порт, если он не 80. Поэтому что улчше использовать - решайте сами в силу реализации. |
| Автор: begin 29.6.2011, 16:49 |
| Мне, как ПП-серверу, данные все таки важны. Необходимо отслеживать регистрации с домена "Б", а также подключать соответствующие ему настройки дизайна сайта. Буду пробовать с $_SERVER["SERVER_NAME"] Благодарю за помощь |