Foros del Web » Programando para Internet » PHP »

Resultado de un formulario, ignorar datos en caso de actualizar

Estas en el tema de Resultado de un formulario, ignorar datos en caso de actualizar en el foro de PHP en Foros del Web. Hola Si ya se ha solucionado este tema varias veces, lo siento, pero no encuentro la solucion. Cuando enviamos un formulario, si pulsamos F5 o ...
  #1 (permalink)  
Antiguo 21/01/2005, 01:08
 
Fecha de Ingreso: enero-2002
Mensajes: 31
Antigüedad: 22 años, 3 meses
Puntos: 0
Resultado de un formulario, ignorar datos en caso de actualizar

Hola

Si ya se ha solucionado este tema varias veces, lo siento, pero no encuentro la solucion.

Cuando enviamos un formulario, si pulsamos F5 o Actualizar en la pagina de resultados, nos da un "error" que nos pregunta si queremos volver a reenviar los datos. Si el usuario dice reenviar los datos se vuelven a mandar y la finalidad del formulario se ve perjudicada ya que se duplican los datos o se pone mas votos de los permitidos, o 2 respuestas en un foro....

Como puedo destruir esos datos para que se olvide de ellos una vez enviados y que al Actualizar ya no existan.

Como informacion, ese formulario pertenece a una sesion y saco las variables con $_POST.

He leido por ahi algo de poner un ID unico o algo asi al formulario, que una vez pasado mediante la sesion se destruye y ya no sirven mas esos datos o ese ID aunque actualices, pero no me aclaro.

Gracias.
  #2 (permalink)  
Antiguo 21/01/2005, 02:10
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Otra opcion es que la pagina de resultado no sea la que actualiza la base de datos. Tienes

form1.php

<form action="actualizar.php">

en actualizar.php

codigo de actualizar
header("Location: resultado.php");

y en resultado.php muestras la pagina de resultados.

Si haces el f5 en resultado.php, el navegador repite la peticion del header(), no el POST del formulario.

Salduos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 21/01/2005, 12:28
 
Fecha de Ingreso: enero-2002
Mensajes: 31
Antigüedad: 22 años, 3 meses
Puntos: 0
Muchisimas gracias. Va perfecto y ademas imperceptible por el usuario.

Me he atascado un poco intentando propagar SID por el Header("Location:... pero al final perfecto, por cierto, solucinado asi:

session_start();
$sid=session_name()."=".session_id(); (esto lo he encontrado en otro post tuyo)

y luego...

Header("Location: loquesea.php?$sid&lang=$lang&web=$web");
  #4 (permalink)  
Antiguo 21/01/2005, 12:52
 
Fecha de Ingreso: enero-2005
Ubicación: Valparaiso - Chile
Mensajes: 116
Antigüedad: 19 años, 2 meses
Puntos: 0
otra solucion podria ser hacer un contador, he visto en varios manuales al tratar de explicar las sesiones un contador simple que cada vez que se recarga la pagina aumenta en 1 el contador, esto se hace con sesiones.
  #5 (permalink)  
Antiguo 21/01/2005, 14:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Yoko_cl
otra solucion podria ser hacer un contador, he visto en varios manuales al tratar de explicar las sesiones un contador simple que cada vez que se recarga la pagina aumenta en 1 el contador, esto se hace con sesiones.
Igualmente el navegador ante la recarga de página de unos datos que han llegado por POST va a solicitar reenviar los datos .. sólo que tus sistema de sesiones y validación tal vez no permita "duplicar" el dato .. pero el "engorro" del usuario que le va aparecer dicho mensaje .. Usa el método que recomiendo josemi.

Un saludo,
  #6 (permalink)  
Antiguo 21/01/2005, 14:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Enric Roca
Muchisimas gracias. Va perfecto y ademas imperceptible por el usuario.

Me he atascado un poco intentando propagar SID por el Header("Location:... pero al final perfecto, por cierto, solucinado asi:

session_start();
$sid=session_name()."=".session_id(); (esto lo he encontrado en otro post tuyo)

y luego...

Header("Location: loquesea.php?$sid&lang=$lang&web=$web");
SID es también una constante . .así que puedes usarla tipo:

Código PHP:
Header("Location: loquesea.php?".SID."&lang=$lang&web=$web"); 
Un saludo,
  #7 (permalink)  
Antiguo 21/01/2005, 16:28
 
Fecha de Ingreso: enero-2002
Mensajes: 31
Antigüedad: 22 años, 3 meses
Puntos: 0
Cita:
Iniciado por Cluster
Código PHP:
Header("Location: loquesea.php?".SID."&lang=$lang&web=$web"); 
Mira que probé con ' sin ' con ., buf... pero nunca se me ocurrio cerrar " y volver a abrir.
  #8 (permalink)  
Antiguo 23/01/2005, 13:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Enric Roca
Mira que probé con ' sin ' con ., buf... pero nunca se me ocurrio cerrar " y volver a abrir.
Bueno .. esos problemas los tubistes por què es una "constante" y como tal en PHP las constantes no van entre comillas .. por què sino asì son "stings" no constantes.

Repasa ese tema de "constantes" en el manual oficial de PHP para aclararte dudas.

Un saludo,
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 18:09.