[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрос к другому серверу
Daess
Значит поставили вопрос так: можно ли средствами PHP написать скрипт, чтобы он обращался к другому серверу и выдавал пользователю полученную страницу?



Спустя 37 минут, 4 секунды (14.12.2006 - 18:55) AlexBB написал(а):

Спустя 1 месяц, 4 дня, 22 часа, 20 минут, 53 секунды (19.01.2007 - 17:16) Daess написал(а):
Тэкс. Попробуем сформулировать. Значит есть сервер статистики пользователя (допустим, Интернет-провайдер). Т.е. нужна авторизация и все дела в общем. У этой страницы есть свое оформление, логотипы там всякие - не суть. Но люди сверху не хотят, чтобы юзер долезал до этой страницы. Смысл такой, чтобы использовав форму авторизации на сайте компании, юзер попадал на страницу, с помощью которой можно получить любые интересующие его данные по своей статистике, но со своим оформлением. Т.е. из всего, что мне рассказали, я воткнул, что есть какое место ТАМ на статистике, где это все лежит. Вероятно другой сервер. Надо раскопать и вытащить на свет божий%) Смысл общий: вытащить инфу конкретного пользователя. Скоро уточню подробнее, а пока такой вопрос: данные, вводимые в авторизацию как-то защищаются или нет? Их нельзя тупо перехватить как значения текстовых полей?

Спустя 35 минут, 14 секунд (19.01.2007 - 17:51) md5 написал(а):
Daess,
с помощью описаной выше функции посылешь заголовки для авторизации, если у тебя имеется логин и пароль конечно и парсишь страницу, на которую попадаешь после авторизации...

пройди авторизацию со снифером, посмотри, какие заголовки посылаются и сделай такие же..

Спустя 1 минута, 6 секунд (19.01.2007 - 17:52) disc написал(а):
cURL, либо если есть xml-rpc или soap, wsdl API интерфейс чтоб получать данные через xml.

Спустя 4 дня, 11 часов, 18 минут, 55 секунд (24.01.2007 - 05:11) Ruweb написал(а):
get запрос делается так:
$fp = fsockopen("tcp://".$proxy_ip, intval($proxy_port), $errno, $errstr, 5);
$get ="GET /passport?mode=register&msg=mail&retpath=http://mail.yandex.ru HTTP/1.0 ";
$get.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT5.1; MRA 4.4 (build 01331)) ";
$get.="Accept-Language: ru ";
//$get.="Content-Type: application/x-www-form-urlencoded "; - 'вроде не нужна, нужна для пост запроса, если работать не будет то раскоментирую
$get.="Host: passport.yandex.ru ";

fwrite($fp, $get); // записываем в прокси заголовок.

$byfer= fgets($fp);
while (!feof ($fp)) {
$byfer.= fgets($fp);
}
echo $byfer; // выведет полученную страницу

пост запрос:
$fp = fsockopen("tcp://".$proxy_ip, intval($proxy_port), $errno, $errstr, 5);

$data ='idkey='.$_GET['id'].'&step=one&filled=yes&login='.$_GET['login'].'&iname='.$_GET['iname'].'&fname='.$_GET['fname'].'&done=%C4%E0%EB%FC%F8%E5%A0%26%238594%3B';

$post ="POST /passport?mode=register&ncrnd=".$_GET['id']." HTTP/1.0 ";
$post.="Accept-Language: ru ";
$post.="Referer: http://passport.yandex.ru/passport?mode=re...dex.ru ";
$post.="Content-Type: application/x-www-form-urlencoded ";
$post.="Accept-Encoding: gzip, deflate ";
$post.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.4 (build 01331)) ";
$post.="Host: passport.yandex.ru ";
$post.="Cookie: yandexuid=".$_GET['cookie']." ";
$post.="Content-Length: ".strlen($data)." ".$data;

fwrite($fp, $post); // записываем в прокси заголовок.

$byfer = fgets($fp);

while(! feof($fp) ) {
$byfer.= fgets($fp);
}

echo $byfer;

вобщем, разбирайся, а лучше юзай cURL, а еще лучше perl)

Спустя 4 минуты, 28 секунд (24.01.2007 - 05:16) Ruweb написал(а):
еще get запрос можшь послать так:)
$file = file_get_contents('http://yandex.ru/passport?mode=register&msg=mail');

Спустя 6 дней, 6 часов, 32 минуты, 18 секунд (2.02.2007 - 11:48) Uno написал(а):
Решать конкретно эту задачу сокетами неудобно.
Для чего же тогда существует курл, не пойму?

Смотри тут примеры
http://curl.haxx.se/libcurl/php/examples/


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.