Problema con formulario php
Buen día.
Hace una semana llevo tratando de hacer que un formulario de contacto funcione. Es un formulario para solicitar una reservación para mi restaurante.
El correo es enviado, pero los campos llegan en blanco, ¿alguna sugerencia?
Este es el script php:
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$date = $_POST["date"];
$occation = $_POST["occation"];
$header = "From:".$email."\r\n";
$header .= "X-Mailer: PHP/".phpversion()."\r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";
$mensaje = "Este mensaje fue enviado por".$name."\r\n";
$mensaje .= "Su e-mail es:".$email."\r\n";
$mensaje .= "Fecha solicitada para el evento:".$date."\r\n";
$mensaje .= "Tipo de evento:".$occation."\r\n";
$mensaje .= "Mensaje:".$_POST["message"]." \r\n";
$mensaje .= "Solicitud enviada el día".date('d/m/Y',time());
$para = "firecontacto@gmail.com";
$asunto = "Solicitud de reservación";
mail($para, $asunto, utf8_decode($mensaje), $header);
echo 'Mensaje enviado correctamente';
?>
y este es el del formulario:
<div class="col-md-6 to-animate-2">
<h3>Reservaciones</h3>
<form id="main-contact-form" name="contact-form" method="post" action="contacto.php">
<div class="form-group"><label class="sr-only" for="name">Nombre</label> <input class="form-control" id="name" placeholder="Nombre" required type="text" /></div>
<div class="form-group "><label class="sr-only" for="email">Email</label> <input class="form-control" id="email" placeholder="Email" required type="email" /></div>
<div class="form-group"><label class="sr-only" for="occation">Ocasión</label> <select class="form-control" id="occation"><option>Seleccione ocasión</option><option>Xv años</option><option>Cumpleaños</option><option>Graduaciones</option><option>Otro</option> </select></div>
<div class="form-group "><label class="sr-only" for="date">Fecha</label> <input class="form-control" id="date" placeholder="Fecha & Hora" required type="text" /></div>
<div class="form-group "><label class="sr-only" for="message">Mensaje</label><textarea class="form-control" cols="30" id="message" name="" placeholder="Mensaje" required rows="5"></textarea></div>
<div class="form-group "><input class="btn btn-primary" type="submit" value="Solicitar" /></div>
</form>
</div>
</div>
</div>
</div>
</div>
Por adelantado, gracias.
Usuario desconocido
Hola hasna_m.
Te has olvidado de añadir el atributo "name" en los campos de entrada del formulario. Este atributo es el nombre de la variable que envías a PHP y al no existir, los campos se quedan en blanco.
Es decir, que $_POST["email"] recogerá el campo de entrada que tenga el atributo name="email". Si no existe ese atributo, el campo se queda en blanco.
Por tanto, tienes que añadir ese atributo al código del formulario:
<input class="form-control" id="name" placeholder="Nombre" required type="text" name="name">
<input class="form-control" id="email" placeholder="Email" required type="email" name="email">
<select class="form-control" id="occation" name="occation">
<input class="form-control" id="date" placeholder="Fecha & Hora" required type="text" name="date">
eluguina
Hola @hasna_m ,
A mi me pasó lo mismo en mi antigua web y siento decirte que no conseguí llegar a solución alguna. Prueba a ver si con lo que me dijeron aquí en su momento a ti te funciona. A ver si tienes más suerte o alguien encuentra otra solución.
Saludos!
hasna_m
Muchas gracias por sus respuestas.
Efectivamente, me olvidé de añadirle un valor al atributo "name". De hecho, en el campo del mensaje se lo había anexado pero en blanco.
Comprobaré si funciona.
Nuevamente, gracias.
(: