POST funktioniert im IE 5.00 immer noch nicht...
Yeti
- html
Hallo Forum!
Ich knackse immer noch am Problem vom Freitag (<./?t=89385&m=534179>) rum.
Mittlerweile habe ich folgende Eingrenzungen vornehmen können:
Das POST-Formular wird im Opera 7.52 korrekt übertragen, im IE 5.00 dagegen nicht (die Seite wird per POST aufgerufen, aber die Daten kommen nicht an). Das GET-Formular wird in beiden Browsern übertragen.
Es muss aber POST sein und es muss der IE 5.00 sein. :-(
Die Seite ist valides HTML 4.01, das CSS ist auch (bis auf IE-Hacks) valide. Das Loginformular der Seite wird auch über POST aufgerufen und funktioniert auch wie es soll.
Weitere erfolglose Versuche:
Irgendwelche Ideen/Tipps? Der Quellcode steht zur allgemeinen Belustigung auf http://JTIS.de/sandkasten/postproblem.html.
Der Yeti
Hallo,
Ich knackse immer noch am Problem vom Freitag (<./?t=89385&m=534179>) rum.
Mittlerweile habe ich folgende Eingrenzungen vornehmen können:
Das POST-Formular wird im Opera 7.52 korrekt übertragen, im IE 5.00 dagegen nicht (die Seite wird per POST aufgerufen, aber die Daten kommen nicht an).
Wenn ich die Seite lokal kopiere und im MSIE 5.0 aufrufe, werden die Formulardaten korrekt übertragen. Ich sehe kein Problem.
Irgendwelche Ideen/Tipps? Der Quellcode steht zur allgemeinen Belustigung auf http://JTIS.de/sandkasten/postproblem.html.
Wäre schön, wenn diese Testseite auch funktionieren würde.
Mathias
Hi,
Wenn ich die Seite lokal kopiere und im MSIE 5.0 aufrufe, werden die Formulardaten korrekt übertragen. Ich sehe kein Problem.
ich habe lokal nur den IE 5.01 SP2, aber auch bei diesem werden die Daten übertragen.
Wäre schön, wenn diese Testseite auch funktionieren würde.
den kann ich mich nur anschließen.
P.S.:
molily, hast du meine Email nicht bekommen? In Bezug auf http://forum.de.selfhtml.org/archiv/2004/9/88674/#m529108 f. habe ich dich vor ca. 2 Wochen an molily@selfhtml.org angeschrieben. Oder benötigt ihr keine Hilfe mehr?
Gruß,
Andreas.
Hallo,
molily, hast du meine Email nicht bekommen? In Bezug auf http://forum.de.selfhtml.org/archiv/2004/9/88674/#m529108 f. habe ich dich vor ca. 2 Wochen an molily@selfhtml.org angeschrieben. Oder benötigt ihr keine Hilfe mehr?
Doch, ist angekommen und doch, brauchen wir noch, es handelt sich um einen einfachen Verpeiler meinerseits.
Mathias
Hi Mathias,
es handelt sich um einen einfachen Verpeiler meinerseits.
Okay, sowas kenne ich ;-)
Gruß,
Andreas.
Hi,
Wenn ich die Seite lokal kopiere und im MSIE 5.0 aufrufe, werden die Formulardaten korrekt übertragen. Ich sehe kein Problem.
5.00? Welches OS?
Wäre schön, wenn diese Testseite auch funktionieren würde.
Ja, aber aufwändig. Außerdem habe ich ja nur vom Quellcode gesprochen. Die funktionierende Seite würde auch eine Datenbank im Hintergrund benötigen und einen eingerichteten Testzugang oder ich müsste alle diesbezüglichen Sachen herausfriemeln.
Der Yeti
Hi,
Irgendwelche Ideen/Tipps? Der Quellcode steht zur allgemeinen Belustigung auf http://JTIS.de/sandkasten/postproblem.html.
Das einzige, was mir auffällt, ist
<input type="hidden" name="action" value="edit">
Der name-Wert könnte Ärger geben, wenn man mit Javascript auf das Element zugreifen will.
Ist document.formname.action das Element oder das gleichnamige Attribut?
Aber da kein JS im Formular vorhanden ist, sollte das eigentlich auch egal sein...
cu,
Andreas
Hi,
Das einzige, was mir auffällt, ist
<input type="hidden" name="action" value="edit">
Der name-Wert könnte Ärger geben, wenn man mit Javascript auf das Element zugreifen will.
Ist document.formname.action das Element oder das gleichnamige Attribut?
Das ist ein guter Tipp, ich habe den Namen in "aktion" geändert und plötzlich lief es! Das Verwunderliche: Jetzt läuft es auch mit "action"???!?
Danke! ;-)
Aber da kein JS im Formular vorhanden ist, sollte das eigentlich auch egal sein...
Genau. Es sei denn, der IE interpretiert das action=edit als Anweisung, das Formular per "EDIT"-Methode zu übergeben.
Der Yeti
Leider...
Die Beobachtung: Ein Ändern des hidden-Feldes "action" in "aktion" brachte den gewünschten Erfolg, auch das Zurückändern in "action" war erfolgreich.
Aber beim Schließen des Browsers, nochmaligem Einloggen und erneutem Ausprobieren klappt es mit keiner der beiden Schreibweise (wäre auch irgendwie sehr mysteriös).
:-(
Ich versuche mal, ein working example auf die Beine zu stellen...
Der Yeti
Hi,
mittlerweile habe ich folgende Beobachtung gemacht:
Wenn ich mein lokales Testsystem nicht über localhost aufrufe, sondern über die IP-Adresse, dann funktioniert alles wunderbar. Sehr verwunderlich... das Serverbeispiel funktioniert jetzt auch: http://JTIS.de/sandkasten/postproblem/
Also: Nicht über localhost gehen.
Aber eigentlich kann das doch nicht sein, oder?! Zumal es ja manchmal dann doch klappt, aber dann wieder nicht...
Der Yeti
Und noch ein Nachtrag...
Es scheint wohl an der NTLM-Authentifizierung zu liegen, die lokal klappt (da Intranet-Zone), mit der (globalen) IP aber nicht. Genauso wird der Server im Beispiel in die Internetzone eingeordnet und daher muss der Benutzer sich über das Formular anmelden.
Wie kann das sein??
Die NTLM-Authentifizierung wird folgendermaßen vorgenommen:
if (!$loggedin)
{
$ntlmfailed = false;
$headers = apache_request_headers();
if($headers['Authorization'] == NULL)
{
header("HTTP/1.0 401 Unauthorized");
header("WWW-Authenticate: NTLM");
};
if (isset($headers['Authorization']))
{
// Benutzername aus dem NTLM-Autorisierungsstring ermitteln
// ...
// Zusätzliche Daten zum Benutzer ermitteln
$user = mysql_fetch_array(db_query("SELECT uid,name FROM user WHERE name='$ntlm_login'"));
// Zugriff leise mitloggen
@db_query_priv("INSERT INTO zugang SET zeit='" . date("Y-m-d H:i:s") . "', user='$ntlm_login', logout=0, art='NTLM'");
// Speicher ein paar Werte in der Session, damit diese nicht ständig erneut aus der Datenbank
// abgefragt werden müssen.
$_SESSION["uid"] = $user["uid"];
$_SESSION["user"] = $user["name"];
// Berechtigungen des Benutzers einmal abrufen und dann in der Session speichern
$get_rights = db_query("SELECT modul,seite FROM user_access WHERE uid='{$_SESSION["uid"]}'");
while ($right = mysql_fetch_array($get_rights))
$_SESSION["rights"][$right["modul"]][] = $right["seite"];
}
}
}
}
Wenn diese fehlschlägt (z.B. weil der Browser NTLM nicht unterstützt oder der IE die Weitergabe der Benutzerdaten ins Internet verweigert), wird das Loginformular angeboten.
Wie kann ich es trotzdem schaffen, dass ich mit NTLM arbeiten kann und warum werden dann die Formulardaten vom IE mit POST nicht übergeben, aber mit GET schon?
Der Yeti
Hi,
mittlerweile habe ich folgende Beobachtung gemacht:
Wenn ich mein lokales Testsystem nicht über localhost aufrufe, sondern über die IP-Adresse, dann funktioniert alles wunderbar. Sehr verwunderlich... das Serverbeispiel funktioniert jetzt auch: http://JTIS.de/sandkasten/postproblem/
Also: Nicht über localhost gehen.
Aber eigentlich kann das doch nicht sein, oder?! Zumal es ja manchmal dann doch klappt, aber dann wieder nicht...
Beim IE kann alles sein.
Wann hast Du in dem betroffenen IE eigentlich zuletzt die temporären Internet-Dateien gelöscht?
cu,
Andreas
Hi,
Beim IE kann alles sein.
Ja, leider. :-(
Wann hast Du in dem betroffenen IE eigentlich zuletzt die temporären Internet-Dateien gelöscht?
Gerade eben. ;-)
Hat aber keinen Unterschied gemacht. Nur wenn ich NTLM herausnehme, den Browser neu starte und mich neu einlogge, dann klappt es. Aber ich brauche NTLM! :-(
Der Yeti