Foros del Web » Programando para Internet » PHP »

Warning page has expired

Estas en el tema de Warning page has expired en el foro de PHP en Foros del Web. Hola, Como se puede evitar este mensaje "Warning page has expired". Aunque sea un aviso correcto ya que el formulario que se envió ha caducado, ...
  #1 (permalink)  
Antiguo 09/11/2006, 02:50
 
Fecha de Ingreso: abril-2006
Mensajes: 76
Antigüedad: 18 años
Puntos: 0
Warning page has expired

Hola,

Como se puede evitar este mensaje "Warning page has expired". Aunque sea un aviso correcto ya que el formulario que se envió ha caducado, no quiero que si un usuario va hacia atrás tenga que pulsar "refrescar" para volver a ver el formulario.

Saludos.
Yartax.
  #2 (permalink)  
Antiguo 09/11/2006, 07:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si no dejas el proceso PHP en el script que debe mostrar una página (un mensaje de error/exito) no tendrías que tener problemas de ese estilo.

Se trata de "redireccionar" siempre que hagas un proceso PHP ..

Por ejemplo:

El típico proceso:
pido datos en un formulario HTML -> procesa.php

proceso.php
Código PHP:
<?

// proceso PHP .. insertar datos en BBDD, enviar un e-mail .. etc.
// En general el script PHP que recibe los datos de un formulario HTML en método POST (no aplicable a "GET");
// Da igual si es el mismo script el que contenga el formulario o si es aparte.

if (todo bien){
  echo 
"muestro mensaje";
}else{
  echo 
"muestro mensaje";
}
?>
En este caso, si recargas la página . .el navegador almacena para esta página los datos que se le enviaron .. así que intentará enviarlos de nuevo y/o caducará la página (si usas sesiones sobre todo).


Lo Correcto sería redireccionar al terminar el proceso a otro script .. aunque sea a si mismo, ahí el navegador "descarta" toda variable en "POST" que tuviera.

proceso.php
Código PHP:
<?

// proceso PHP .. insertar datos en BBDD, enviar un e-mail .. etc.
// En general el script PHP que recibe los datos de un formulario HTML en método POST (no aplicable a "GET");
// Da igual si es el mismo script el que contenga el formulario o si es aparte.

if (todo bien){
  
header ("Location: mensajes.php?msg=ok");
  exit;
}else{
  
header ("Location: mensajes.php?msg=error");
  exit;
}
?>
De esta forma redireccionas a "mensajes.php" (por decir un ejemplo) .. ahí procesas vía la variable que le pasas el "mensaje" acorde que debes presentar. Si "recargo" la página no originaré un proceso nuevo en "procesa.php" pues ya estoy en "mensajes.php" .. si vuelvo hacia atras con mi navegador llegaré al formulario como si entrase por primera vez.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 15:51.