Foros del Web » Programando para Internet » PHP »

Mandar formulario a email

Estas en el tema de Mandar formulario a email en el foro de PHP en Foros del Web. Hola. He escrito antes, y se me ha olvidado decir que ya tengo un codigo hecho es este: Formulario(incluido en pagina.htm): <table width="94%" border="0"> <tr> ...
  #1 (permalink)  
Antiguo 27/11/2003, 16:01
 
Fecha de Ingreso: octubre-2003
Mensajes: 280
Antigüedad: 21 años
Puntos: 1
Mandar formulario a email

Hola. He escrito antes, y se me ha olvidado decir que ya tengo un codigo hecho es este:

Formulario(incluido en pagina.htm):

<table width="94%" border="0">
<tr>
<td><FORM method=GET action="mandarmail.php">
<TABLE width="100%" border=0>
<TBODY>
<TR>
<TD align=right width="48%"><div align="right"><strong><font color="#FF8040" size="1" face="Arial, Helvetica, sans-serif">(1)</font><font size="2" face="Arial, Helvetica, sans-serif">NOMBRE---------------------------
</font></strong></div></TD>
<TD width="52%"><strong><font size="2" face="Arial, Helvetica, sans-serif">
<INPUT maxLength=50 name=nombre>
</font></strong></TD>
</TR>
<TR>
<TD align=right width="48%"><div align="right"><strong><font size="2" face="Arial, Helvetica, sans-serif">APELLIDOS-----------------------</font></strong></div></TD>
<TD width="52%"><strong><font size="-2" face="Arial, Helvetica, sans-serif">
<INPUT maxLength=50 name=apellidos>
</font></strong></TD>
</TR>
<TR>
<TD align=right width="48%"><div align="right"><strong><font color="#FF8040" size="1" face="Arial, Helvetica, sans-serif">(1)</font><font size="2" face="Arial, Helvetica, sans-serif">DNI------------------------------------</font></strong></div></TD>
<INPUT type=image src="images/enviar.gif" value=Enviar name=enviar>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;
<INPUT type=image src="./images/borrar.gif" value=Borrar name=borrar onclick="reset();return false"
>
</TR>
</TBODY>
</TABLE>
</FORM>


Y el archivo mandarmail.php:


<?php
$destinatario = "[email protected]";
$asunto = "Registro Usuarios";
$cuerpo =" <html>
<h4> Datos del usuario :</h4>
<p> NOMBRE: $nombre </p>
<p> APELLIDOS : $apellidos </p>
<p> DNI : $dni </p>
";

mail($destinatario,$asunto,$cuerpo);
?>


Bien, tal como esta, envia el formulario a la direccion de email, y una vez que lo envia va automaticamente al dominio en donde esta el archivo mandarmail.php (que es lycos). bueno, lo que yo quiero es que una vez que manda el e-mail sea redireccionado a pagina2.htm (por ejemplo).

Gracias.
  #2 (permalink)  
Antiguo 27/11/2003, 16:08
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
entonces
despues de

mail($destinatario,$asunto,$cuerpo);

pones

header("location:pagina2.htm");
__________________
No tengo firma ahora... :(
  #3 (permalink)  
Antiguo 27/11/2003, 16:19
 
Fecha de Ingreso: octubre-2003
Mensajes: 280
Antigüedad: 21 años
Puntos: 1
ya me han contestado con lo de header, pero como se hace para que una vez que se ha enviado el formulario, el usuario reciba un email notificandolo?
  #4 (permalink)  
Antiguo 27/11/2003, 16:24
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
despues de

mail($destinatario,$asunto,$cuerpo);

pones

$agradecimiento="Su email ha sido recibido y bla bla bla...";
mail($email,"Gracias",$agradecimiento);

se supone que $email es el dato del email del que envia el correo, el cual debes capturar
__________________
No tengo firma ahora... :(
  #5 (permalink)  
Antiguo 27/11/2003, 16:35
 
Fecha de Ingreso: octubre-2003
Mensajes: 280
Antigüedad: 21 años
Puntos: 1
Bueno tengo otras dudas:

Quiero, q al enviar el mensaje, salga un mensaje diciendo que ha sido enviado con exito y vaya a la pagina2.htm. Lo he hecho de la siguiente manera :

mail($destinatario,$asunto,$cuerpo);
echo("Mensaje enviado satisfactoriamente. En breve recibiras un e-mail a tu cuenta de correo");

$agradecimiento="Su email ha sido recibido satisfactoriamente. Si encontramos algun error, se le notificará en un plazo máximo de 24 horas.
";
mail($mail,"Gracias",$agradecimiento);
header("location:pagina2.htm");

?>

Pero no va a la pagina2, sino que se queda con el mensaje de echo. ¿Como lo hago?
  #6 (permalink)  
Antiguo 27/11/2003, 16:42
 
Fecha de Ingreso: octubre-2003
Mensajes: 280
Antigüedad: 21 años
Puntos: 1
Y por ultimo, con todo lo que se ha enviado, como hago para que en el mensaje salga :

MENSAJE
-----------

Estimado <nombre>:
..........................


Fdo: x

No se si en php las etiquetas son las mismas que en html, por eso no estoy seguro. Falta lo de poner el nombre.

Lo he puesto asi:

$agradecimiento="MENSAJE DE REDIRECCIONAMIENTO :
<P>-------------------------------<p>
<p>Estimado <aqui iria el nombre> </p>
<p></p>
<p>Los datos del formulario han sido recibidos satisfactoriamente.<p>
<p>Si encontramos algun error, se le notificará en un plazo máximo de 24 horas.</p>
<p><b>El equipo técnico de alaporra.com</b></p>";
mail($mail,"Gracias",$agradecimiento);
  #7 (permalink)  
Antiguo 27/11/2003, 16:56
 
Fecha de Ingreso: octubre-2003
Mensajes: 280
Antigüedad: 21 años
Puntos: 1
Lo he probado, y como es lógico no funciona. ¿Entonces como se configura?
  #8 (permalink)  
Antiguo 27/11/2003, 17:25
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
En las FAQs de PHP encontraras como se envia un mail con HTML, que es lo que quieres.

Lo otro. Pues, bien, si haces echo ya no puedes redireccionar. O sea, o muestras el mensaje o redireccionas.

Asi que la solucion es que muestres el mensaje y pongas un boton o un link que redireccione.
__________________
No tengo firma ahora... :(
  #9 (permalink)  
Antiguo 28/11/2003, 04:48
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 2 meses
Puntos: 41
lo mejor que puedes hacer es no poner el "echo" en la misma página porque si se recarga la página, se enviará el mail otra vez. O sea que algún malintencionado podría dedicarse a recargar y recargar la página un buen rato y te estaría llenando la cuenta de correo.

En lugar de eso, lo que deberías hacer es primero
enviar los dos mails y luego redireccionar a una página donde salga el mensaje de "Mensaje enviado satisfactoriamente... etc...."
mail($destinatario,$asunto,$cuerpo);
mail($mail,"Gracias",$agradecimiento);
header ("location :mensajegracias.html")

Y en el mensajegracias.html poner una etiqueta <meta> que redireccione la página luego de algunos segundos recién a pagina2.htm...

Espero se haya entendido.

Saludos
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 12:55.