Categorías
Webmaster

Formulario de Contacto en PHP con validación

Formulario de Contacto en PHP con validación (Sencillo y muy Básico).

Actualización Mayo 5 de 2015 (descarga al final del post):

- Nueva versión 2.0
- HTML 5
- Optimizado el javascript de validación
- Código PHP que envía el correo: Más seguridad y validación extra

Hola a todos, en esta ocasión les presento este sencillo tutorial para crear un formulario de contacto simple y muy fácil de implementar, hecho en PHP.

Para hacer nuestro formulario un poco más interesante, agregaré validación JavaScript de campos vacíos + Confirmación de envío o mensaje de error en caso de que el formulario no pueda ser enviado.

El formulario consta de 3 archivos:

  1. contacto.html – Página HTML que verán las personas que visiten el formulario en tu sitio web.
  2. validar.js – JavaScript para validar que los campos de nuestro formulario no estén vaciós
  3. contacto.php – El script PHP que recoge las variables de nuestro formulario y envía el E-Mail de contacto.

Código fuente del archivo contacto.html:
Código HTML:

[code]<html>
<head>
<title>Formulario de Contacto en PHP por Dasumo</title>
<!– Archivo de validación colocar dentro de HEAD /HEAD –>
<script type="text/javascript" src="validar.js"></script>
<!– Fin Archivo de validación –>
</head>
<body>
<!– Formulario de contacto colocar dentro de BODY /BODY–>
<div align="center">
<form method="post" action="contacto.php" onsubmit="return Validar(this);">
<label for="name">Nombre Completo:<br>
<input id="name" name="name" type="text" size="27"> </label><br><br>
<label for="email">Correo Electrónico:<br>
<input id="email" name="email" type="text" size="27"> </label><br><br>
<label for="subject">Asunto:<br>
<input id="subject" name="subject" type="text" size="27">
</label><br><br>
<label for="message">Mensaje: <br>
<textarea name="message" id="message" rows="5" cols="30"></textarea>
</label><br><br>
<input type="submit" name="submit" value="Enviar" /><br>
</form>
</div>
<!– Fin Formulario de contacto –>
</body>
</html>[/code]

Código Fuente del archivo de validación validar.js:

[code]//Función que verifica campos del formulario vacíos
function Validar(f) {
if (f.name.value=="") {
alert("Por favor escriba su Nombre completo");
f.name.focus();
return false;
}
if (f.email.value=="") {
alert("Por favor escriba su direcci\xF3n de correo electr\xF3nico");
f.email.focus();
return false;
}
if (f.subject.value=="") {
alert("Por favor escriba el asunto de su Mensaje");
f.subject.focus();
return false;
}
if (f.message.value=="") {
alert("Por favor escriba su Mensaje.");
f.message.focus();
return false;
}
}[/code]

Código fuente del archivo contacto.php:
Nota: Se ha agregado el caracter @ antes de las variables o funciones PHP para evitar que PHP muestre errores en pantalla, en su lugar, mostrará nuestro mensaje de error personalizado.
Código PHP:

[code]<?php
//Importamos las variables del formulario
@$name = addslashes($_POST[‘name’]);
@
$email addslashes($_POST[‘email’]);
@
$subject addslashes($_POST[‘subject’]);
@
$message addslashes($_POST[‘message’]);

//Preparamos el mensaje de contacto
$cabeceras = «From: $email\n» //La persona que envia el correo
 
"Reply-To: $email\n»;
$asunto «$subject«//El asunto
$email_to «tudirecciondecorreo@algo.com»//cambiar por tu email
$contenido «$name le ha enviado el siguiente mensaje:\n»
«\n»
«$message\n»
«\n»;

//Enviamos el mensaje y comprobamos el resultado
if (@mail($email_to$asunto ,$contenido ,$cabeceras )) {
//Si el mensaje se envía muestra una confirmación
die(«Muchas gracias, su mensaje fue enviado correctamente»);
}else{

//Si el mensaje no se envía muestra el mensaje de error
die(«Error: Su mensaje no pudo ser enviado, intente más tarde»);
}

