Recargar pagina php

Iniciado por kakashi20, 12 Septiembre 2014, 03:10 AM

0 Miembros y 1 Visitante están viendo este tema.

kakashi20

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.

Graphixx

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.
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

Pablo Videla

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.

MinusFour

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.

JorgeEMX

Ocupa AJAX para tal motivo. Los navegador por defecto tienen ese comportamiento cuando se envía peticiones POST y éste los detecta.

Graphixx

Te dejo un ejemplo sencillo de usar AJAX con la BD incluida.
http://www.4shared.com/zip/bemLccivba/ejajax.html
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog