2012-05-21 18 views
6

El siguiente formulario causa una variable $_POST vacía en 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> 

El formulario funciona perfectamente en Firefox y Chrome. Todas las variables aparecen en la variable $_POST sin problemas.

En IE9, sin embargo, el formulario se envía correctamente, pero $_POST es la matriz vacía. Es decir, en login.php:

print_r($_POST); 

imprime la matriz vacía. Estoy tratando de descubrir qué podría ser diferente de IE9 que hace que se comporte de forma diferente a Firefox y Chrome y no puedo entenderlo.

Encontré la mención de algún módulo en Apache que está causando problemas a las personas, pero estoy ejecutando IIS7, no Apache, así que eso no es todo. Alguien en un foro de Ruby mencionó establecer DisableNTLMPreAuth a 1 en el registro, pero eso tampoco lo ha solucionado.

Cualquier ayuda es apreciada.

+0

Intenta establecer la acción en self y hacer print_r allí. ¿O es login.php lo que nos está mostrando? –

+1

¿Ha intentado generar phpinfo()? Sería interesante ver si alguna de las variables de solicitud está llenando. Por ejemplo, $ _REQUEST –

+5

abre la consola del desarrollador en IE (presionando F12) y cambia a la pestaña de red. ahora envíe su formulario y eche un vistazo a la solicitud que se muestra: son los valores posteriores mencionados allí (lo que significa que su problema es del lado del servidor) o faltan (el problema es del lado del cliente). – oezi

Respuesta

-1

por favor ingrese el atributo "nombre" para la forma.

<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

La razón es que no está manteniendo la sesión. En Firefox y Chrome son muy inteligentes y mantienen la sesión independientemente del Desarrollo del Código, que brinda a los usuarios una buena cosa. Pero en IE6-9, IE no puede mantener la sesión, el desarrollador debe verificarla y si la sesión no se mantiene, cada página cargada es una sesión nueva y, por lo tanto, no hay publicación.

0

Creo que esto tiene que ver con un doble golpe, es decir, que IE está volviendo a cargar la página de alguna manera. ¿Tienes algo del lado del cliente (jQuery?) Que vuelve a cargar la página por accidente como un error? Intente publicar en una página completamente nueva y escriba <?PHP die ('<pre>'.print_r($_REQUEST,true).'</pre>');?> en la línea superior y vea lo que sucede.

1

accept-charset no es compatible con Internet Explorer. Quítelo y vea si eso resuelve su problema.