Foros del Web » Programando para Internet » PHP »

vista previa del mensaje

Estas en el tema de vista previa del mensaje en el foro de PHP en Foros del Web. tengo un formulario de envio de correos en formato html, en el cual para enviar un correo utilizo todo tipos de etiquetas soportadas por este ...
  #1 (permalink)  
Antiguo 31/03/2005, 08:48
Avatar de satake  
Fecha de Ingreso: julio-2004
Mensajes: 140
Antigüedad: 19 años, 8 meses
Puntos: 0
vista previa del mensaje

tengo un formulario de envio de correos en formato html, en el cual para enviar un correo utilizo todo tipos de etiquetas soportadas por este lenguaje, quisiera saber si hay alguna forma de hacer una vista previa del mensaje antes de enviarlo, por las dudas dejo el codigo del script, asi me pueden ayudar mejor, o quizas a alguien le sirve sin la vista previa y lo puede usar, chau.

Código PHP:
 <html>
<head>
<title>Mandar correos en HTML</title>
<script>
function cerrarse(){
 window.close()
}
</script>
</head>
<body bgcolor="#c4e9f7">
<!-- formulario de envío de correos -->
<? if ($_GET["accion"] == "") {
?>
<form method="POST" action="html.php?accion=enviar" name="html" style="background-color: #C4E9F7">
<center><font face="Courier">
<b>Mandar correos</b><br><br>
<br><b>De (e-mail):</b>
<br><input type="text" name="remitente" size="26"><br>
<b>Para (e-mail):</b>
<br><input type="text" name="destinatario" size="26"><br><br>
<b>Asunto:</b>
<br><input type="text" name="asunto" size="26"><br><br>
<b>Mensaje:</b>
<br><textarea rows="14" name="mensaje" cols="66"></textarea><br><br>
<input type="submit" value="Enviar">
</center>
</font>
</form>
<!-- envío del formulario y acuse de envío o información de errores -->
<?
}
elseif (
$_GET["accion"] == "enviar") {
// recojo las variables que vienen desde el formulario
$destinatario $_POST["destinatario"];
$asunto $_POST["asunto"];
$remitente $_POST["remitente"];
$mensaje $_POST["mensaje"];
// si los campos no están vacíos
  
if ($destinatario != "" && $mensaje != "" && $remitente != "") {
//Recibo el formulario, compongo el cuerpo
     
$cuerpo "$mensaje";
//indica de que variable viene el remitente
     
$encabezado "From:" $remitente "\n";
     
$encabezado .= "Content-Type: text/html";
//envía el mensaje
     
mail($destinatario,$asunto,$cuerpo,$encabezado);
//Informa al usuario que se ha enviado el mensaje
     
echo "<center><b>Tu mensaje ha sido enviado.<p><a href='html.php'>Enviar otro mensaje en HTML.</a></b><br><br></center>";
     }
//si existen campos vacíos, envía un mensaje de error
     
else {
     echo 
"<center>Por favor, es necesario que completes <b>todos</b> los campos.<br></center>";
     echo 
"<center>Haz click <b><a href='html.php'>aquí</a></b> para completar los campos vacíos.<br></center>";
     }
}
?>
<center>
<a href="#" onclick="cerrarse()">Cerrar ventana</a>
</center>
</body>
</html>
__________________
:aplauso: www.aponlinevillaguay.com.ar :aplauso:

Cita:
Iniciado por alguien
El arca de Noé fue hecha por principiantes, el Titanic por "profesionales".
  #2 (permalink)  
Antiguo 31/03/2005, 09:01
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
La forma más rapida de hacer una vista previa es agregarle una accion a $_GET, es decir vos define si accion esta vacio mostrar el formulario, si accion es igual a enviar ingresas los datos. Lo q puedes hacer es poner $_GET["accion"] == "previo";
Creas un formulario con todos los datos q te envía $_POST, pero con hidden, es decir oculto.
imprimis todas las variables q te envía el $_POST para q el usuario pueda ver q puso, y en el form oculto pones dos botones, uno, el submit q iría a $_GET["accion"] == "enviar" y otro q iria a $_GET["accion"] == ""; es decir si el usuario quiere modificar el contenido, le mostraría otra vez el formulario.
En realidad no se si esto será lo más facil, pero creo q debería de funcionar bien,
Saludos
__________________
Dios dira que esto no es justo, pero lo sera...
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 13:54.