Foros del Web » Programando para Internet » PHP »

accion una sola vez

Estas en el tema de accion una sola vez en el foro de PHP en Foros del Web. Hola.. gente...les quiero hacer una consulta ... resulta que cuando envio un formulario con datosme va al archivo enviado.php y si yo actualizo el explorador ...
  #1 (permalink)  
Antiguo 27/09/2008, 23:09
(Desactivado)
 
Fecha de Ingreso: enero-2008
Mensajes: 29
Antigüedad: 16 años, 3 meses
Puntos: 0
accion una sola vez

Hola.. gente...les quiero hacer una consulta

... resulta que cuando envio un formulario con datosme va al archivo enviado.php y si yo actualizo el explorador ( cualquiera, probe con todos) me vuleve a generar la consulta. con los mismos datos..

alguien sabe como hacer una vez que se envio el formulario por más que acualize no se envie de nuevo??

gracias
  #2 (permalink)  
Antiguo 27/09/2008, 23:28
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: accion una sola vez

Creo que podrias redireccionar luego de procesar el formulario.
  #3 (permalink)  
Antiguo 27/09/2008, 23:35
(Desactivado)
 
Fecha de Ingreso: enero-2008
Mensajes: 29
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: accion una sola vez

Ronruby... claro pero lo que pasa que yo quiero que cuando envie el formulario aparezca un mje que diga. "TITULO" ah sido enviado correctamente.. y la variable TITULO ya viene del formulario si la reedirecciono seguramente se pierda.
  #4 (permalink)  
Antiguo 28/09/2008, 00:06
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: accion una sola vez

Hmmm ... la pagina que procesa el formulario guarda los datos no?

Entonces yo lo que haria seria redireccionar con algun valor (probablemente el ID). Algo como: header("hola.php?id=5");
Por supuesto que ese dato depende de el ID insertado (puedes tomarlo usando mysql_insert_id)
y en la pagina a la que redirecciono, mediante el ID hago la consulta y muestro los datos.
  #5 (permalink)  
Antiguo 28/09/2008, 00:27
Avatar de Legoltaz  
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: accion una sola vez

Puedes hacer que solo te envíe los datos del form si están todos los campos cubiertos, de forma que si actualizas, no se enviará nada.

Código PHP:
Ver original
  1. if(!empty($campo1) && !empty($campo2) && !empty($campo3)){
  2. // sentencias para enviar
  3. }
  #6 (permalink)  
Antiguo 28/09/2008, 09:13
 
Fecha de Ingreso: mayo-2007
Mensajes: 348
Antigüedad: 17 años
Puntos: 9
Respuesta: accion una sola vez

Puedes poner el titulo que quieras y luego (aunque quede un poco.... ) le haces un meta refresh con tantos segundos.
  #7 (permalink)  
Antiguo 28/09/2008, 21:13
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: accion una sola vez

Como ya te han dicho, el problema no es de PHP. Al intentar el usuario actualizar la página que sirvió para procesar un formulario usando un método POST (la página indicada en action del tag <form>), el navegador intenta reenviar los datos del formulario paraobtener el mismo resultado en la página que se quiere reabrir. Eso es algo que no se puede evitar. La única solución, y que ya te han propuesto, es hacer una redirección usando header("Location: ...");, osea, procesar el form y redireccionar sin enviar ninguna salida al navegador. Esto hará que la página que procesa no sea tomada en cuenta en tu navegador.

Ahora, para manetener los datos puedes usar sesiones. Guardas en la página que procesa el formulario, y los tomas y borras la variable de sesión en la página a la que redirijes después.

saludos,
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 06:57.