Foros del Web » Programando para Internet » PHP »

formulario no envia toda la informacion

Estas en el tema de formulario no envia toda la informacion en el foro de PHP en Foros del Web. Muy buen día y saludos a todos, mi problema es el siguiente, despues de intentar e intentar y volver a intentar jeje al final pude ...
  #1 (permalink)  
Antiguo 25/06/2011, 09:22
 
Fecha de Ingreso: junio-2011
Ubicación: Cuernavaca Morelos
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta formulario no envia toda la informacion

Muy buen día y saludos a todos, mi problema es el siguiente, despues de intentar e intentar y volver a intentar jeje al final pude hacer funcionar mi formulario, es decir hacer que llegue la info a mi correo, sin embargo la información que llega es incompleta, aqui un ejemplo de lo que me llegua:

Este mensaje fue enviado por:

Su e-mail es: [email protected]

Su telefono es:

Mensaje:

Enviado el 25/06/11 a las 10:07:53

Unicamente llega el mail de la persona que envia la info pero no lo hace con el nombre, telefono y mensaje .. de verdad agradeceria bastante su ayuda, pues es algo que no puedo resolver.. disculpen las molestias pero en verdad estoy en ceros de php.. gracias..

este mi codigo:

</head>
<body>
<?php

$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$Message = $_POST['message'];

$mensaje = "Este mensaje fue enviado por: " . $_POST['name'] . " \r\n";
$mensaje .= "Su e-mail es: " . $_POST['email'] . " \r\n";
$mensaje .= "Su telefono es: " . $_POST['phone'] . " \r\n";
$mensaje .= "Mensaje: " . $_POST['message'] . " \r\n";
$mensaje .= "Enviado el " . date("d/m/y \a \l\a\s H:i:s ");

$mail = " [email protected] ";
$mailSubject = "Contacto desde página web";

mail($mail, $mailSubject, utf8_decode($mensaje));
?>

Cabe señalar que al enviarlo no me da ningun tipo de error, ya cambie los nombres de las variables, como name a nombre, Nombre y nada :(
  #2 (permalink)  
Antiguo 25/06/2011, 09:28
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: formulario no envia toda la informacion

Hola, bienvenido al foro.

Te cuento como mejoraría este script. Lo primero es un condicional para el caso de que las variables esten vacías, porque si alguna lo está, el script dará error y vos no estas previniendo eso:

Código PHP:
Ver original
  1. if (!empty($_POST['name']))
  2. $name = $_POST['name'];
  3. else
  4. $name = "-";
  5.  
  6. if (!empty($_POST['phone']))
  7.  $phone = $_POST['phone'];
  8. else
  9.  $phone  = "-";
  10.  
  11. if (!empty($_POST['email']))
  12.  $email = $_POST['email'];
  13. else
  14.  $email = "-";
  15.  
  16. if (!empty($_POST['message']))
  17.  $Message = $_POST['message'];
  18. else
  19. $Message = "-";

Luego, si ya asignaste las variables POST a variables comunes, para que volves a usar las post? Usa las comunes:
Código PHP:
Ver original
  1. $mensaje = "Este mensaje fue enviado por: " . $name . " \r\n";
  2.  $mensaje .= "Su e-mail es: " . $email . " \r\n";
  3. ...

Con este codigo deberían llegarte guiones en caso de que los campos esten vacios. Fijate.
  #3 (permalink)  
Antiguo 25/06/2011, 09:42
 
Fecha de Ingreso: junio-2011
Ubicación: Cuernavaca Morelos
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: formulario no envia toda la informacion

Mayid muchas gracias por tu ayuda, ya pegue el codigo que me comentas y quedo de la siguiente manera:

</head>
<body>
<?php

$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$Message = $_POST['message'];

if (!empty($_POST['name']))
$name = $_POST['name'];
else
$name = "-";

if (!empty($_POST['phone']))
$phone = $_POST['phone'];
else
$phone = "-";

if (!empty($_POST['email']))
$email = $_POST['email'];
else
$email = "-";

if (!empty($_POST['message']))
$Message = $_POST['message'];
else
$Message = "-";

$mensaje = "Este mensaje fue enviado por: " . $name . " \r\n";
$mensaje .= "Su e-mail es: " . $email . " \r\n";
$mensaje .= "Su telefono es: " . $phone . " \r\n";
$mensaje .= "Mensaje: " . $Message . " \r\n";
$mensaje .= "Enviado el " . date("d/m/y \a \l\a\s H:i:s ");

$mail = " [email protected] ";
$mailSubject = "Contacto desde página web";

mail($mail, $mailSubject, utf8_decode($mensaje));
?>

Sin embargo, lleno mis casillas del formulario, le doy enviar y unicamente llega esto:
Este mensaje fue enviado por: -

Su e-mail es: [email protected]

Su telefono es: -

Mensaje: -

Enviado el 25/06/11 a las 10:40:42

como si estuvieran en blanco, como es posible eso si las estoy llenando?
En verdad muchas gracias por tu paciencia pero soy un verdadero novato en esto
  #4 (permalink)  
Antiguo 26/06/2011, 09:51
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: formulario no envia toda la informacion

Bueno, eso es porque estas queriendo recibir elementos de un formulario con el nombre equivocado. Yo no veo que hayas publicado el form así que no te puedo corregir puntualmente. Pero tiene que haber una correspondencia:

Código PHP:
Ver original
  1. <input type="text" name="campo1" />
  2. ...
  3. $_POST['campo1']

Lo que te esta pasando es que no hay correspondencia.

tip: cuando pegues codigo usa el highlighter para que podamos leerlo mejor.

Etiquetas: completa, informacion, nomanda, formulario
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 17:05.