2012-05-21 6 views
6

Das folgende Formular verursacht eine leere $_POST Variable auf IE9.

<form id='login' action='login.php' method='POST' accept-charset='UTF-8'> 
<input type='text' name="username" id='username' /> 
<input type='password' name='password' id='password' /> 
<input type="text" name="store" /> 
<input type='submit' name='Submit' value='Submit' /> 
</form> 

Das Formular funktioniert perfekt auf Firefox und Chrome. Alle Variablen erscheinen in der $_POST Variable ohne Probleme.

Auf IE9 wird das Formular ordnungsgemäß übermittelt, aber $_POST ist das leere Array. Ie., in login.php:

print_r($_POST); 

druckt das leere Array. Ich versuche herauszufinden, was an IE9 anders sein könnte, was dazu führt, dass es sich anders verhält als Firefox und Chrome und ich kann es nicht herausfinden.

Ich habe erwähnt, einige Module unter Apache, die Menschen Probleme verursacht, aber ich bin IIS7, nicht Apache laufen, so dass es nicht ist. Jemand in einem Ruby-Forum hat erwähnt, dass DisableNTLMPreAuth auf 1 in der Registrierung gesetzt wurde, aber das hat es auch nicht behoben.

Jede Hilfe wird geschätzt.

+0

Versuchen Sie, die Aktion auf self zu setzen und dort print_r auszuführen. Oder ist login.php was du uns zeigst? –

+1

Haben Sie versucht, phpinfo() auszugeben? Es wäre interessant zu sehen, ob irgendeine der Anforderungsvariablen auffüllt. Zum Beispiel, $ _REQUEST –

+5

öffnen Sie die Entwickler-Konsole auf IE (Drücken F12) und wechseln Sie zum Netzwerk-Tab. Übersenden Sie nun Ihr Formular und schauen Sie sich die angezeigte Anfrage an: Sind die Post-Values ​​dort erwähnt (was bedeutet, dass Ihr Problem serverseitig ist) oder fehlen diese (Problem ist clientseitig). – oezi

Antwort

-1

PLZ eingeben "Name" Attribut für Formular.

<form id='login' name='login' action='login.php' method='POST' accept-charset='UTF-8'> 
<input type='text' name="username" id='username' /> 
<input type='password' name='password' id='password' /> 
<input type="text" name="store" /> 
<input type='submit' name='Submit' value='Submit' /> 
</form> 
-1

Der Grund ist, dass Sie die Sitzung nicht aufrechterhalten. In Firefox und Chrome sind viel schlauer und sie pflegen die Sitzung unabhängig von der Entwicklung des Codes, der den Benutzern ein gutes gibt. Aber in IE6-9, IE kann Sitzung nicht verwalten, Entwickler muss es überprüfen, und wenn die Sitzung nicht gepflegt wird, ist jede geladene Seite eine neue Sitzung und somit gibt es keinen Beitrag.

0

Ich denke, das ist mit einem Doppelschlag zu tun - d. H. Dass IE die Seite irgendwie neu lädt. Haben Sie ein paar clientseitige Sachen (jQuery?), Die die Seite versehentlich als Bug neu laden? Versuchen Sie, auf einer ganz neuen Seite zu posten und <?PHP die ('<pre>'.print_r($_REQUEST,true).'</pre>');?> in die oberste Zeile zu schreiben und zu sehen, was passiert.

1

accept-charset wird im Internet Explorer nicht unterstützt. Entfernen Sie es und sehen Sie, ob das Ihr Problem löst.