Cómo: Crear un Formulario de Contacto
julio 22, 2008
En este tutorial te enseñare a diseñar un formulario de contacto personalizado para tu sitio web a partir de cero. Se tratarán todos los aspectos del diseño, CSS, HTML y PHP.
El resultado funcionara completamente y se verá algo asÃ:

Como se puede ver el formulario de contacto consta de 2 partes: una que contiene la información del contacto remitente, y otra parte en relación con el mensaje. El formulario también integra un simple y básico sistema Captcha que funciona bastante bien.
La parte HTML
-
<form action="contacto.php" method="POST">
-
<fieldset>
-
<legend>Tu información</legend>
-
<p style="margin-left:70px">
-
<label><strong>Nombre:</strong></label>(requerido)<br />
-
<input type="text" name="name" value="" />
-
</p>
-
<p style="margin-left:70px">
-
<input type="text" name="email" value="" />
-
</p>
-
<p style="margin-left:70px">
-
<label><strong>Asunto:</strong></label>
-
(requerido)<br />
-
<input type="text" name="subject" value="" />
-
</p><br />
-
</fieldset>
-
<fieldset>
-
<legend>Tu Mensaje</legend>
-
<p style="margin-left:70px">
-
<label><strong>Mensaje:</strong></label>
-
(requerido)<br />
-
<textarea name="comments" rows="7" cols="50"></textarea>
-
</p>
-
<p style="margin-left:70px">Códio de seguridad : <strong>56728</strong><br />
-
<label><strong>Por favor escribe el código de arriba :</strong></label>(requerido)<br />
-
<input type="text" name="spam" value="" />
-
</p>
-
<p style="margin-left:70px">
-
<input class="button" name="submit" type="submit" value="Enviar!" />
-
</p>
-
</fieldset>
-
</form>
Como puedes ver en la primera lÃnea, el código invoca a un archivo llamado "contacto.php". Este es el archivo PHP que vamos a utilizar realmente para enviar el formulario de contacto.
La parte CSS
Hemos creado el formulario HTML. Es hora de mejorarlo un poco. Y lo haremos mediante la definición de propiedades con CSS.
-
input, textarea {
-
border:1px solid #666666;
-
font-family:Verdana,Tahoma,Arial,Sans-Serif;
-
font-size:1em;
-
margin:0;
-
padding:4px;
-
background:#fff;
-
}
-
-
input:focus, input:hover,textarea:focus, textarea:hover{
-
border: 1px solid #000;
-
background:url(/contact_crazyleaf.gif) top right no-repeat;
-
}
-
-
label {
-
margin:2px;
-
}
-
-
input {
-
width:300px;
-
}
-
-
.button {
-
margin:0 0 15px 0;
-
background:url(div_back_contact.gif);
-
color:#000;
-
font-weight:bold;
-
width:310px;
-
}
Como veras el código invoca 2 imágenes, la primera se trata de una pequeña imagen que aparece en todas las cajas de texto al pasar el cursor sobre ellos, algo asÃ:

La segunda imagen se trata de un background para el botón "Enviar" de nuestro formulario de contacto asÃ:

Puedes cambiarles el nombre si asà lo deseas.
La parte de PHP
Esta es la parte más difÃcil.
En primer lugar necesitas crear un archivo (con un Bloc de notas u otro editor de texto) llamado contacto.php. El nombre de este archivo lo puedes cambiar, pero también tendrás que cambiar la primera lÃnea del código HTML indicando el nuevo nombre. Además tienes que crear 2 archivos HTML, uno llamado gracias.html, y otro error.html. El primer archivo se cargará si la información del formulario ha sido enviado con éxito y el segundo si hubo errores.
El archivo PHP se compone de varias partes. La primera parte define algunas constantes, al igual que la dirección de correo electrónico al que la información será enviada ($mailto), la URL del archivo que contiene el código HTML ($formurl), la URL de la página de agradecimiendo ($thankyouurl) , Y la URL de la página de error ($errorurl).
La segunda parte dice la información enviada por el formulario HTML.
En la tercera parte se verifica con dos instrucciones PHP, si los campos obligatorios se han llenado y si el captcha se ha introducido correctamente.
La cuarta y última parte del script compone el mensaje y te lo envÃa a ti (a la dirección de correo que definiste en la primera parte del código).
-
<?
-
$mailto = 'tu@email.com' ;
-
$subject = "Contacto - XeroBlog" ;
-
$formurl = "http://www.ejemplo.com/contacto.html" ;
-
$errorurl = "http://www.ejemplo.com/error.html" ;
-
$thankyouurl = "http://www.ejemplo.com/gracias.html" ;
-
-
// -------------------- TERMINA LA SECCION CONFIGURABLE ---------------
-
-
$name = $_POST['name'] ;
-
$email = $_POST['email'] ;
-
$subject = $_POST['subject'] ;
-
$comments = $_POST['comments'] ;
-
$spam=$_POST['spam'] ;
-
-
exit ;
-
}
-
exit ;
-
}
-
}
-
-
$messageproper ="---------- XeroBlog.com mensaje ----------\n\n" . "\Enviado por : " . $name . "\nEmail : " . $email . "\nAsunto : " . $subject . "\n\n\nMensaje : " . $comments;
-
-
mail($mailto, $subject, $messageproper, "From: \"$name\" <$email>\r\nReply-To: \"$name\" <$email>\r\nX-Mailer: chfeedback.php 2.04" );
-
exit ;
-
?>
Eso es todo. El formulario está completo. Puedes verlo en acción en nuestra demo.
Enlace | Designing a stylish contact form for your portfolio















Si te gusto este post, no olvides suscribirte a mi RSS!
8 Comentarios para “Cómo: Crear un Formulario de Contacto”
hola sabes ke hice el formulario pero no me llega la informacion a mi correo puse en esta linea
$mailto = ‘tu@email.com’
puse mi correo pero no llega nada ..me uedes ayudar por fa ….
graxias
Por feña el jul 23, 2008
Primero felicito por el laburo de explicar como seria la creacion de un formulario. En segundo lugar me gustaria mucho que me puedas brindar mas informacion detallada de como poner todo esto en mi Web, desde como creo el archivo CSS, hasta donde guardo el archivo contacto.php, desde ya muchas gracias…
saludos…
Por Juan Manuel el jul 28, 2008
holaa he colocado los codigos y todo, hice las paginas de error y gracias y al enviar ok llega la info del form al correo que coloco pero no sale pagina de gracias al final despeusde enviar, me aparece esto:
Warning: Cannot modify header information – headers already sent by (output started at /home/sites/lolipop.jp/users/lolipop.jp-dp59273650/web/formulario/contacto.php:10) in /home/sites/lolipop.jp/users/lolipop.jp-dp59273650/web/formulario/contacto.php on line 39
Por chan shigematsu el ago 1, 2008
hola..cambio el codigo para poner mi correo y no me llegan los correos..podrias ayudarme por favor..saludos
Por Francisco el ago 19, 2008
cuadno envio el formulario me da el siguiente error, saben que puede ser ?
r\nReply-To: \”$name\” \r\nX-Mailer: chfeedback.php 2.04″ ); header( “Location: $thankyouurl” ); exit ; ?>
Por Luis el ago 21, 2008
hola … cuando le kito lo de validad me marca error! yan o me lee el php! como puedo kitarle encones lo del spam, gracias
Por ame el sep 10, 2008
Gracias por ayudarnos a hacer cositas que nos entretienen aprendiendo.
Voy a practicar un poco la elaboración de los códigos y espero que me funcionen bien.
Por JoaquÃn Restrepo el dic 22, 2008