Никак не могу понять, каким образом Firefox передает данные через POST запросы..
например, есть веб-форма, которая методом POST передает переменную "nick", со значением "user"
Запрос от IE выглядит так:

"POST /chat HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-icq, application/vnd.ms-excel, application/msword, */*
Referer: http://localhost
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: 127.0.0.1
Content-Length: 9
Connection: Keep-Alive
Cache-Control: no-cache

nick=user"

Здесь видно, что в конце находится информация о той самой переменной "nick"


А вот запрос Firefox'а:

"POST /chat HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.10) Gecko/20050717 Firefox/1.0.6
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost/"

Здесь нет ничего о переменной "nick"..

как же тогда передается информация при POST запросе ?

Абсолютно так же, как и везде. Вы видно что-то упустили.
Код в студию!

Код простой.. есть сервер.. при поступлении какого либо сообщения от клиента, текст сообщения пишется в лог. С Оперой и Ослом все нормально.. а в конце сообщения от Файрфокса, данных нету..
Вот код формы:

<form method=POST action=http://localhost/chat>
<input type=text name=nick>
<input type=submit value=Вход>
</form>

LostCodder

<input type=text name=nick>

А где value?

дык это текстовое поле.. Value вводить надо )

Только что проверил. Все работает.
Может код "дословно" предоставите?

хм.. ну хорошо :)

procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
mess : string;
begin
mess := socket.ReceiveText;
memo1.Lines.Add(mess);
end;

Хм... Сервер на Делфи это конечно круто, но я имел в виду HTML код =)

Кстати, может эту часть попробовать в цикл оформить

Выделить код

Код:

mess := socket.ReceiveText;
memo1.Lines.Add(mess);

до того момента пока будет выполняться socket.ReceiveText.

как это? и зачем?

[joke]
Это же Дельфи :) Там никто не знает зачем :) А вдруг заработает ^^
[/joke]

LostCodder

как это? и зачем?

Как - это надо у вас спросить =) Я на делфи не пишу. (Писал на Билдере и то давно. Под винду перешел на чистый winAPI пару лет назад) Ну надо посмотреть что возвращает функция в случае окончания приема, и в цикле проверять на это значение, пока оно не попадется. А до этого времени : mess += socket.ReceiveText;
А вот зачем - затем, что метод ReceiveText может вернуть не полное содержание буфера.

Athathoth пишет

А вот зачем - затем, что метод ReceiveText может вернуть не полное содержание буфера.

Это точно. Я когда писал на Delphi (давно дело было). Замучился с этим багой/фичей. Лучше сразу на WinSocks писать и не мучиться. Цикл действительно сделать надо. Волосы от ужаса на голове встают. Такой код дебильный получится. Убить Borland надо за такую реализацию.

А можете код цикла кинуть? до меня че то не доходит, как его реализовать )

Выделить код

Код:

while (не опупеешь) do
begin
  memo1.Lines.Add(socket.ReceiveText);
  Application.ProcessMessages; //А то все повиснет.
  sleep(100); // или как там в Delphi
end;

Меня интересует как раз та часть, где "(не опупеешь)" :)

LostCodder
дай хоть man по socket.ReceiveText

function ReceiveText: string;

Description

Use ReceiveText to read a string from the socket connection in the OnSocketEvent event handler of a Windows socket object or in the OnRead or OnClientRead event handler of a socket component. ReceiveText returns the string that was read.

ReceiveText only works in response to a read notification to a non-blocking windows socket. Blocking sockets must use a TWinSocketStream for reading. The TWinSocketStream object waits for the remote socket to be ready before transferring information.

Написано же

Blocking sockets must use a TWinSocketStream for reading

.

и что? я использую non-blocking :)

LostCodder
И это все описание? А возвращаемые результаты в случае ошибок и окончания буфера?

ничего подобного нету (

LostCodder
Попробуй кусок на ВинАПИ сделать?

ViRUS, как? :)

Может тут решение найдется?
http://www.sql.ru/forum/actualthread.as … =81050&hl=

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

==> Разработка