Foros del Web » Programando para Internet » PHP »

Formulario PHP en HTML (problema en cuerpo del mensaje)

Estas en el tema de Formulario PHP en HTML (problema en cuerpo del mensaje) en el foro de PHP en Foros del Web. Hola gente, voy a intentar ser lo más claro posible. Resulta que mi servidor pago de hosting tiene bloqueada la función mail así que me ...
  #1 (permalink)  
Antiguo 04/04/2011, 14:08
 
Fecha de Ingreso: abril-2009
Mensajes: 8
Antigüedad: 15 años
Puntos: 0
Pregunta Formulario PHP en HTML (problema en cuerpo del mensaje)

Hola gente, voy a intentar ser lo más claro posible.

Resulta que mi servidor pago de hosting tiene bloqueada la función mail así que me han pasado una alternativa que usa PHP en un formulario que va inserto en un HTML.

Mi formulario tiene varios campos para completar y logro que se envíe a la perfección pero cuando recibo el e-mail, el cuerpo del mensaje está en blanco cuando me gustaría recibir la información de todos los campos.

Les paso el código PHP para que vean:

Código PHP:
<?
// Script PHP para el envio de Mails via HTTP usando SMTP AUTH.

// INCLUDE :: NO TOCAR
include("Mail.php"); // INCLUDE PEAR de PHP :: NO TOCAR

//Datos del Remitente y Destinatario
$destinatario "[email protected]"// E-Mail Destinatario.
$headers["From"]    = $_POST['nombre'] . '<' $_POST['mail'] . '>'// Nombre/Apellido/E-Mail Remitente. (NO colocar ningun caracter punto (.))
$headers["To"]      = "[email protected]"// Nombre/E-Mail Destinatario. 
$headers["Subject"] = "Remeras | Pedidos"// Asunto del Mensaje.

// Cuerpo del Mensaje
$cuerpo_del_mensaje $comentario;

// Datos del Servidor SMTP
$params["host"] = "smtp.XXXXXX.com.ar"// Host SMTP: host.midominio.com.ar
$params["port"] = "25"// Puerto: 25
$params["auth"] = true// Autentificacion: Activada
$params["username"] = "[email protected]"// Cuenta de Mail: [email protected]
$params["password"] = "xxxxxx"// Clave de Cuenta de Mail: xxxxxxxx

if($nombre=="" || $direccion=="" || $ciudad=="" || $provincia=="" || $codigopostal=="" || $telefono=="" || $cantidad=="" || $talle1=="" || $talle2=="" || $talle3=="" || $talle4=="" || $talle5=="" || $metpago=="" || $metenvio=="" || $mail=="" ){
    die(
"Debes completar todos los datos para poder enviar el mensaje");
} else {
   echo 
"Gracias por tu pedido! Te contestaremos con todos los datos para que puedas realizar el pago.";
}

// Enviar el Mail :: NO TOCAR !!!
$mail_object =& Mail::factory("smtp"$params); // Enviar el Mail :: NO TOCAR !!!
$mail_object->send($destinatario$headers$cuerpo_del_mensaje); // Enviar el Mail :: NO TOCAR !!!

// Descomentar la linea siguiente si tiene una pagina de agradecimiento, Ej: gracias.html.
//include ("http://www.YYYYYY.com.ar/Registro/gracias.html");
Me imagino que el problema está aquí:

Código PHP:
// Cuerpo del Mensaje
$cuerpo_del_mensaje $comentario
Se puede añadir la información de los campos (ej.: nombre, ciudad, provincia, telefono, etc, etc) en el cuerpo del mensaje?

Gracias de antemano y perdón si suena a muy básico, es que yo soy muy básico en PHP, jajaja!

Abrazo
Lucas
  #2 (permalink)  
Antiguo 04/04/2011, 16:08
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Formulario PHP en HTML (problema en cuerpo del mensaje)

Hola.

Lo primero, el foro correcto para este mensaje es el de PHP.

Y lo segundo... No veo por ningún lado donde recoges los datos de las variables. Esto es, si el formulario utiliza el método post, debes recoger primero la información.
Un ejemplo:

