Server-Anmeldung, method="post" unter firefox u.a. funktioniert nicht immer

consoleone

Grünschnabel
hi

mein formular is unter firefox und konquerer irgendwie zickig.

ich versuche unter c ein eigenen webserver zu programmieren.
und mich daran an über ein simples html formular anzumelden.

problem ist, dass die benutzer informationen des html formulars oft nicht mitgesendet werden. mal funktionierts und manchmal eben nicht.
unter IE macht das formular keine probleme.

die gesamte anfrage wird im über read() in die variable buffer gelesen und sollte dann folgenden inhalt haben:

POST /input_password.htm HTTP/1.1
User-Agent: Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.7 (like Gecko) (Debian)
Referer: http://192.168.178.178:8000/
Pragma: no-cache
Cache-control: no-cache
Accept: text/html, image/jpeg, image/png, text/*, image/*, */*
Accept-Encoding: x-gzip, x-deflate, gzip, deflate
Accept-Charset: utf-8, utf-8;q=0.5, *;q=0.5
Accept-Language: en
Host: 192.168.178.178:8000
Content-Type: application/x-www-form-urlencoded
Connection: Keep-Alive
Content-Length: 28

username=admin&kennwort=test

im fehlerfall fehlt die letzte zeilte in der ja die formular-daten übertragen werden

hoff ihr wisst was ich mein und wo hier mein denkfehler liegt.


hier noch die wichtigsten codeschnippsel:

--- login.html ----
<html>
<body>

<form action="input_password.htm" method="post">
<p>username:<br><input type="text" name="username" size="12" maxlength="12" value="admin"></p>
<p>Kennwort:<br><input name="kennwort" type="password" size="12" maxlength="12"></p>
<tr><td align="left"><center><input type="submit" value="Login"></center></td></tr>
</form>
</body>
</html>


--- server.c ---

{
....
serverSocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
status = bind(serverSocket, (struct sockaddr *) &serverName, sizeof(serverName))
listen(serverSocket, BACK_LOG);
read(slaveSocket, buffer,sizeof(buffer));
....
}
 
hi

hab das problem jetz doch selber gefunden.

mein server liest schneller aus dem puffer raus als der browser hineinschreiben kann.

für eine vollständige übertragung muss man die steuerzeichen CR LF CR abwarten und überprüfen ob die Content_length beim POST vollständig ist.

gruß andi
 
Zurück