imdem
Guest
Разбор HTTP-запроса
Есть два файлика - один генерирует http-запрос и методом post отсылает его второму, второй соотвественно должен принять его и разобрать.
текст первого
<?php
$fp = fsockopen ("xxx.xxx.ru", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
$text='<?xml version="1.0"?><response><authentication><login>login</login><password>password</password></authentication><message> <transaction-id>123</transaction-id> <text>PRIVET!</text></message></response>\r\n';
fputs ($fp,"POST http://xxx.xxx.ru/2.php HTTP/1.0\r\n ");
fputs ($fp,"Host: xxx.xxx.ru\r\n");
fputs ($fp,"Referer: http://xxx.xxx.ru/3.php\r\n");
fputs ($fp,"Content-Type: application/x-www-form-urlencoded\r\n");
fputs ($fp,"Content-Length:".strlen($text)."\r\n");
fputs ($fp,"\r\n");
fputs ($fp,$text);
while (!feof($fp)) {
echo fgets ($fp,128);
}
fclose ($fp);
}
?>
хитрость в том что после заголовков через пустую строчку прилеплен некий текст( может быть достаточно большой) - причем он не оформлен как переменная - просто передается в теле запроса. Почему так - не псрашивайте. Данность)
Соответственно второй файлик должен этот запрос поймать и из тела запроса текст выудить. Был бы теккст оформлен как параметр - проблем нет - вынимаем...а так - никак не могу получить весь запрос целиком - только заголовки ...
сейчас файлик просто пишет чтото в некий тесктовый файл
<?php
if (!$handle = fopen ("temp.dat", "w")) echo 'Ошибка';
else
{
fputs($handle,???????????????);//вот тут надо вывести полученный от первого файла запрос в файл
}
fclose ($handle);
?>
обсмотрел все переменные $_server[...] - чет пусто(((
МОжет кто подскажет как?
Есть два файлика - один генерирует http-запрос и методом post отсылает его второму, второй соотвественно должен принять его и разобрать.
текст первого
<?php
$fp = fsockopen ("xxx.xxx.ru", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
$text='<?xml version="1.0"?><response><authentication><login>login</login><password>password</password></authentication><message> <transaction-id>123</transaction-id> <text>PRIVET!</text></message></response>\r\n';
fputs ($fp,"POST http://xxx.xxx.ru/2.php HTTP/1.0\r\n ");
fputs ($fp,"Host: xxx.xxx.ru\r\n");
fputs ($fp,"Referer: http://xxx.xxx.ru/3.php\r\n");
fputs ($fp,"Content-Type: application/x-www-form-urlencoded\r\n");
fputs ($fp,"Content-Length:".strlen($text)."\r\n");
fputs ($fp,"\r\n");
fputs ($fp,$text);
while (!feof($fp)) {
echo fgets ($fp,128);
}
fclose ($fp);
}
?>
хитрость в том что после заголовков через пустую строчку прилеплен некий текст( может быть достаточно большой) - причем он не оформлен как переменная - просто передается в теле запроса. Почему так - не псрашивайте. Данность)
Соответственно второй файлик должен этот запрос поймать и из тела запроса текст выудить. Был бы теккст оформлен как параметр - проблем нет - вынимаем...а так - никак не могу получить весь запрос целиком - только заголовки ...
сейчас файлик просто пишет чтото в некий тесктовый файл
<?php
if (!$handle = fopen ("temp.dat", "w")) echo 'Ошибка';
else
{
fputs($handle,???????????????);//вот тут надо вывести полученный от первого файла запрос в файл
}
fclose ($handle);
?>
обсмотрел все переменные $_server[...] - чет пусто(((
МОжет кто подскажет как?