Реклама на сайте Advertise with us

Определение рефа, php.

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 19/06/05 в 19:29       Ответить с цитатойцитата 

Есть 2 страницы, первая - заранее неизвесно где, с нее делается запрос на ифу ко второй странице на другом серваке (в простейшем случае - $inf=file("url_page2?param1..&paramN"), все бы замечательно но нужно на второй странице определить адрес первой страницы, т.е. откуда собственно запрос был; в $_SERVER["HTTP_REFERER"] при таком подходе ничего нет, инклюд использовать не желательно. Какие еще варианты есть решения данного вопроса?

0
 

programmer

С нами с 08.12.02
Сообщения: 7610
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 19/06/05 в 19:47       Ответить с цитатойцитата 

писать в счетчик(файл) на второй странице?

крипта на ByBit

0
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 19/06/05 в 19:50       Ответить с цитатойцитата 



Да без разницы что делать, важно определить icon_smile.gif К примеру выдача зависит от того, с какой страницы пришел запрос.

0
 

programmer

С нами с 08.12.02
Сообщения: 7610
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 19/06/05 в 19:56       Ответить с цитатойцитата 

а это $HTTP_REFERER - тоже пустое?

крипта на ByBit

1
 



С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096

Ссылка на сообщениеДобавлено: 19/06/05 в 19:57       Ответить с цитатойцитата 

я не понял, ты имеешь возможность изменять первую страницу? если да, то в параметры просто добавить &from=page1. по ней и определять. если нет такой возможности - то можно определить по ип сервера, который делает запрос - $_SERVER['REMOTE_ADDR']. Вот вроде бы написано в мане еще, что $_SERVER['REMOTE_HOST'] должен отдавать имя хоста, откуда запрос, но я сам не пробовал.

PS: а если запросы идут с разных страниц одного домена - то имхо никак...

2
 



С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096

Ссылка на сообщениеДобавлено: 19/06/05 в 20:11       Ответить с цитатойцитата 

Sterx писал:
а это $HTTP_REFERER - тоже пустое?


ни $HTTP_REFERER, ни $_SERVER["HTTP_REFERER"] можно не ждать, потому как эти значения выдираются апачем из заголовка Http запроса, куда этот параметр запихивается браузером. Если запрос идет от хоста по типу file_get_contents('http://blabla.com'); - то заголовок запроса создается совершенно примитивный, содержащий только необходимые параметры.

2
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 19/06/05 в 20:12       Ответить с цитатойцитата 

webboxxx писал:
я не понял, ты имеешь возможность изменять первую страницу? если да, то в параметры просто добавить &from=page1. по ней и определять. если нет такой возможности - то можно определить по ип сервера, который делает запрос - $_SERVER['REMOTE_ADDR']. Вот вроде бы написано в мане еще, что $_SERVER['REMOTE_HOST'] должен отдавать имя хоста, откуда запрос, но я сам не пробовал.
PS: а если запросы идут с разных страниц одного домена - то имхо никак...


$_SERVER['REMOTE_HOST'] и $_SERVER['HTTP_REFEREF'] при таком подходе полностью пустые; а в $_SERVER['REMOTE_HOST'] содержится ip хоста второй страницы, следовательно тож бесполезен...
Собственно не обязательно file() использовать, может через сокеты прокатит?

0
 



С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096

Ссылка на сообщениеДобавлено: 19/06/05 в 20:16       Ответить с цитатойцитата 

Kernel Team писал:
$_SERVER['REMOTE_HOST'] и $_SERVER['HTTP_REFEREF'] при таком подходе полностью пустые; а в $_SERVER['REMOTE_HOST'] содержится ip хоста второй страницы, следовательно тож бесполезен...
Собственно не обязательно file() использовать, может через сокеты прокатит?


А $_SERVER['REMOTE_ADDR'] пробовал? Там должен быть ипишник первого сервера.
Если делать через сокеты - то можно передавать Referer какой захочешь. Просто вручную созаешь заголовок запроса и все что нужно передать пихаешь в него.

1
 



С нами с 01.10.03
Сообщения: 751
Рейтинг: 318

Ссылка на сообщениеДобавлено: 19/06/05 в 20:18       Ответить с цитатойцитата 

100% прокатит
юзай fsockopen

Лучший Хостинг для CJ сайтов!

0
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 19/06/05 в 20:29       Ответить с цитатойцитата 

webboxxx писал:
А $_SERVER['REMOTE_ADDR'] пробовал? Там должен быть ипишник первого сервера.

Пробовал, реально получается ip второго сервера.

webboxxx писал:
Если делать через сокеты - то можно передавать Referer какой захочешь. Просто вручную созаешь заголовок запроса и все что нужно передать пихаешь в него.

Сорри, тож не прокатит. Вопрос в том, что код на сервере 1 не контролируется, а нужно точно знать откуда запрос -> передавать его никак нельзя. Но ведь ip хотя бы можно как-то узнать сервака с которого запрос идет?

0
 



С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096

Ссылка на сообщениеДобавлено: 19/06/05 в 20:40       Ответить с цитатойцитата 

Kernel Team писал:
Пробовал, реально получается ip второго сервера.


Не может такого быть.
Цитата из мана:
Цитата:
'REMOTE_ADDR'
The IP address from which the user is viewing the current page.


Kernel Team писал:
Но ведь ip хотя бы можно как-то узнать сервака с которого запрос идет?

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

в любом случае, вот все что можно получить из окружения:
http://us3.php.net/manual/ru/reserved.variables.php

Практически больше вариантов не остается...

2
 



С нами с 10.09.03
Сообщения: 1313
Рейтинг: 513

Ссылка на сообщениеДобавлено: 19/06/05 в 20:42       Ответить с цитатойцитата 

Точно, не может такого быть, там будет либо ip клиента, либо ip запрашивающего скрипта. Иначе получается, что ты запрашиваешь скрипт с самого же сервера.

1
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 19/06/05 в 20:55       Ответить с цитатойцитата 

Получается так:
Запрос с адреса 127.0.0.4:
$inf=file(http://127.0.0.5/out.php);
print_r($inf)
В out.php: echo $_SERVER['REMOTE_ADDR']);
Получаем в браузере 127.0.0.5, хотя ожидалось 127.0.0.4;

P.S. В таких случаях что-то вспоминается:
Стою на асфальте я в лыжи обутый;
Ци лыжи ни едут, ци я еб№"ый... ;)

0
 



С нами с 10.09.03
Сообщения: 1313
Рейтинг: 513

Ссылка на сообщениеДобавлено: 19/06/05 в 21:05       Ответить с цитатойцитата 

Попробовал - все ровно, выдает, как и должно. А ты, случаем, не на локальном компе тестишь? Может, шалит чего?

3
 



С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096

Ссылка на сообщениеДобавлено: 19/06/05 в 21:13       Ответить с цитатойцитата 

Kernel Team писал:
Получается так:
Запрос с адреса 127.0.0.4:
$inf=file(http://127.0.0.5/out.php);
print_r($inf)
В out.php: echo $_SERVER['REMOTE_ADDR']);
Получаем в браузере 127.0.0.5, хотя ожидалось 127.0.0.4;
P.S. В таких случаях что-то вспоминается:
Стою на асфальте я в лыжи обутый;
Ци лыжи ни едут, ци я еб№"ый... ;)


сдается мне что надо попробовать на серваке icon_smile.gif
сделай запрос с локалки на сервак, выдаст тебе твой ип.

2
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 19/06/05 в 21:17       Ответить с цитатойцитата 

По ходу действительно у меня на локале что-то шалит. Спасибо всем за ответы! Будем считать топик закрытым.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »