Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];

Вниз

Как в PHP4 сохранить текст HTTP-запроса в файл?   Найти похожие ветки 

 
kaif ©   (2008-04-03 22:32) [0]

Прошу прощения, что задаю здесь этот вопрос.
Срочно нужно.
Я отправляю multipart/form-data (ручками).
Там у меня JPEG внутри и еще кой-какие поля. На том конце PHP4 обычные поля видит, а JPEG - не видит. А как заголовки и тело HTTP-запроса в исходном виде в файл на том конце сохранить, мой партнер не знает. Подскажите функцию, плиз.

Заранее признателен.


 
kaif ©   (2008-04-03 22:37) [1]

Я хочу сравнить то, что посылает браузер из формы методом POST при отправке файла JPEG на сервер с тем, что посылаю я руками. Для этого нужно сохранить оба текста HTTP-запроса в файл и сравнить.


 
DVM ©   (2008-04-03 22:42) [2]


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

Снифер возьми и не мучайся. Ethereal (или как он там теперь называется) например.


 
kaif ©   (2008-04-03 22:52) [3]

Отладка идет на хосте провайдера.
Неужели то, что в  ASP.NET я сделал за 1 минуту, в PHP4 так сложно сделать? Банально сохранить текст исходного запроса в файл...


 
DVM ©   (2008-04-03 22:54) [4]


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

Но запрос же посылает клиентский компьютер. У провайдера он будет в точности такой же. Поэтому проще смотреть что отсылает клиент. А возможность такая в PHP есть. Ща поищу, не помню.


 
kaif ©   (2008-04-03 22:59) [5]

Я просто никогда не работал со сниферами. Даже не знаю, как он ставится. :(
Идеально было бы на том конце отловить и посмотреть... Если, конечно, есть такая возможность. Хотя в любом случае спасибо за идею. Если ничто другое не поможет, попробую прибегнуть к перехвату пакетов. Просто это не совсем мой профиль...


 
easy ©   (2008-04-03 23:01) [6]

$headers = getallheaders();
while (list ($header, $value) = each ($headers)) {
   echo "$header: $value<br />\n";
}


 
DrPass ©   (2008-04-03 23:02) [7]


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

Проще, чем скрипт РНР :)
Запустил инсталляху WinPCap (это драйвер для перехвата пакетов)... ну и собственно, запустил Ethereal. Указал какой порт прослушивать, нажал старт, нажал стоп. И смотри что он напрочитывал


 
kaif ©   (2008-04-03 23:03) [8]

2 easy ©
Так это наверно только заголовки вернет, судя по тексту...
А мне нужно тело запроса тоже увидеть. Там вся соль творится. Вся эта мультипартовая муть с разделителями и переводами строки.


 
DVM ©   (2008-04-03 23:06) [9]


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

У Ethereal это вообще элементарно. Он тебе и все пакеты соберет вместе относящиеся к одному соединению и декодирует и представит в удобном читабельном виде.


 
kaif ©   (2008-04-03 23:10) [10]

Скачиваю 12 Mb Ethereal...
И буду ставить его на клиент.
Неужели это самый короткий путь для PHP-ста, который хочет узнать самую первейшую на свете вещь - исходный HTTP-запрос?
Это примерно как если бы дельфисту сказали "открой и распечатай файл", а он бы сказал "тут перехватчик обращений Windows к драйверу жесткого диска требуется".


 
kaif ©   (2008-04-03 23:11) [11]

Ну вот. Докачал 12 М. Запустил. Говорит - файл испорчен. :(


 
DVM ©   (2008-04-03 23:14) [12]


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

$HTTP_RAW_POST_DATA  - поищи по этому слову инфу


 
kaif ©   (2008-04-03 23:24) [13]

2 DVM ©   (03.04.08 23:14) [12]
Спасибо! Уже теплее. :)


 
Reindeer Moss Eater ©   (2008-04-03 23:50) [14]

простой локальный самописный за пять минут http сервер с логированием все бы показал.


 
kaif ©   (2008-04-04 14:18) [15]

Я не умею писать HTTP-сервер за пять минут, а разбираться в этом мне нужно несколько больше, чем 5 минут. Тем более, что у меня есть HTTP-сервер ASP.NET, умеющий сохранять тело запроса. Так что писать HTTP-сервер мне и незачем в данной конкретной ситуации.
В конце-концов удалось разобраться. При помощи быстро сварганенной страницы на ASP.NET с компонентом UploadFile. Выяснилось, что после байтового потока отправляемого файла вставляется еще один разделитель, который не был упомянут в той статье (по JAVA), на которую я опирался, делая тело запроса руками. С парой лишних символов "-" в конце. И еще один возврат каретки. Так заработало.
Всем спасибо.


 
Reindeer Moss Eater ©   (2008-04-04 14:26) [16]

readln в цикле, пока не придет пустая строка.
смотрим, если  в принятом поле контент ленс, и если есть, читаем буфер указанного размера.
вот и все.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.217 c
2-1208872290
@!!ex_
2008-04-22 17:51
2008.05.18
Как задать число в двоичной системе исчисления?


2-1208344703
LexXL
2008-04-16 15:18
2008.05.18
WebBrowser


2-1208605373
lewka-serdceed
2008-04-19 15:42
2008.05.18
Защита от копирования


15-1207074347
cyber-pilot
2008-04-01 22:25
2008.05.18
Как открыть гиперссылку в новом окне браузера?


2-1208322639
Sw
2008-04-16 09:10
2008.05.18
SQL запрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский