Como hacer un formulario de contacto con PHP (I)

Los formularios de contacto son la forma más útil para generar un medio de comunicación entre los visitantes y el webmaster o encargado del sitio.
Con este tutorial pretendo explicar como es posible tener nuestro propio formulario rápidamente.
Dividiré este tutorial en las siguientes partes:
- Parte I: Diseño del formulario.
- Parte II: Validación de campos por JavaScript.
- Parte III: Validación de campos por PHP
- Parte IV: Envío de información.
Diseño del formulario
Antes de comenzar a diseñar un formulario es necesario pensar que es lo que necesitamos saber del usuario, o que es lo que él podría querer comunicarnos.
Como el que tratamos ahora es un formulario de contacto simple, los datos que le solicitaremos al usuario son:
- Nombre
- País
- Comentario
De los cuales el único que no será obligatorio será “País”, podríamos pedirle más datos y hacerlos todos obligatorios, pero si quieres que te contacten pide solo lo estrictamente necesario, recuerda que los usuarios son “flojos” y si los cansas se irán.
Teniendo esta información solo nos queda comenzar con el código HTML que por lo demás es muy simple:
-
<form id="contacto" name="contacto" method="post" action="resibe-datos.php">
-
<div class="campo">Nombre:</div>
-
<input type="text" name="nombre" id="nombre" />
-
</label>
-
</div>
-
<div class="campo"> E-Mail:</div>
-
<input type="text" name="email" id="email" />
-
</label>
-
</div>
-
<div class="campo">Pais:</div>
-
<input type="text" name="pais" id="pais" />
-
</label>
-
</div>
-
<div class="campo">Comentario:</div>
-
<textarea cols="60" rows="10" name="comentario" id="comentario"></textarea>
-
</label>
-
</div>
-
<input type="submit" name="boton" id="boton" value="Enviar" />
-
</label>
-
</div>
-
</form>
Y aplicando un poco de CSS el formulario puede quedar asi:

-
#contacto{
-
margin:0 auto;
-
width:530px;
-
border:1px dotted #ccc;
-
padding:10px;
-
}
-
#contacto , #contacto input{
-
font-family:Tahoma, Arial, Helvetica, sans-serif;
-
font-size:11px;
-
}
-
#contacto .campo{
-
float:left;
-
width:80px;
-
padding:8px 6px;
-
}
-
#contacto div{
-
padding:6px 4px;
-
}
-
#contacto input, #contacto textarea{
-
padding:6px;
-
color:#555;
-
width:400px;
-
}
-
#contacto input#boton{
-
margin-left:90px;
-
padding:7px 11px;
-
width:auto;
-
}
Acciones del formulario
Lo primero que hay que ver en el formulario es que comienza con la etiqueta <form> y termina con </form> y para comenzar el formulario es necesario especificarle algunas cosas mediante parámetros:
-
<form id="contacto" name="contacto" method="post" action="resibe-datos.php">
- Id:
Es el identificador de la etiqueta, este es el único parámetro que no es exclusivo de los formularios, todas las etiquetas pueden llevar un ID para reconocerlas en el documento, con la peculiaridad que debe ser única en todo el código, no pueden existir dos etiquetas con el mismo ID no importando que etiqueta sea. - Name:
Es el nombre con el que identificaremos el formulario este campo también debe ser único en el código. - Method:
Es el método que se usara para enviar el formulario, hay para elegir entre POST, que enviará los datos sin posibilidad que el usuario los vea mientras se envían, y el método GET que enviara los datos al archivo que trabajara con ellos de la siguiente forma “resibe-datos.php?nombre=diego&email=diego@soma-d.com&pais=chile&comentario=Mi comentario sin importar que tan largo sea”. Lo limitante de GET es que se puede enviar cierta cantidad de caracteres, mientras que POST no limita. - Action:
Es la dirección del archivo PHP al que enviaremos la información y el que en definitiva la procesara y la enviará, almacenara en algún lugar o lo que queramos con ella.
Campos del formulario
Todos los campos de un formulario deben tener especificados los parámetros “name” e “id” por razones que se verán mas adelante.
Otra información importante es que los campos <input /> definen su función y características graficas según el tipo (type) que definas como atributo. En este caso trabajaremos con los tipos “text” y “submit”.
Campos de texto simple

En estos campos se puede introducir únicamente una línea de texto, se omiten los saltos de línea, también es posible incluir un parámetro “value” que será representado como un texto introducido por defecto en el campo.
Campos de texto multilínea
-
<textarea cols="60" rows="10" name="comentario" id="comentario"></textarea>

En este tipo de campos es posible ingresar saltos de línea y gráficamente son mas amplios ya que se ven como un recuadro más o menos grande según el valor que se le entregue como parámetros a “cols” (columnas) y “rows” (filas).
Para especificar un texto por defecto en este campo es necesario escribirlo entre <textarea> y </textarea>.
Botones
-
<input type="submit" name="boton" id="boton" value="Enviar" />

Este campo se representa gráficamente como un botón que al ser del tipo (type) “submit” al ser presionado enviará los datos a la dirección que se especifico en el atributo “action” de la etiqueta <form> principal.
Esto es todo lo que hay que saber para armar un formulario de contacto muy simple, en el próximo articulo mostrare como validar (ver si están correctamente ingresados antes de trabajar con ellos) los campos con JavaScript.
Sphere: Related Content

Mayo 8th, 2008 at 5:07 pm
[…] Como hacer un formulario de contacto con PHP (I) […]
Mayo 21st, 2008 at 6:33 pm
[…] hacer un formulario de contacto con PHP (II)Como hacer un formulario de contacto con PHP (II)Como hacer un formulario de contacto con PHP (I) Accesibilidad Articulos Comparacion Creatividad CSS Defectos Desarrolladores Diseño Efectos […]
Mayo 28th, 2008 at 6:56 pm
wena wm
xD
ta weno
Octubre 27th, 2008 at 8:25 pm
Se ve complicado crear un casilla de comentarios con php …
Cree q pueda hacer un modelo mas simple .. para escribir los datos de mi web y tener una casilla donde puedan dejar mensajes igual como esta barra
Talvez usted pueda ayudarme a crear una casilla de comentarios en ” http://historialenguajehistoria.blogspot.com/ ” le estare agradecido
Un abrazo luis
Luiss last blog post..CULTURA O REINO CHACHAPOYAS : INTERMEDIO TARDIO