Foros del Web » Programando para Internet » PHP »

Como puedo evitar el reenvio de informacion cuando actualizo la pagina

Estas en el tema de Como puedo evitar el reenvio de informacion cuando actualizo la pagina en el foro de PHP en Foros del Web. Me encuentro desarrollando una aplicacion por medio de variables de sesion en PHP y utilizando como gestor de base de datos MySql. Mi problema es ...
  #1 (permalink)  
Antiguo 07/02/2004, 16:42
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 3
Antigüedad: 20 años, 2 meses
Puntos: 0
Como puedo evitar el reenvio de informacion cuando actualizo la pagina

Me encuentro desarrollando una aplicacion por medio de variables de sesion en PHP y utilizando como gestor de base de datos MySql.

Mi problema es el siguiente, tengo una pagina en la cual el script en PHP recoje y guarda en la base de datos la informacion proveniente de un formulario con el metodo "POST". Hasta aqui no tengo problemas, pero cuando doy click en actualizar en el boton del navegador este me desprende el siguiente mensaje:

"La pagina no actualizarse sin reenviar la informacion...."

Y al aceptar este mensaje me reenvia de nuevo toda la informacion duplicandome el ultimo registro en la base de datos.

¿COMO PUEDO EVITAR ESTO?


Espero me haya hecho entender.

Agradeceria su pronta ayuda...

Scorpion88
  #2 (permalink)  
Antiguo 07/02/2004, 17:00
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Ese es un problema bastante frecuente... ¿la solución? pues tratar de separar el proceso de inserción del nuevo registro de la presentación de información en pantalla.

Por ejemplo puedes tener un script llamado "insertar.php" que únicamente se conecte a la BD, inserte el registro y luego redireccione a otra página.

Y los datos del form los envías a este script:
<form action="insertar.php" ...

La estructura del script insertar.php sería algo así:
Código PHP:
//Conexión a la BD
$link mysql_connect(........ //y todo lo demás

//Inserción del registro:
mysql_query("INSERT INTO tabla ..."//Y lo demás

//Redirección
header("location: resultados.php"); 
De esa forma el proceso se hará "internamente" y el usuario verá pasar del form al "resultados.php" y cuando actualices se actualizará "resultados.php" y no se volverá a insertar el registro.

espero que se haya entendido..

Saludosadios::
  #3 (permalink)  
Antiguo 07/02/2004, 17:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Está para FAQ este tema (por lo recurrente) .. ¿Te animas jpinedo? ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 07/02/2004, 20:37
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Vaya otra cosa nueva que he aprendido :D gracias !!
  #5 (permalink)  
Antiguo 07/02/2004, 20:41
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Cita:
Mensaje Original por jpinedo
Código PHP:
//Conexión a la BD
$link mysql_connect(........ //y todo lo demás

//Inserción del registro:
mysql_query("INSERT INTO tabla ..."//Y lo demás

//Redirección
$phpself $_SERVER['PHP_SELF'];
header("location: $phpself?"); 
funcionaria asi tambien o no?
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol

Última edición por Gerald; 07/02/2004 a las 20:43
  #6 (permalink)  
Antiguo 07/02/2004, 20:54
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Gerald... yo he tratado de explicar más o menos la lógica... lo que tu propones ya es un ejemplo menos flexible.... no sé si has entendido a qué se refiere este post... la redireción puede ser a cualquier lado... l idea es separar los procesos generado por el POST...

Saludos
  #7 (permalink)  
Antiguo 08/02/2004, 12:49
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 3
Antigüedad: 20 años, 2 meses
Puntos: 0
Jpinedo...he puesto en practica la solucion que me sugeriste y pude solucionar todos los problemas ..

¡¡¡ Gracias !!!!
Scorpion88
  #8 (permalink)  
Antiguo 08/02/2004, 16:14
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 20 años, 3 meses
Puntos: 0
A mi me passa algo parecido, tengo una tabla en que los headers son desplegables, en funcion de que opcion del desplegable escojas, te filtra los resultados.

Cada vez que voy adeltante/atras o actualizo me indica que se tienen que enviar los datos.

Yo tambien tendria que hacer header+location?
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 02:26.