Código PHP:

// en el formulario, el atributo name debe tener como valor lo que hay entre
// los corchetes, en este caso, 'comentario'.

$comentario $_POST['comentario']; 
Luego comprueba que recoge los datos correctamente:

Código PHP:
echo $comentario;
exit(); 
// para detener el script 
Como verás, lo ideal será que recojas cada campo en una variable individualmente, y luego montes el cuerpo del mensaje para enviarlo:

Código PHP:
$nombre $_POST['nombre'];
$apellidos $_POST['apellido'];
$mensaje $_POST['mensaje'];
// etc...
// y ahora montas el cuerpo del mensaje. es mejor hacerlo con tablas,
// pero para el ejemplo utilizaré párrafos.

$cuerpo 
                 
'
                  <p>Nombre: '
.$nombre.'</p>
                  <p>Apellidos: '
.$apellidos.'</p>
                  <p><br /></p>
                  <p>Mensaje:<br /><br />'
.$mensaje.'</p>
                 ' 

A ver si así solucionas :) Un saludo.
  #3 (permalink)  
Antiguo 04/04/2011, 22:26
 
Fecha de Ingreso: abril-2009
Mensajes: 8
Antigüedad: 15 años
Puntos: 0
Respuesta: Formulario PHP en HTML (problema en cuerpo del mensaje)

Cita:
Iniciado por uikekarallo Ver Mensaje
Hola.

Lo primero, el foro correcto para este mensaje es el de PHP.

Y lo segundo... No veo por ningún lado donde recoges los datos de las variables. Esto es, si el formulario utiliza el método post, debes recoger primero la información.
Un ejemplo:

Código PHP:

// en el formulario, el atributo name debe tener como valor lo que hay entre
// los corchetes, en este caso, 'comentario'.

$comentario $_POST['comentario']; 
Luego comprueba que recoge los datos correctamente:

Código PHP:
echo $comentario;
exit(); 
// para detener el script 
Como verás, lo ideal será que recojas cada campo en una variable individualmente, y luego montes el cuerpo del mensaje para enviarlo:

Código PHP:
$nombre $_POST['nombre'];
$apellidos $_POST['apellido'];
$mensaje $_POST['mensaje'];
// etc...
// y ahora montas el cuerpo del mensaje. es mejor hacerlo con tablas,
// pero para el ejemplo utilizaré párrafos.

$cuerpo 
                 
'
                  <p>Nombre: '
.$nombre.'</p>
                  <p>Apellidos: '
.$apellidos.'</p>
                  <p><br /></p>
                  <p>Mensaje:<br /><br />'
.$mensaje.'</p>
                 ' 

A ver si así solucionas :) Un saludo.
Estaba en dudas en donde publicar el tema y opté por este foro, pido disculpas.

Ya está solucionado!

Estuve averiguando por varios sitios y después de leer varios temas llegué a la solución.

Código PHP:
// Cuerpo del Mensaje
$cuerpo_del_mensaje "Nombre y Apellido: " $nombre "\r\nDireccion: " $direccion "\r\nCiudad: " $ciudad "\r\nProvincia: " $provincia "\r\nCodigo postal: " $codigopostal "\r\nTelefono: " $telefono "\r\nCantidad de remeras: " $cantidad "\r\nTalle remera #1: " $talle1 "\r\nTalle remera #2: " $talle2 "\r\nTalle remera #3: " $talle3 "\r\nTalle remera #4: " $talle4 "\r\nTalle remera #5: " $talle5 "\r\nMetodo de pago: " $metpago "\r\nMetodo de envio: " $metenvio "\r\nE-mail: " $mail " \r\n"
No sé si es bonito pero es funcional, lo que estaba buscando.

Gracias de todas formas, uikekarallo!

Saludos
Lucas
  #4 (permalink)  
Antiguo 05/04/2011, 03:55
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Formulario PHP en HTML (problema en cuerpo del mensaje)

Nada hombre, un saludo :)

Etiquetas: html, 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 11:21.