n'Abend!
Das Formular sieht so aus:
Das entscheidende Merkmal eines Formulars, nämlich das form-Eement, hast du uns hier geschickt unterschlagen. Aber anscheinendhast du method="POST" und action="/index2.php" da stehen.
POST /index2.php HTTP/1.1\r\n
Host: ...\r\n
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\r\n
Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n
Keep-Alive: 300\r\n
Connection: keep-alive\r\n
Referer: http://.../index2.php\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Content-Length: 36\r\n\r\n
NICK=christian&PW=30chk5&LOGIN=Login\r\n
\r\n
Sieht für mich vernünftig aus.
HTTP/1.1 302 Found\r\n
Date: Mon, 24 Nov 2008 21:09:01 GMT\r\n
Server: Apache/1.3.33 (Unix) (Gentoo/Linux) PHP/4.3.10 mod_gzip/1.3.26.1a\r\n
X-Powered-By: PHP/4.3.10\r\n
Set-Cookie: name=deleted; expires=Sun, 25-Nov-2007 21:09:00 GMT; path=/\r\n
Set-Cookie: sessionid=deleted; expires=Sun, 25-Nov-2007 21:09:00 GMT; path=/\r\n
Expires: Mon, 26 Jul 1997 05:00:00 GMT\r\n
Last-Modified: Mon, 24 Nov 2008 21:09:01 GMT\r\n
Cache-Control: post-check=0, pre-check=0\r\n
Pragma: no-cache\r\n
Set-Cookie: name=34485; expires=Mon, 24-Nov-2008 21:44:01 GMT; path=/\r\n
Set-Cookie: sessionid=a601b21fea9f31fdc2f306c5cd2a4a43; expires=Mon, 24-Nov-2008 21:44:01 GMT; path=/\r\n
Location: info.html\r\n
Content-Encoding: gzip\r\n
Vary: Accept-Encoding\r\n
Keep-Alive: timeout=10, max=100\r\n
Connection: Keep-Alive\r\n
Transfer-Encoding: chunked\r\n
Content-Type: text/html\r\n
\r\n
1a\r\n
0\r\n
\r\n
Der Content-Block wäre als reiner Hexdump wahrscheinlich informativer als mit dieser erzwungenen Unicode-Transcription.
Einen Fehler macht der Server auf jeden Fall schon: Er gibt mit dem Location-Header keine absolute URL an. Die meisten Clients kommen wohl damit zurecht, korrekt ist es aber nicht. Vermutlich eine Schlamperei des aufgerufenen PHP-Scripts.
Das ist alles, was ich zurückbekomme. Außer dem Header also nur diesen kurze ASCII Code, welcher das mit gzip verschlüsselte Dokument darstellt, wenn ich mich nicht irre. (also ich habe den ASCII Code hier als Bild eingefügt. Sonst nimmt das Forum das hier nicht an.)
Das ist kein ASCII, das ist der zwanghafte Versuch eines Programms, gzip-codierte Daten als Unicode zu interpretieren.
Wenn ich den ASCII Code entschlüssle mit gzip, wie in meinem vorherigen Beitrag beschrieben, dann erhalte ich einen leeren String.
Ups.
Wenn man sich per Browser (getestet mit Firefox) einloggt, dann ist bis hier her alles genauso, wie ich es mit meinem php-skript mache.
Sollte so sein.
Auf diesen 302 Response sendet Firefox nun aber den folgenden Request:
GET /head.php?showmus=1 HTTP/1.1\r\n
...
Das hat ihm der Teufel gesagt.
Es wäre tatsächlich hochinteressant zu wissen, wo der Firefox das her hat. Vielleicht noch eine in index2.php eingebundene Ressource (iframe), die er trotz des Redirect noch pflichtbewusst anfordert?
Referer: http://.../info.html\r\n
Aha. Er hat anscheinend vorher schon info.html angefordert, und irgendwas darin veranlasst ihn, jetzt auch noch head.php anzufordern. Warum ist weder der Request für info.html noch der zugehörige Response protokolliert?
GET /info.html HTTP/1.1\r\n
Host: ...\r\n
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\r\n
Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n
Keep-Alive: 300\r\n
Connection: keep-alive\r\n
Cookie: name=34485; sessionid=a601b21fea9f31fdc2f306c5cd2a4a43\r\n
\r\nHTTP/1.1 200 OK\r\n
Date: Mon, 24 Nov 2008 21:09:13 GMT\r\n
Server: Apache/1.3.33 (Unix) (Gentoo/Linux) PHP/4.3.10 mod_gzip/1.3.26.1a\r\n
Last-Modified: Thu, 22 May 2008 12:34:51 GMT\r\n
ETag: "f0e84-1dd-4835686b"\r\n
Accept-Ranges: bytes\r\n
Content-Length: 477\r\n
Keep-Alive: timeout=10, max=100\r\n
Connection: Keep-Alive\r\n
Content-Type: text/html\r\n
\r\nDer Server schickt mir hier keinerlei Daten nach dem Header mit.
Womit hast du diese HTTP-Protokolle bekommen? Die LiveHTTP-Extension für Firefox gibt wirklich nur die Header wieder, lediglich bei POST-Requests zeigt sie auch die Daten (aber AFAIR nur vom Request, nicht vom Response).
Also kein Dokument, oder sonstwas, obwohl "Content-Length" = 477 ist.
Oder das von dir verwendete Tool hielt es nicht für nötig, diese Daten zu protokollieren.
Muß ich da nochmal nachfragen, um den Inhalt (also das Dokument) zu erhalten?
Nein. Das muss ungefragt im Anschluss an den Header kommen.
Ich hoffe ich konnte mein Problem vollständig und verständlich vermitteln :)
Vollständig? Keine Ahnung. Verständlich? Naja, ich verstehe weder, was dein Browser da anstellt, noch den Server ...
So long,
Martin
"Drogen machen gleichgültig."
- "Na und? Mir doch egal."