Foros del Web » Programando para Internet » PHP »

formulario da el mail, no vuelve a la página

Estas en el tema de formulario da el mail, no vuelve a la página en el foro de PHP en Foros del Web. hola. tengo un formulario de contacto el cual no me muestra el mail del remitente al recibirlo y cuando confirma que fue enviado quisiera que ...
  #1 (permalink)  
Antiguo 27/06/2015, 16:23
 
Fecha de Ingreso: mayo-2014
Mensajes: 64
Antigüedad: 10 años
Puntos: 1
formulario da el mail, no vuelve a la página

hola. tengo un formulario de contacto el cual no me muestra el mail del remitente al recibirlo y cuando confirma que fue enviado quisiera que quede en la misma página.
espero me puedan ayudar.
Código HTML:
Ver original
  1. <FORM id="contacto" name="contacto" action="enviar.php" method="POST">
  2. <label>Nombre</label>
  3. <input type="text" name="nombre" required placeholder="Escribe tu nombre aquí" required>
  4. <label>Apellido</label>
  5. <input type="text" name="apellidos" required placeholder="Escribe tu apellido aquí" required>
  6. <label>E-mail</label>
  7. <input type="email" name="email" required placeholder="Tu e-mail" required>
  8.   <label>Mensaje</label>
  9. <input class="mensaje" type="text" name="mensaje" required placeholder="Escribe tu mensaje aquí" required>
  10.  
  11.     <input type="submit">
  12.  
  13. </FORM>
Código PHP:
Ver original
  1. <?php
  2. $nombre = $_POST['nombre'];
  3. $mail = $_POST['mail'];
  4.  
  5.  
  6. $header = 'From: ' . $mail . " \r\n";
  7. $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  8. $header .= "Mime-Version: 1.0 \r\n";
  9. $header .= "Content-Type: text/plain";
  10.  
  11. $mensaje = "Este mensaje fue enviado por " . $nombre . ", \r\n";
  12. $mensaje .= "Su e-mail es: " . $mail . " \r\n";
  13. $mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
  14. $mensaje .= "Enviado el " . date('d/m/Y', time());
  15.  
  16. $asunto = 'Asunto del mail recibido';
  17.  
  18. mail($para, $asunto, utf8_decode($mensaje), $header);
  19.  
  20. echo 'Mensaje enviado correctamente';
  21. ?>
Código CSS:
Ver original
  1. #form{
  2.  width: 470px;
  3.  height: auto;
  4.  backgroud-image: url(aquí la ruta de la imagen de fondo);
  5.  margin: 0 auto;
  6.  padding: 0 1%;
  7.  box-shadow: 5px 5px 0 #AAA;
  8.  border-radius: 5px;
  9. }
  10. input[type=submit]{
  11.  background-color:black;
  12.  height:50px;
  13.  width:98%;
  14.  //border:none;
  15.  font-weight:400;
  16.  letter-spacing:2px;
  17.  color:#FFFFFF;
  18.  cursor: pointer;
  19. }
  20. input{
  21.  width: 98%;
  22.  height: 40px;
  23.  font: 300 24px "Open Sans", Arial, sans-serif;
  24.  margin: 5px 0 10px 0;
  25. }
  26. .mensaje {
  27.   width: 98%;
  28.   height: 200px;
  29.   font: 300 24px "Open Sans", Arial, sans-serif;
  30.   margin: 5px 0 10px 0;
  31. }
  #2 (permalink)  
Antiguo 28/06/2015, 12:37
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: formulario da el mail, no vuelve a la página

Para mostrar nombre y correo electrónico de remitente o destinatario:

Código PHP:
Ver original
  1. $header = "From: <[email protected]> Nombre del remitente\r\n";
  2.  
  3. $para = '<[email protected]> Nombre del destinatario';

En cuanto a "quedarse en la misma página", parece que ahora lo único que aparece es una página con el mensaje de correo enviado y el resto en blanco. Supongo que tienes dos opciones:

1- Crea todas las etiquetas HTML/CSS necesarias para mostrar el mensaje en el mismo formato del resto de tus páginas.

2- Envía el formulario usando AJAX para evitar que se recargue la página y, al finalizar, muestra el mensaje de correo enviado por medio de un alert() de javascript.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: formulario, mail, página, vuelve
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 15:34.