Foros del Web » Programando para Internet » PHP »

Formulario Vía email

Estas en el tema de Formulario Vía email en el foro de PHP en Foros del Web. Hola a todos, Tengo un pequeño problema (creo que es de sencilla solución) con el código php para mandar los datos ingresados de un formulario ...
  #1 (permalink)  
Antiguo 03/09/2009, 17:46
Sniperhawk
Invitado
 
Mensajes: n/a
Puntos:
Formulario Vía email

Hola a todos,

Tengo un pequeño problema (creo que es de sencilla solución) con el código php para mandar los datos ingresados de un formulario a una dirección de e-mail.

A pesar de no constatar errores en el editor, los mensajes no me llegan al e-mail y no pude darme cuenta de cúal podría ser el error.

Por favor, agradecería mucho su ayuda y sugerencia.

El código es el siguiente:

<?php

// Crear separadores
$Sep = ","; // Separador de campos
$Del = '"'; // Delimitador de dato
$eol = "\r\n"; // fin de línea

$mail="mi_email"; //email de destino
$Nombre = $_POST['nom'];
$Apellido = $_POST["apl"];
$Direccion = $_POST["dir"];
$Telefono = $_POST['tel'];
$Email = $_POST['email'];
$Mensaje = $_POST['cons'];
$thank="gracias.h t m l";

$message = "
Nombre: ".$Nombre.$Sep."
Apellido: ".$Apellido.$Sep."
Dirección: ".$Direccion.$Sep."
Telefono: ".$Telefono.$Sep."
Email: ".$Email.$Sep."
Mensaje: ".$Mensaje.$Sep.$eol."";

if (isset ($_POST['nom'],$_POST["apl"],$_POST['tel'],$_POST['cons'])) {
mail($mail,"Consulta Web Talas y Podas",$message);
Header ("Location: $thank");
}
else {echo "Error al enviar el mensaje";
}

?>

Muchas Gracias!
  #2 (permalink)  
Antiguo 04/09/2009, 01:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Formulario Vía email

Es bueno siempre, antes de hacer algun codigo para enviar email, hacer uno sencillo para asegurarse de que envie los email. Te sugiero que antes envies uno que sea algo así

Código PHP:
Ver original
  1. mail("[email protected]", "Titulo", "Mensaje de prueba");

Lo otro limpie un poco el codigo, mientras puedas evitar escribir variables mucho mejor. Es mas productivo escribir directamente el valor que tenia las variables que quite, que otorgar a una variable ese valor y luego llamarlas muchas veces. Lo otro que hice es comentar el header porque queremos ver si existe un error por lo tanto lo vamos a dejar sin el header por el momento para ver si envia la informacion.
Código php:
Ver original
  1. <?php
  2. $mail="mi_email"; //email de destino
  3. $Nombre = $_POST['nom'];
  4. $Apellido = $_POST["apl"];
  5. $Direccion = $_POST["dir"];
  6. $Telefono = $_POST['tel'];
  7. $Email = $_POST['email'];
  8. $Mensaje = $_POST['cons'];
  9. $thank="gracias.h t m l";
  10.  
  11. $message = "
  12. Nombre: ".$Nombre.",
  13. Apellido: ".$Apellido.",
  14. Dirección: ".$Direccion.",
  15. Telefono: ".$Telefono.",
  16. Email: ".$Email.",
  17. Mensaje: ".$Mensaje."\r\n";
  18.  
  19. if (isset ($_POST['nom'],$_POST["apl"],$_POST['tel'],$_POST['cons'])) {
  20. mail($mail,"Consulta Web Talas y Podas",$message);
  21. //Header ("Location: $thank");
  22. }
  23. else {echo "Error al enviar el mensaje";
  24. }
  25.  
  26. ?>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 05/09/2009, 08:50
Sniperhawk
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Formulario Vía email

Hola,

Gracias!, ahora si me llega el email con los datos. Sólo me faltaría el Header para que me mande a la página de confirmación de que el email fue enviado, (pude hacer algo parecido con la función include de PHP, pero la idea es usar el header).

Otro detalle que no sé como solucionarlo es que los emails que se envían del Formulario lleguen con un nombre que no sea "NOBODY" y creo que se puede hacer con un cuarto parámetro en la función mail (si no me equivoco).
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 21:45.