Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/11/2006, 07:28
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 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.