Конференция "Прочее" » Как в PHP4 сохранить текст HTTP-запроса в файл?
 
  • kaif © (03.04.08 22:32) [0]
    Прошу прощения, что задаю здесь этот вопрос.
    Срочно нужно.
    Я отправляю multipart/form-data (ручками).
    Там у меня JPEG внутри и еще кой-какие поля. На том конце PHP4 обычные поля видит, а JPEG - не видит. А как заголовки и тело HTTP-запроса в исходном виде в файл на том конце сохранить, мой партнер не знает. Подскажите функцию, плиз.

    Заранее признателен.
  • kaif © (03.04.08 22:37) [1]
    Я хочу сравнить то, что посылает браузер из формы методом POST при отправке файла JPEG на сервер с тем, что посылаю я руками. Для этого нужно сохранить оба текста HTTP-запроса в файл и сравнить.
  • DVM © (03.04.08 22:42) [2]

    > Для этого нужно сохранить оба текста HTTP-запроса в файл
    > и сравнить.

    Снифер возьми и не мучайся. Ethereal (или как он там теперь называется) например.
  • kaif © (03.04.08 22:52) [3]
    Отладка идет на хосте провайдера.
    Неужели то, что в  ASP.NET я сделал за 1 минуту, в PHP4 так сложно сделать? Банально сохранить текст исходного запроса в файл...
  • DVM © (03.04.08 22:54) [4]

    > Отладка идет на хосте провайдера.

    Но запрос же посылает клиентский компьютер. У провайдера он будет в точности такой же. Поэтому проще смотреть что отсылает клиент. А возможность такая в PHP есть. Ща поищу, не помню.
  • kaif © (03.04.08 22:59) [5]
    Я просто никогда не работал со сниферами. Даже не знаю, как он ставится. :(
    Идеально было бы на том конце отловить и посмотреть... Если, конечно, есть такая возможность. Хотя в любом случае спасибо за идею. Если ничто другое не поможет, попробую прибегнуть к перехвату пакетов. Просто это не совсем мой профиль...
  • easy © (03.04.08 23:01) [6]
    $headers = getallheaders();
    while (list ($header, $value) = each ($headers)) {
       echo "$header: $value<br />\n";
    }

  • DrPass © (03.04.08 23:02) [7]

    > Я просто никогда не работал со сниферами. Даже не знаю,
    > как он ставится. :(

    Проще, чем скрипт РНР :)
    Запустил инсталляху WinPCap (это драйвер для перехвата пакетов)... ну и собственно, запустил Ethereal. Указал какой порт прослушивать, нажал старт, нажал стоп. И смотри что он напрочитывал
  • kaif © (03.04.08 23:03) [8]
    2 easy ©
    Так это наверно только заголовки вернет, судя по тексту...
    А мне нужно тело запроса тоже увидеть. Там вся соль творится. Вся эта мультипартовая муть с разделителями и переводами строки.
  • DVM © (03.04.08 23:06) [9]

    > Если ничто другое не поможет, попробую прибегнуть к перехвату
    > пакетов. Просто это не совсем мой профиль...

    У Ethereal это вообще элементарно. Он тебе и все пакеты соберет вместе относящиеся к одному соединению и декодирует и представит в удобном читабельном виде.
  • kaif © (03.04.08 23:10) [10]
    Скачиваю 12 Mb Ethereal...
    И буду ставить его на клиент.
    Неужели это самый короткий путь для PHP-ста, который хочет узнать самую первейшую на свете вещь - исходный HTTP-запрос?
    Это примерно как если бы дельфисту сказали "открой и распечатай файл", а он бы сказал "тут перехватчик обращений Windows к драйверу жесткого диска требуется".
  • kaif © (03.04.08 23:11) [11]
    Ну вот. Докачал 12 М. Запустил. Говорит - файл испорчен. :(
  • DVM © (03.04.08 23:14) [12]

    > Неужели это самый короткий путь для PHP-ста, который хочет
    > узнать самую первейшую на свете вещь - исходный HTTP-запрос?
    >

    $HTTP_RAW_POST_DATA  - поищи по этому слову инфу
  • kaif © (03.04.08 23:24) [13]
    2 DVM ©   (03.04.08 23:14) [12]
    Спасибо! Уже теплее. :)
  • Reindeer Moss Eater © (03.04.08 23:50) [14]
    простой локальный самописный за пять минут http сервер с логированием все бы показал.
 
Конференция "Прочее" » Как в PHP4 сохранить текст HTTP-запроса в файл?
Есть новые Нет новых   [134433   +22][b:0][p:0.001]