?>[/code]

Eso es todo, para instalar, subimos los 3 archivos por FTP a nuestro sitio Web y colocamos los 3 archivos dentro de la misma carpeta.

Nota: El formulario de contacto de mi página web está basado en este ejemplo simple, así que dependerá de ustedes adaptarlo al estilo y a las necesidades de su sitio web.

Descargar verión 2.0 (los 3 archivos en un ZIP):

Descargar Formulario de contacto en PHP Gratis

Saludos a todos desde México, Dasumo.

126 respuestas a «Formulario de Contacto en PHP con validación»

Hi,

I’m a long time reader.

I’m writing to you because I’d love to contribute a guest post to your website.

I’ve been brainstorming some topics and I think your readers would get a ton of value from them.
I’ll make sure the piece is filled with information that can’t be found anywhere else. In exchange, all i expect is a backlink from within the main body of the article.

Do let me know if you like this proposal and if I can begin sending you some topic ideas.

Sincerely,

Ashlie Lopez

Hola, todo parece funcionar bien, el código esta perfecto y todos los archivos alojados en mi sitio, coloque mi correo en la parte del código php que lo requiere, pero el correo en cuestión no me llega.

Hola Josue:

Revisa tu carpeta SPAM y de estar ahí marca el correo como seguro, o, puedes intentar con otra dirección de correo.

Si sigue sin funcionar, modifica lo siguiente en el archivo contacto.php:
$cabeceras = "From: $email\n"

Y lo cambias por:
$cabeceras = "From: \"$email\" <admin@tupagina.com>\n"

Donde tupagina.com es la direccion de tu pagina web sin el www (nombre de dominio).

Te comento además que actualicé el formulario a la versión 2.0, tiene mejoras respecto a la seguridad y validación del mismo, descargalo pulsando el botón DESCARGAR al final del post.

Saludos

Hola.
Ya tengo el HTML con el donde recibo los datos: nombre, correo, teléfono y mensaje, estos datos los valido en JavaScript y posteriormente llamo a PHP donde hago el envío del correo (tal como lo platicaste).

Ahora necesito que la de HTML incluya una tabla dinámica con 5 columnas y tantos renglones como el usuario requiera. La tabla dinámica ya la genero en JavaScript pero ahora no sé cómo enviar los valores (tanto de nombre, correo, teléfono y mensaje como los de la tabla dinámica) al PHP para que se haga el envío del mensaje. Me puedes sugerir algo?

Muchas gracias de antemano.

Hola que tal una preguntota
Si me sirvio genial todo, pero ahora por ejemplo
como le hago para que cuando se envie el formulario entonces en vez de decirme el mensaje de «su mensaje fue enviado satisfactoriamente…», no me muestre esa pagina sino que solo me recarge la pagina en donde estaba y no me mande a otra, u Otra opcion que me muestre el mensaje, pero que me redireccione despues de 5segundos por ejemplo
Gracias y Saludos!

hola!!! muy buen aporte gracias por compartirlo!! A mi me quedo muy bien el problemas es que no me llegan los mensajes a mi correo, ni siquiera a el correo no deseado. . . puedes ayudarme por fa??

Si es hotmail y el servidor desde donde envías está baneado entonces no llegarán, otra opción es que el servidor bloquea el envío de e-mails, pero prueba con otra dirección (yahoo, gmail, etc) a ver si te funciona, de todos, hotmail es el más mamila jejeje…

Saludos.

buenas tardes excelente aporte

pero cuando voy a darle enviar me aparece El mensaje no fue enviado» intente mas tarde que debo de hacer para solucionar esto gracias

Hola:
es posible que el servidor donde estás probando el formulario tiene la función mail() deshabilitada, intenta en otro servidor o pregunta a tu provedor si el servidor soporta PHP mail()…

Saludos.

Responder a karla Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *