Foros del Web » Programando para Internet » PHP »

PHP OO Problema con formulario

Estas en el tema de Problema con formulario en el foro de PHP en Foros del Web. Hola, quisiera si me pueden dar una mano con el siguiente problema. Tengo un formulario web que activa un php . Tal y como lo ...
  #1 (permalink)  
Antiguo 08/03/2016, 19:00
 
Fecha de Ingreso: marzo-2016
Mensajes: 2
Antigüedad: 8 años, 1 mes
Puntos: 0
Busqueda Problema con formulario

Hola, quisiera si me pueden dar una mano con el siguiente problema. Tengo un formulario web que activa un php . Tal y como lo tengo configurado funciona pero me llega el mail en blanco Alguien puede ver cual es el error?

Formulario HTML
<div class="contact" id="contact">
<div class="container">

<h3>Contacto</h3>
<div class="heading-underline"></div>

<form class="contact_form slideanim" method="post" action="mail.php">



<div class="message">
<div class="col-md-6 col-sm-6 grid_6 c1">
<input type="text" class="text" value="Nombre" placeholder="Nombre" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Nombre';}">
<input type="text" class="text" value="Email" placeholder="Email" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Email';}">
<input type="text" class="text" value="Telefono" placeholder="Telefono" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Telefono';}">
</div>

<div class="col-md-6 col-sm-6 grid_6 c1">
<textarea placeholder="Mensaje" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Mensaje';}">Mensaje</textarea>
</div>
<div class="clearfix"></div>
</div>

<input type="submit" class="more_btn" value="Enviar Mensaje">
</form>

</div>
</div>

mail.php

<?php
$Nombre = isset($_POST['Nombre']) ? $_POST['Nombre'] : '';
$Email = isset($_POST['Email']) ? $_POST['Email'] : '';
$Telefono = isset($_POST['Telefono']) ? $_POST['Telefono'] : '';
$Mensaje = isset($_POST['Mensaje']) ? $_POST['Mensaje'] : '';
$Formcontent = isset($_POST['Formcontent']) ? $_POST['From: $Name \n Message: $Message'] : '';
$mailheader = isset($_POST['mailheader']) ? $_POST['From: $Email \r\n Telefono: $Telefono' ] : '' ;
$recipient = "[email protected]";
$subject = "Nuevas Ideas - Formulario de Contacto";
mail($recipient, $subject, $Formcontent, $mailheader) or die("Error!");
echo "Gracias!a la brevedad estaremos contactandonos con ud.";
?>


Espero puedan ayudarme a solucionar esto!
  #2 (permalink)  
Antiguo 08/03/2016, 20:47
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Problema con formulario

Modifica esta linea en el mail.php

Código PHP:
 $Formcontent = isset($_POST['Formcontent']) ? $_POST['From: $Name \n Message: $Message'] : ''
a esta:

Código PHP:
 $Formcontent  "From: ".$Name."<br>Message: ".$Message
a ver si asi te funciona
  #3 (permalink)  
Antiguo 08/03/2016, 22:05
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Problema con formulario

Ninguna de tus etiquetas tiene el atributo name por lógica no llega ningún valor al $_POST['']

Saludos.
  #4 (permalink)  
Antiguo 10/03/2016, 16:59
 
Fecha de Ingreso: marzo-2016
Mensajes: 2
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Problema con formulario

Hola Oggy
probe agregandole name pero no puedo hacerlo funcionar. Al presonar Submit me aparece el mensaje de que ha sido enviado pero no me llega el form a la direccion de contacto y mucho menos el contenido. Ademas lo configure con php mailer. Alguien podría revisar?
aca el form reformado

<div class="contact" id="contact">
<div class="container">

<h3>Contacto</h3>
<div class="heading-underline"></div>

<form class="contact_form slideanim" method="post" action="mail.php">



<div class="message">
<div class="col-md-6 col-sm-6 grid_6 c1">
<input type="text" class="text" name="Nombre" value="Nombre" placeholder="Nombre" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Nombre';}">
<input type="text" class="text" name= "Email" value="Email" placeholder="Email" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Email';}">
<input type="text" class="text" name= "Telefono" value="Telefono" placeholder="Telefono" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Telefono';}">
</div>

<div class="col-md-6 col-sm-6 grid_6 c1">
<textarea class="text" name= "Mensaje" placeholder="Mensaje" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Mensaje';}">Mensaje</textarea>
</div>
<div class="clearfix"></div>
</div>

<input type="submit" class="more_btn" value="Enviar Mensaje">
</form>

</div>
</div>

y aca el mail PHP

<?php
require("class.phpmailer.php"); //Importamos la función PHP class.phpmailer

$mail = new PHPMailer();
$mail->SMTPDebug = true;

$mail->IsSMTP();
$mail->SMTPAuth = true; // True para que verifique autentificación de la cuenta o de lo contrario False
$mail->Host = "smtp.XXXXXXX.XXXX.XX";
$mail->Username = "[email protected]";
$mail->Password = "XXXXX";
$mail->Port = 25;

$Nombre = isset($_POST['Nombre']) ? $_POST['Nombre'] : '';
$Email = isset($_POST['Email']) ? $_POST['Email'] : '';
$Telefono = isset($_POST['Telefono']) ? $_POST['Telefono'] : '';
$Mensaje = isset($_POST['Mensaje']) ? $_POST['Mensaje'] : '';
$Formcontent = isset($_POST['Formcontent']) ? $_POST['From: $Nombre \n Mensaje: $Mensaje'] : '';
$mailheader = isset($_POST['mailheader']) ? $_POST['From: $Email \r\n Telefono: $Telefono' ] : '' ;
$recipient = "[email protected]";
$subject = "XXX - XXXX";
mail($recipient, $subject, $Formcontent, $mailheader) or die("Error!");
echo "Gracias!a la brevedad estaremos contactandonos con ud.";
?>
  #5 (permalink)  
Antiguo 11/03/2016, 02:08
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Problema con formulario

Hola cachumba40,

Yo lo que haría es comprobar cada variable para ver si las estas recibiendo bien:

Código PHP:
Ver original
  1. if ( isset($_POST['Nombre']) && !empty($_POST['Nombre']) ) {
  2. $nombre = $_POST['Nombre']; // Obviamente luego en vez de usar $_POST['Nombre'], usarás $nombre
  3. }

Si así aún no te funciona, prueba a depurar el código con var_dump()

Espero que te sirva.

Etiquetas: blanco, 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 20:22.