[Php-avanzado] Consulta

Leandro Schereik lschereik en hotmail.com
Mar Mar 23 12:00:43 ART 2010


Hola Leo:

> From: leonardot en pegasusnet.com.ar
> To: php-avanzado en pato2.fi.mdp.edu.ar
> Date: Tue, 23 Mar 2010 11:29:42 -0300
> Subject: Re: [Php-avanzado] Consulta
> 
> Hola Leandro,
> 
> El mar, 23-03-2010 a las 04:31 +0000, Leandro Schereik escribió:
> > Hola a todos una consulta para hacer: tengo dos paginas una es
> > abm_categ.php en la que llamo a alta_categ.php por medio de un
> > include.
> > La idea es realizar altas de categorias pero cuando inserto y luego
> > actualizo la pagina con F5 sigue tratando de insertar
> > no lo hace por que lo controlo con un if, pero me sigue saliendo el
> > mensaje por pantalla "La categoria ya esta dada de alta en el
> > sistema."
> >    
> > ¿Al tener if (isset($_GET["sub_categ"]) no tendria que entrar solo si
> > esta seteado el boton sub_categ y no emitir el mensaje:"La categoria
> > ya esta dada de alta en el sistema."?
> 
> 	Sí, tendría, pero el navegador al presionar F5 no solo recarga la
> página, sino que vuelve a enviar los datos de formularios (más que
> "recargar", sería "repetir", y por tanto obtenés el mensaje de la
> categoría repetida, porque en realidad estás volviendo a ingresarla.
> 	Tu validación del lado del servidor previene la inconsistencia de
> datos!
> 
> 	Digamos que este comportamiento del navegador no es una fallo, sino una
> característica...
> 
> 	La solución no es linda: hacés que el formulario vaya a otro script,
> por ejemplo ins_categ.php que tiene todo el código de la inserción pero
> ninguna salida. Luego de insertar, la última línea hace un
> header("Location: abm_categ.php") con lo que el script salta a la
> interfaz del usuario.
> 	De esta manera al presionar F5, no estás recargando ins_categ.php sino
> abm_categ.php, que ahora no hace nada.

Perfecto lo probe y anda barbaro.

> 
> 	La contra de este mecanismo es que tenés que implementar alguna forma
> de pasarle a abm_categ.php los mensajes de error o de Ok, para dar
> feedback al usuario. 

Leo: ¿Esta bien como estoy estructurando el codigo para la inserccion o habria otra manera mas prolija? Asi no me tengo que complicar con lo que me explicas mas abajo.


> 	Se puede implementar con sesiones o vía URL header("Location:
> abm_categ.php?msg=Categoria+agregada"). Lo único que hace abm_categ.php
> es mostrar el mensaje y decorarlo diferente si es de error u Ok.
> 	Esto se complica cuando además del mensaje, teneś que pasarte la página
> del paginador o más parámetros... es algo a pensar de antemano.
> 
> 	También podés ignorar todo esto: el mensaje "La categoria ya esta dada
> de alta en el sistema." es correctísimo porque al presionar F5, el
> usuario está reenviando el formulario y tu sistema le impide la
> inconsistencia.
> 
> > Muchas Gracias 
> 
> 	Por nada!
> -- 
> 

Gracias


> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> http://blog.pegasusnet.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
> 
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
 		 	   		  
_________________________________________________________________
Navegación más simple. Diseño más liviano. Hotmail ahora carga un 70% más rápido. Ver más
http://www.descubrewindowslive.com/hotmail/velocidad.asp  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/private/php-avanzado/attachments/20100323/6f0d47c3/attachment.htm 


Más información sobre la lista de distribución Php-avanzado