Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: kakashi20 en 12 Septiembre 2014, 03:10 am



Título: Recargar pagina php
Publicado por: kakashi20 en 12 Septiembre 2014, 03:10 am
Hola

Normalmente cuando uno programa en php y tiene una formulario y al efectuar este form, se envía a otra pagina donde internamente se ejecuta por medio de un script php alguna instruccion sql, ya se de insertar, update, delete, etc..

El detalle viene su el usuario por curiosidad, o por algún otro motivo le da click en recargar esa pagina, ese script sql en php vuelve y se ejecuta, y eso seria muy molesto que de pronto se inserte doble o salga un error porque se ejecuta de nuevo eso.

Como se podría evitar eso ?

He visto aplicaciones que recargan esas pagina donde se ejecuta algún formulario y no sucede eso de lo que estoy hablando.

Alguna sugerencia o ayuda sobre esto ?

Gracias.


Título: Re: Recargar pagina php
Publicado por: Graphixx en 12 Septiembre 2014, 03:25 am
Por lo general los datos estan ligados a una clave primaria (primary key) que se definio al maquetar el SQL, lo que uno hace es verificar si por el campo primario ya se agregaron los datos del formulario no se vuelven a agregar... ahora bien otro tema es que fuera algo estilo un formulario de contacto ese no verifica nada y simplemente vuelve y ejecuta todo, en ese sentido no se me ocurre nada. Depronto con variables de sesion se podria controlar, y algun codigo que no destruya la variable de sesion hasta que se cierre la ventana.


Título: Re: Recargar pagina php
Publicado por: Pablo Videla en 12 Septiembre 2014, 21:53 pm
Puedes hacer un redireccionamiento a la pagina anterior si vas a otro script, que vuelva a una pagina anterior desde php o puedes usar ajax para enviar la peticion por debajo sin recargar nada, hay muchas otras opciones mas.

O para que no inserte lo mismo, valida que eso que registraste no exista antes de enviarlo nuevamente.

Todo depende de lo que estas haciendo y de lo que quieres evitar exactamente.


Título: Re: Recargar pagina php
Publicado por: MinusFour en 13 Septiembre 2014, 19:18 pm
Si usas POST para tu inserciones de SQL, el navegador debería alertar al usuario que está tratando enviar información nuevamente al servidor.

Claro que siempre deberías tener una especie de control desde el backend para evitar acciones duplicadas.


Título: Re: Recargar pagina php
Publicado por: JorgeEMX en 14 Septiembre 2014, 05:46 am
Ocupa AJAX para tal motivo. Los navegador por defecto tienen ese comportamiento cuando se envía peticiones POST y éste los detecta.


Título: Re: Recargar pagina php
Publicado por: Graphixx en 16 Septiembre 2014, 15:46 pm
Te dejo un ejemplo sencillo de usar AJAX con la BD incluida.
http://www.4shared.com/zip/bemLccivba/ejajax.html