kernel-video-sharing.com
С нами с 02.11.03
Сообщения: 826
Рейтинг: 558
|
Добавлено: 19/06/05 в 19:29 |
Есть 2 страницы, первая - заранее неизвесно где, с нее делается запрос на ифу ко второй странице на другом серваке (в простейшем случае - $inf=file("url_page2?param1..¶mN"), все бы замечательно но нужно на второй странице определить адрес первой страницы, т.е. откуда собственно запрос был; в $_SERVER["HTTP_REFERER"] при таком подходе ничего нет, инклюд использовать не желательно. Какие еще варианты есть решения данного вопроса?
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7615
Рейтинг: 5760
|
Добавлено: 19/06/05 в 19:47 |
писать в счетчик(файл) на второй странице?
|
|
|
|
kernel-video-sharing.com
С нами с 02.11.03
Сообщения: 826
Рейтинг: 558
|
Добавлено: 19/06/05 в 19:50 |
Да без разницы что делать, важно определить К примеру выдача зависит от того, с какой страницы пришел запрос.
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7615
Рейтинг: 5760
|
Добавлено: 19/06/05 в 19:56 |
а это $HTTP_REFERER - тоже пустое?
|
|
|
|
С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096
|
Добавлено: 19/06/05 в 19:57 |
я не понял, ты имеешь возможность изменять первую страницу? если да, то в параметры просто добавить &from=page1. по ней и определять. если нет такой возможности - то можно определить по ип сервера, который делает запрос - $_SERVER['REMOTE_ADDR']. Вот вроде бы написано в мане еще, что $_SERVER['REMOTE_HOST'] должен отдавать имя хоста, откуда запрос, но я сам не пробовал.
PS: а если запросы идут с разных страниц одного домена - то имхо никак...
|
|
|
|
С нами с 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'); - то заголовок запроса создается совершенно примитивный, содержащий только необходимые параметры.
|
|
|
|
kernel-video-sharing.com
С нами с 02.11.03
Сообщения: 826
Рейтинг: 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() использовать, может через сокеты прокатит?
|
|
|
|
С нами с 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 какой захочешь. Просто вручную созаешь заголовок запроса и все что нужно передать пихаешь в него.
|
|
|
|
С нами с 01.10.03
Сообщения: 751
Рейтинг: 318
|
Добавлено: 19/06/05 в 20:18 |
100% прокатит
юзай fsockopen
|
|
|
|
kernel-video-sharing.com
С нами с 02.11.03
Сообщения: 826
Рейтинг: 558
|
Добавлено: 19/06/05 в 20:29 |
webboxxx писал: | А $_SERVER['REMOTE_ADDR'] пробовал? Там должен быть ипишник первого сервера. |
Пробовал, реально получается ip второго сервера.
webboxxx писал: | Если делать через сокеты - то можно передавать Referer какой захочешь. Просто вручную созаешь заголовок запроса и все что нужно передать пихаешь в него. |
Сорри, тож не прокатит. Вопрос в том, что код на сервере 1 не контролируется, а нужно точно знать откуда запрос -> передавать его никак нельзя. Но ведь ip хотя бы можно как-то узнать сервака с которого запрос идет?
|
|
|
|
С нами с 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
Практически больше вариантов не остается...
|
|
|
|
С нами с 10.09.03
Сообщения: 1313
Рейтинг: 513
|
Добавлено: 19/06/05 в 20:42 |
Точно, не может такого быть, там будет либо ip клиента, либо ip запрашивающего скрипта. Иначе получается, что ты запрашиваешь скрипт с самого же сервера.
|
|
|
|
kernel-video-sharing.com
С нами с 02.11.03
Сообщения: 826
Рейтинг: 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. В таких случаях что-то вспоминается:
Стою на асфальте я в лыжи обутый;
Ци лыжи ни едут, ци я еб№"ый... ;)
|
|
|
|
С нами с 10.09.03
Сообщения: 1313
Рейтинг: 513
|
Добавлено: 19/06/05 в 21:05 |
Попробовал - все ровно, выдает, как и должно. А ты, случаем, не на локальном компе тестишь? Может, шалит чего?
|
|
|
|
С нами с 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. В таких случаях что-то вспоминается:
Стою на асфальте я в лыжи обутый;
Ци лыжи ни едут, ци я еб№"ый... ;) |
сдается мне что надо попробовать на серваке
сделай запрос с локалки на сервак, выдаст тебе твой ип.
|
|
|
|
kernel-video-sharing.com
С нами с 02.11.03
Сообщения: 826
Рейтинг: 558
|
Добавлено: 19/06/05 в 21:17 |
По ходу действительно у меня на локале что-то шалит. Спасибо всем за ответы! Будем считать топик закрытым.
|
|
|
|