Xpoint
   [напомнить пароль]

Прием контента вебстраницой, через "stream"

Метки: [без меток]
2011-09-26 06:21:49 [обр] Top manager(0/2)[досье]

Срочно нужна помощь со следующим кодом. Написал функцию, которая отправляет некий контент. Все работает отлично, народ на той стороне принимает, радуется. Теперь встала задача принимать и мне. А как сделать не пойму.
Сразу оговорюсь, что взять код у "той" стороны неполучится, пробывал. Нужно писать свое.

Важно что бы прием шел по такой же "аналогии", что и отправка.

function sendContent($row) {
   $server = "qq.ww.ee";
   $port = 80;
   $url = "/rr.aspx?tt=yy";
   $content = $row["request"];
   $content_length = strlen($content);
   $headers = "POST $url HTTP/1.0\r\nContent-type: text/html\r\nHost: $server\r\nContent-length: $content_length\r\n\r\n";
   
   $fp = fsockopen($server, $port, $errno, $errstr);
   if (!$fp) {
          throw new Exception("Can't create connection");
       }
    
   fputs($fp, $headers);
   fputs($fp, $content);
    
   $r = "";
   while (!feof($fp)) {
      $r.= fgets($fp, 1024);
   }
   fclose($fp);
   
   if (!ereg("200 OK", $r)) {
      throw new Exception($r);
   }
   
   $headerend = strpos($r, "\r\n\r\n");
   if ($r) {
      $r = substr($r, $headerend + 4);
   }
   return $r;
}
спустя 7 часов [обр] Евгений Седов aka KPbIC(7/176)[досье]
сообщение промодерировано
Прочитали заголовки, выяснили что нужно делать, если POST — прочитали контент. В чем, собственно, проблема?
спустя 9 минут [обр] Top manager(0/2)[досье]
Евгений Седов aka KPbIC[досье]
проблема в конкретном коде. Я куда не глюяну, гуглю, везде передается context, но как его получить, если веб страница является приемником, и при своем вызове, ни каких контекстов не имеет. В общем, куда копать? Нужен код.
спустя 9 минут [обр] Евгений Седов aka KPbIC(7/176)[досье]
Какой-такой "context"? Что-такое в вашей задаче "веб-страница"? Каким "приемником" она является? Что значит "вызов веб-страницы"? Откуда "вызов"? Что вы, вообще, пишите, HTTP-клиент?
спустя 20 минут [обр] Top manager(0/2)[досье]
Удаленный сервис будет обращаться ко мне через вызов URL-а, в который будет передавать данные, тем же способом что и я ему передаю сейчас (функцию описал выше).
Нужно сделать страницу, которая будет принимать то, что пришлет удаленный клиент, для дальнейшей записи в БД полученых данных.
спустя 11 минут [обр] Евгений Седов aka KPbIC(7/176)[досье]
Выше вы описали клиента. Так? Теперь вы хотите написать сервер. Так? А почему бы не взять готовый веб-сервер, например, Apache?
спустя 37 минут [обр] Top manager(0/2)[досье]
Евгений Седов aka KPbIC[досье] Евгений, рассуждать можно долго, а возможностей и времени мало. Нужно конкретное решение, которые бы принимало данные.
спустя 20 минут [обр] Евгений Седов aka KPbIC(7/176)[досье]
Приложение, принимающее данные по протоколу HTTP, называется веб-сервером. Поставьте веб-сервер Apache, он обработает протокол HTTP, удобным для вас образом разберет пришедший URL, создаст окружение и запустит скрипт. Настройте Apache на обработку .php-файлов, и напишите скрипт для работы с базой данных.
спустя 3 часа 18 минут [обр] Top manager(0/2)[досье]
Евгений Седов aka KPbIC[досье] Думаю мы говорим на разных языках.
Также, ввиду того, что время идет а ответа нет, тему можно закрыть, ибо пока она кроме бесплодного общения ничего не приносит.
спустя 41 минуту [обр] Евгений Седов aka KPbIC(7/176)[досье]

Вы, по-моему, по существу вопроса вообще ни на каком языке не говорите.

Не хотите использовать существующий веб-сервер, попробуйте написать свой. Но это не вяжется с вашим заявлением о цейтноте.

спустя 3 минуты [обр] Top manager(0/2)[досье]
Евгений Седов aka KPbIC[досье] я не говорил ни слова о своих возможностях + форум посвящен веб разработке.
Следовательно, речь ни как не может идти о каких либо "низкоуровневых"/"тяжелых" работах по программированию.
Следовательно, как и большинство здесь прибывающих, я пишу о банальном вебе, с банальным хостингом, в условиях, которые даже не подразумевают такие простые вещи как SSH/
спустя 11 минут [обр] Евгений Седов aka KPbIC(7/176)[досье]
Если есть "банальный" хостинг, значит работающий веб-сервер уже есть. Тогда, в чем у вас проблема? POST-данные приходят в скрипт на стандартный ввод.
спустя 1 минуту [обр] Top manager(0/2)[досье]
что вы называете "стандартным"? Querystring?
спустя 9 минут [обр] Евгений Седов aka KPbIC(7/176)[досье]
Подтянутся знатоки PHP, расскажут лучше. Пока почитайте что-нибудь совсем простенькое, в духе http://php.net/manual/en/reserved.variables.post.php
спустя 2 минуты [обр] Top manager(0/2)[досье]
Евгений Седов aka KPbIC[досье]это мне не поможет, ибо как гласит описание
An associative array of variables passed to the current script via the HTTP POST method.
речь идет исключительно о переменных.
А данные про которые я говорю, приходят вовсе не через переменные.
спустя 17 минут [обр] Евгений Седов aka KPbIC(7/176)[досье]
спустя 1 час 45 минут [обр] Top manager(0/2)[досье]
Евгений Седов aka KPbIC[досье] ща попробую, отпишусь
спустя 1 день 15 часов [обр] Алексей Севрюков(162/1280)[досье]
Top manager[досье] в POST вы можете передать все что угодно по сути. Хоть сырые данные. Главное чтобы принимающая сторона знала что с ними делать.
Вам так же никто не мешает загнать все нужные данные в переменную и потом ее прочитать в скрипте - это будет намного проще (в данные вы можете загнать что угодно, главное не забыть их "проэскейпить" перед отправкой, чтобы PHP их корректно разобрал).
спустя 3 минуты [обр] Top manager(0/2)[досье]
Протестил, тему можно закрыть.
Инфа по ссылке которую дал Евгений Седов aka KPbIC[досье] оказалась ответом на все вопросы
Try the $HTTP_RAW_POST_DATA variable or the php://input stream.
Powered by POEM™ Engine Copyright © 2002-2005