2012-05-21 8 views
6

Il seguente modulo causa una variabile $_POST vuota su 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> 

Il modulo funziona perfettamente su Firefox e Chrome. Tutte le variabili appaiono nella variabile $_POST senza problemi.

Su IE9, tuttavia, il modulo viene inviato correttamente, ma $_POST è l'array vuoto. I.e., in login.php:

print_r($_POST); 

stampa l'array vuoto. Sto cercando di capire cosa potrebbe essere diverso su IE9 che si sta comportando in modo diverso da Firefox e Chrome e non riesco a capirlo.

Ho trovato menzione di alcuni moduli in Apache che causano problemi alle persone, ma sto utilizzando IIS7, non Apache, quindi non è così. Qualcuno su un forum Ruby ha menzionato l'impostazione di DisableNTLMPreAuth su 1 nel registro, ma non è stato risolto.

Qualsiasi aiuto è apprezzato.

+0

Prova a impostare l'azione su se stessi e a fare print_r lì. O è login.php cosa ci stai mostrando? –

+1

Hai provato a trasmettere phpinfo()? Sarebbe interessante vedere se una qualsiasi delle variabili richieste è popolata. Ad esempio, $ _REQUEST –

+5

apre il gruppo di sviluppatori su IE (premendo F12) e passa alla scheda di rete. ora invia il tuo modulo e dai un'occhiata alla richiesta mostrata: sono i post-valori menzionati lì (che significa che il tuo problema è lato server) o sono mancanti (il problema è lato client). – oezi

risposta

-1

plz inserire l'attributo "nome" per il modulo.

<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

Il motivo è che non si sta mantenendo la sessione. In Firefox e Chrome sono molto intelligenti e mantengono la sessione indipendentemente dallo sviluppo del codice, che offre agli utenti un aspetto positivo. Ma in IE6-9, IE non può mantenere la sessione, lo sviluppatore deve controllarlo e se la sessione non viene mantenuta ogni pagina caricata è una nuova sessione e quindi non vi è alcun post.

0

Penso che questo abbia a che fare con un doppio successo, cioè che IE sta ricaricando la pagina in qualche modo. Hai qualche roba lato client (jQuery?) Che ricarica nuovamente la pagina per sbaglio come un bug? Prova a pubblicare su una pagina completamente nuova e scrivi <?PHP die ('<pre>'.print_r($_REQUEST,true).'</pre>');?> sulla riga superiore e guarda cosa succede.

1

accept-charset non è supportato in Internet Explorer. Rimuovilo e vedi se questo risolve il tuo problema.