Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/01/2009, 09:11
Avatar de gorkreg
gorkreg
 
Fecha de Ingreso: julio-2008
Mensajes: 305
Antigüedad: 15 años, 9 meses
Puntos: 8
Formulario. Cómo colocar texto de "mensaje enviado"

Tengo un formulario de contacto programado en PHP y enlazado a una página HTML. Lo que quiero conseguir es que al enviar el mensaje aparezca una casilla de texto con "El mensaje se ha enviado correctamente..." o "El mensaje no ha podido ser enviado..." (en el caso de que no se haya rellenado la dirección email. Esto ya está programado y funciona).

¿Cómo se consigue sin tener que abrir una nueva página HTML que sería una copia de la anterior pero con el texto incluído? Espero haberme explicado.

Os incluyo el código del archivo PHP. Ahora lo que sucede tras enviar el comentario es que se abre una nueva página HTML (ok.html o error.html):

<?php

// variables
$EmailFrom = "[email protected]";
$EmailTo = "[email protected]";
$Subject = "Formulario de contacto";
$nombre = Trim(stripslashes($_POST['nombre']));
$email = Trim(stripslashes($_POST['email']));
$comentario = Trim(stripslashes($_POST['comentario']));

// validacion
$validationOK=true;
if (Trim($email)=="") $validationOK=false;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
exit;
}

// cuerpo del email
$Body = "";
$Body .= "nombre: ";
$Body .= $nombre;
$Body .= "\n";
$Body .= "email: ";
$Body .= $email;
$Body .= "\n";
$Body .= "comentario: ";
$Body .= $comentario;
$Body .= "\n";

// enviar el mail
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redireccionamiento
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=ok.html\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>

Gracias