Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: POST запрос
 
 автор: bronenos   (07.07.2007 в 00:22)   письмо автору
 
 

что тут неправильно, скажите?
POST /c_chat/login.php HTTP/1.1
Host: phx.freedomf.net

nick={nick}&password={pswd}

фигурные скобки заменяются значениями

   
 
 автор: Unkind   (07.07.2007 в 00:25)   письмо автору
 
   для: bronenos   (07.07.2007 в 00:22)
 


POST /c_chat/login.php HTTP/1.1 
Host: phx.freedomf.net
Content-type: application/x-www-form-urlencoded
Content-length: " . strlen("nick={nick}&password={pswd}") . "

nick={nick}&password={pswd}


Обратите внимание на перевод строки после "nick={nick}&password={pswd}".

   
 
 автор: bronenos   (07.07.2007 в 00:38)   письмо автору
 
   для: Unkind   (07.07.2007 в 00:25)
 

перевод обязателен?
то есть я так понимаю?
CSocket->Socket->SendText((AnsiString)
  "POST /c_chat/login.php HTTP/1.1\r\n" +
  "Host: phx.freedomf.net\r\n" +
  "Content-Type: application/x-www-form-urlencoded\r\n" +
  "Content-Length: " + data.Length() + "\r\n" +
  "\r\n" + data + "\r\n"
);

(BCB)

   
 
 автор: Unkind   (07.07.2007 в 00:50)   письмо автору
 
   для: bronenos   (07.07.2007 в 00:38)
 

Да, обязателен.
Всё верно.

Только я бы посоветовал использовать HTTP/1.0.

   
 
 автор: bronenos   (07.07.2007 в 01:09)   письмо автору
 
   для: Unkind   (07.07.2007 в 00:50)
 

почему

   
 
 автор: Unkind   (07.07.2007 в 01:16)   письмо автору
 
   для: bronenos   (07.07.2007 в 01:09)
 

Потому как HTTP/1.1 предусматривает кодирование информации (transfer encoding). Вам могут выдать ответ в виде transfer-coding chunked, gzip, deflate и проч.
Помимо прочего функция feof() не всегда сможет корректно определить "конец файла". Поэтому при принятии данных придется обойтись без неё.

   
 
 автор: Trianon   (07.07.2007 в 01:49)   письмо автору
 
   для: Unkind   (07.07.2007 в 01:16)
 

>Помимо прочего функция feof() не всегда сможет корректно определить "конец файла".

Более точно - конец запроса/отклика в HTTP/1.1 может не совпадать с концом потока данных.

   
 
 автор: bronenos   (07.07.2007 в 09:03)   письмо автору
 
   для: Unkind   (07.07.2007 в 01:16)
 

я их читаю не fgets а уже готовым
Socket->ReceiveText();
так что не страшно

мне было главное понять почему сервер не отдает что нужно
+ проблема еще одна
в ответе, наподобие alert я его вывожу и если я пишу на странице "привет", то ответ примерно такой получается
8
привет
0

откуда цифры?

   
 
 автор: Trianon   (07.07.2007 в 13:01)   письмо автору
 
   для: bronenos   (07.07.2007 в 09:03)
 

Вы полагаете, что сервер отдает Вам строки ответа.
Это не так (он не строки отдает), поскольку в заголовке отклика встретилось поле Transfer-Encoding: chunked
Ваша ошибка в том, что Вы его проигнорировали, а нужно было прочитать RFC-2616 или его перевод (или поднять поиск по форуму по этим словам) и понять, что формат отклика ну совершенно другой.
Представьте, если бы Вы попросили у кого-нибудь текст, а Вам этот кто-то отдал бы многотомный архив с этим текстом.
Вы бы тоже стали удивляться, что это за странные буковки !Rar и какая-то фигня идет перед текстом или как?
Ссылки на документы посмотрите тут http://softtime.ru/forum/read.php?id_forum=1&id_theme=37589 (17.05.2007 в 14:37)
А тут - мой пример реализации сбора чанков - http://softtime.ru/forum/read.php?id_forum=1&id_theme=35885 (13.04.2007 в 00:24)

   
 
 автор: bronenos   (07.07.2007 в 15:08)   письмо автору
 
   для: Trianon   (07.07.2007 в 13:01)
 

перешел на 1.0 и перенос кстати убрал последний и работает все как надо, почти
если кто нибудь работал в борланд с++ с объектом ClientSocket, отзовитес пожалуйста
а то неполадки у меня

пишу здесь потому что в том форуме никто не появляется кажется

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования