Cuando estamos trabajando en un sitio web, muchas veces existe la necesidad de proveer al usuario con un formulario de contacto para hacernos llegar sus consultas, comentarios u otro tipo de información.
En este truco te mostramos un ejemplo de cómo hacer un formulario usando HTML para crearlo y PHP para procesarlo y enviarlo por e-mail.
- El formulario
- El script PHP
- Consulta también: Formulario que envia mail html
El formulario
Se trata de un fragmento de código HTML que usando el TAG <form> nos permite crear el formulario de entrada de datos a ser completado por el usuario:
formulario.html
<form name="frmContacto" method="post" action="sendbymail.php"> <table width="500px"> <tr> <td> <label for="first_name">Nombre: *</label> </td> <td> <input type="text" name="first_name" maxlength="50" size="25"> </td> </tr> <tr> <td valign="top""> <label for="last_name">Apellido: *</label> </td> <td> <input type="text" name="last_name" maxlength="50" size="25"> </td> </tr> <tr> <td> <label for="email">Dirección de E-mail: *</label> </td> <td> <input type="text" name="email" maxlength="80" size="35"> </td> </tr> <tr> <td> <label for="telephone">Número de teléfono:</label> </td> <td> <input type="text" name="telephone" maxlength="25" size="15"> </td> </tr> <tr> <td> <label for="comments">Comentarios: *</label> </td> <td> <textarea name="comments" maxlength="500" cols="30" rows="5"></textarea> </td> </tr> <tr> <td colspan="2" style="text-align:right"> <input type="submit" value="Enviar"> </td> </tr> </table> </form>
El script PHP
La otra parte de código a escribir será entonces la encargada de tomar los datos del formulario anterior, validarlos y si todo está bien, enviar el formulario por correo electrónico a una dirección de destino determinada en el código.
Veamos este ejemplo:
sendbymail.php
<?php if(isset($_POST['email'])) { // Debes editar las próximas dos líneas de código de acuerdo con tus preferencias $email_to = "destinatario@sudominio.com"; $email_subject = "Contacto desde el sitio web"; // Aquí se deberían validar los datos ingresados por el usuario if(!isset($_POST['first_name']) || !isset($_POST['last_name']) || !isset($_POST['email']) || !isset($_POST['telephone']) || !isset($_POST['comments'])) { echo "<b>Ocurrió un error y el formulario no ha sido enviado. </b><br />"; echo "Por favor, vuelva atrás y verifique la información ingresada<br />"; die(); } $email_message = "Detalles del formulario de contacto:nn"; $email_message .= "Nombre: " . $_POST['first_name'] . "n"; $email_message .= "Apellido: " . $_POST['last_name'] . "n"; $email_message .= "E-mail: " . $_POST['email'] . "n"; $email_message .= "Teléfono: " . $_POST['telephone'] . "n"; $email_message .= "Comentarios: " . $_POST['comments'] . "nn"; // Ahora se envía el e-mail usando la función mail() de PHP $headers = 'From: '.$email_from."rn". 'Reply-To: '.$email_from."rn" . 'X-Mailer: PHP/' . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); echo "¡El formulario se ha enviado con éxito!"; } ?>