Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/02/2005, 08:25
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
demas, si actualizara (f5) se volverian a enviar correos, asi que pregunto
¿se puede poner un formulario en otra pagina?¿como? gracias
No se trata de poner o no tu formulario en otro "script" (hablemos de escript a todo ese código bajo un mismo .php) sino de realizar una petición nueva al servidor (otro proceso) al terminar el tuyo

Es decir .. al enviar tu e-mail, al usar mail() ahí en lugar de mostrar tu mensaje de error/exito redireccionas a tu script que procese los mensajes de error .. El objetivo es no ocasionar ninguna "salida" (HTML echo "algo .." etc) al navegador (cliente) en procesos "puros" de PHP como el de enviar tu e-mail por ejemplo.

Podría ser algo así:
Código PHP:
if ($bien){
  
header ("Location: script_control_mensajes?mensaje=1.php");
  exit;
} else {
  
header ("Location: script_control_mensajes.php?mensaje=2");
  exit;

Ese "script_control_mensajes.php" podría ser tu mismo script que procesa el envio del e-mail .. pero necesitarías basarte en la existencia (y valor tal vez) de esa variable de control "mensaje" que nos llega por el URL (en GET) para definir si corresponde ejecutar tu proceso (usar mail() ... etc) o bien sólo mostrar el mensaje de error/exito que corresponda

algo tipo:

Código PHP:
if (isset ($_GET['mensaje'])){

   
$bien=mail(); // envias tu e-mail .. con etc procesos ..
   
if ($bien){
      
header ("Location: script_control_mensajes?mensaje=1.php");
      exit;
   } else {
      
header ("Location: script_control_mensajes.php?mensaje=2");
      exit;
   }
} else {

echo 
"Mensaje: ".$_GET['mensaje']; // aquí te puedes gestionar un simple array para contener tus frases de mensajes ...

Mas o menos esa es la idea .. redireccionar y con exit; parar la ajecución del script en ese punto (no nos interesa que se ejecute más el script . vamos a "cambiar" de script .. sea a si mismo en otra parte del mismo que define la lógica que usamos a base de los condicionales "if" o de otro tipo .. o bien a otro script incluso.

Un saludo,