Foros del Web » Programando para Internet » PHP »

Formularios con problemas ¿PHP o Firefox 4?

Estas en el tema de Formularios con problemas ¿PHP o Firefox 4? en el foro de PHP en Foros del Web. Fíjense el siguiente código, donde creo un form que una vez que se envía el script lo procesa, pero antes guarda en una variable de ...
  #1 (permalink)  
Antiguo 11/06/2011, 10:02
Avatar de ecarlevaro  
Fecha de Ingreso: octubre-2010
Ubicación: Paraná, Argentina
Mensajes: 80
Antigüedad: 14 años, 1 mes
Puntos: 13
Pregunta Formularios con problemas ¿PHP o Firefox 4?

Fíjense el siguiente código, donde creo un form que una vez que se envía el script lo procesa, pero antes guarda en una variable de sesión la variable $_GET['tipo'] que fue pasada por la URL:

index.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. /* Curiosidad que me rompió la cabeza con PHP, formularios y Firefox */
  4.  
  5. if (!isset($_POST['nombre']))
  6. {
  7.  echo "Entro a mostrar el formulario<br />";
  8.     $_SESSION['tipo'] = $_GET['tipo'];
  9.     echo "<form action='index.php' id='altaimagen' name='altaimagen' method='post' enctype='multipart/form-data' accept-charset='UTF-8'>
  10.     <input type='text' name='nombre' />
  11.     <input type='submit' value='Enviar!' />
  12.     </form>";
  13. }
  14. else
  15. {
  16.  echo "Entro a PROCESAR el formulario<br />
  17.     Se supone que si le doy F5  y [Reenviar] al navegador, vuelve a enviar los datos y la variable de sesión tipo no deberia cambiar porque ya fue asignada<br />";
  18.     echo "Tipo: {$_SESSION['tipo']} <br />";
  19.         var_dump($_SESSION['tipo']);
  20. }
  21.  
  22. ?>

¿Y cual es el problema? Si uno entra a index.php con index.php?tipo=1, le muestra el form, lo envía y al procesar imprime "Tipo: 1", hasta ahí todo lo esperado, ¡PERO! si le doy F5 para recargar la página y me pide volver a enviar el formulario, a lo que aceptamos, ¡aparece la magia! resulta que desaparece la variable de $_SESSION['tipo'] y de hecho no existe, var_dump devuelve NULL. Ahora prueben el mismo código en Chrome o en el fatídico IE y verán que al darle F5 la variable de sesión $tipo, como es lógico aún existe con el valor que pasamos en el query string al principio.

¡Pero es una locura! Porque hasta donde sé de PHP, yo no pasé por referencia a $_SESION['tipo'] el valor de $_GET['tipo'], lo asigné por valor, no por referencia, por lo tanto $_SESSION['tipo'] ¿no debería mantener siempre el valor que yo le asigno hasta que asigne lo contrario?.

Además la variables de sesión están en el servidor, entonces ¿cómo puede ser que dependiendo del navegador que use mi variable de sesión tiene un valor distinto al darle F5 y reenviar el form?????

Evidentemente supongo que Firefox 4 está enviando el form de una manera distinta a como lo hace IE y Chrome.... pero de todas formas ¿¡cómo va a cambiar mi variable de sesión que está en el lado del servidor!?

El ejemplo lo subí a sigmax.com.ar/test/index.php?tipo=1

Ahora bien, si yo pongo $_SESSION['tipo'] = 1 por ejemplo, es decir le asigno un integer, no hay problema, al darle F5 en Firefox 4 y reenviar el form la variable de sesion tipo mantiene su valor 1, por lo que supuse que fuera un problema con la asignacion $_SESSION['tipo'] = $_GET['tipo'] pero al ver que funciona en Chrome e IE como se espera el problema pasaría por Firefox, pero nuevamente ¿qué tiene que ver el navegador con variables de sesión?.....

Última edición por ecarlevaro; 11/06/2011 a las 10:08
  #2 (permalink)  
Antiguo 11/06/2011, 10:10
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 4 meses
Puntos: 641
Respuesta: Formularios con problemas ¿PHP o Firefox 4?

lo recargué 5 veces y me siguio dando tipo 1
  #3 (permalink)  
Antiguo 11/06/2011, 10:39
Avatar de ecarlevaro  
Fecha de Ingreso: octubre-2010
Ubicación: Paraná, Argentina
Mensajes: 80
Antigüedad: 14 años, 1 mes
Puntos: 13
Respuesta: Formularios con problemas ¿PHP o Firefox 4?

Ahi reinicie Firefox y me sigue pasando lo mismo... probaré en otra PC... porque es raro...

Etiquetas: firefox, sesión, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:43.