Mi Blog
👉 Cómo crear un formulario de contacto con Bootstrap 4 y PHP

Cómo crear un formulario de contacto con Bootstrap 4 y PHP

 
(38 votos)

Gracias a Bootstrap, crear formularios se ha convertido en una tarea realmente sencilla. No son necesarios muchos conocimientos de programación PHP/HTML para conseguir hacer un formulario completamente funcional con multitud de campos y diferentes tipos. El tutorial está enfocado a gente que tenga una base de PHP y HTML.

Seguid leyendo y os enseñaré como crear vuestros propios formularios de contacto de forma sencilla y rápida con Bootstrap y PHP...aunque no explicaré todos los pasos al detalle...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ ES BOOTSTRAP?

Bootstrap es uno de los Frameworks CSS de código abierto más conocidos y más utilizados en el mundo del desarrollo web.

Este framework facilita enormemente la maquetación de páginas web, ya que te permite crear una interfaz muy limpia y completamente responsive, es decir, adaptable a cualquier tamaño de pantalla. Además, ofrece tantas herramientas y funcionalidades que permite crear una web desde cero de una forma realmente sencilla.

Web: https://getbootstrap.com/

 

Ventajas:

  • Mantenimiento y actualización realizados por Twitter
  • Paquete de elementos web personalizables
  • Utiliza componentes vitales para los desarrolladores (HTML5, CSS3, jQuery o GitHub, entre otros)
  • De sencilla adaptación responsive
  • Incluye Grid system para maquetar por columnas
  • Integración a librerías JavaScript
  • Usa Less
  • Uso ágil y sencillo
  • Contiene suficiente documentación por niveles
  • Cada vez ofrece más plugins

 

 

Bootstrap es un Framework de CSS muy potente y versátil

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un editor de textos/código (Notepad++, SublimeTxt, Visual Studio Code, Netbeans, Eclipse...)
  • Un entorno WAMP/LAMP instalado (Necesitamos soporte de PHP)
  • Conexión a Internet (muy recomendado)

 

 

2.- ¿QUÉ QUEREMOS CONSEGUIR?

En este tutorial lo que queremos hacer es un sencillo formulario de contacto con Bootstrap, PHP y habilitar el envió a través de correo electrónico gracias a la función mail() que nos ofrece PHP. El formulario que diseñaremos tendrá el siguiente aspecto y se necesitan conocimientos de PHP y HTML básicos para entender como funciona, ya que no explicaré todo:

Formulario con Bootstrap 4 y PHPEjemplo del formulario

 

 

Se puede ver una DEMO del Formulario en el siguiente enlace: DEMO FORMULARIO

 

 

3.- DESCARGAR Ó ENLAZAR BOOTSTRAP

Existen 2 opciones para "instalar" bootstrap en nuestra Web.

  1. Descargar Bootstrap y descargarlo en local (ideal si es una web que no tendrá acceso a Internet)
  2. Enlazar los ficheros CSS y JS de los servidores de bootstrap.

 

En este ejemplo se ha optado por la opción número dos, siguiendo las instrucciones de bootstrap https://getbootstrap.com/docs/4.4/getting-started/introduction/. En el siguiente paso se puede ver como en el <head></head> de la página web se enlaza a Bootstrap.

 

 

4.- CREANDO EL FORMULARIO BOOTSTRAP

Crearemos un fichero php con cualquier editor de texto (notepad++,sublimeTxt) o cualquier otro IDE (Netbeans,eclipse,Visual studio code...) que utilicemos para desarrollar. Escribiremos la estructura básica de un fichero HTML dentro de nuestro fichero PHP. Por ejemplo lo llamaremos "formulario-contacto.php". Fuera de las etiquetas PHP se puede escribir código HTML:

<html>
<head>
<!-- AQUI HOJAS DE ESTILO Y JS-->
</head>
<body>
<!-- AQUI EL FORMULARIO -->
</body>
<!-- AQUI EL JS QUE HAGA QUE TARDE EN CARGAR LA WEB --
</html>

 

 

Entre las etiquetas de <head></head>, pondremos el título de nuestra página web, y el enlace a la hoja de estilo CSS de Bootstrap. Este enlace se puede encontrar en la página de Bootstrap.

<title>Formulario de Contacto con Bootstrap y PHP</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

 

 

Dentro de las etiquetas <head></head>, tenemos que incluir la hoja de estilos CSS, bien embebida ó bien como fichero externo. En este ejemplo, como son pocas líneas, se añade el estilo en la propia cabecera.

<style>
body {
background-color: beige;
}
.red {
color: red;
}

#footer {
position: fixed;
width: 100%;
height: 40px;
line-height: 40px;
vertical-align: middle;
background-color: black;
color: white;
text-align: center;
bottom: 0;
left: 0;
}
</style>

 

 

Ahora es momento de crear los campos del formulario. Para ayudarnos podemos visitar la página de ayuda de Bootstrap e ir completando los campos. Es tan sencillo como copiar&pegar. La ayuda está en estas dos páginas Forms y Input-Group. Recordad añadir required a los campos que queráis que sean obligatorios.

<!-- INICIO FORMULARIO HTML -->
<form method="POST" action="/index.php" class="needs-validation" novalidate>

<div class="form-row mt-5">
<div class="col-md-4 mb-3">
<label for="validarNombre">Nombre:<span class="red">*</span></label>
<input type="text" class="form-control" id="validarNombre" name="validarNombre" required>
</div>
</div>

<div class="form-row">
<div class="col-md-4 mb-3">
<label for="validarApellidos">Apellidos:<span class="red">*</span></label>
<input type="text" class="form-control" id="validarApellidos" name="validarApellidos" required>
</div>
</div>

<div class="form-row">
<div class="col-md-4 mb-3">
<label for="validarEmail">Email:<span class="red">*</span></label>
<input type="email" class="form-control" id="validarEmail" name="validarEmail" required>
</div>
</div>

<div class="form-row">
<div class="col-md-4 mb-3">
<label for="validarTelefono">Teléfono:</label>
<input type="number" class="form-control" id="validarTelefono" name="validarTelefono" max="999999999">
</div>
</div>

<div class="form-row">
<div class="col-md-4 mb-3">
<label for="validarTema">Tema:<span class="red">*</span></label>
<select class="custom-select" id="validarTema" name="validarTema" required>
<option selected disabled value="">Selecciona...</option>
<option value="Problema con acceso a Web">Problema con acceso a Web</option>
<option value="Propuesta de colaboración">Propuesta de colaboración</option>
<option value="Eliminar mi usuario de la Web">Eliminar mi usuario de la Web</option>
<option value="Otras cuestiones">Otras cuestiones</option>
</select>
</div>
</div>

<div class="form-row">
<div class="col-md-4 mb-3">
<label for="validarAsunto">Asunto:</label>
<input type="text" class="form-control" id="validarAsunto" name="validarAsunto" required>
</div>
</div>

<div class="form-group">
<label for="validationMensaje">Mensaje:<span class="red">*</span></label>
<textarea class="form-control" id="validationMensaje" name="validationMensaje" rows="3" min="25" required></textarea>
</div>

<div class="form-group mb-10">
<button class="btn btn-primary" type="submit" name="submit">Enviar</button>
<button class="btn btn-success" type="reset" name="reset">Limpiar</button>
</div>

</form>

 

 

Con las líneas anteriores, ya tenemos todo el formulario de contacto creado visualmente. Hay que destacar el campo "action" del formulario, el cual sirve para enviar los datos del formulario a una página de procesado de los datos. En este caso, se  va a procesar todo en la misma página web, por eso el action form  tiene ese valor utilizando PHP. Los datos serán enviados a "ella misma".

 

 

5.- ENVIAR EL FORMULARIO CON PHP

Ahora tenemos que hacer la parte lógica del formulario en PHP, y se encargará de recibir todos los datos de los campos del formulario y enviarlos por email gracias a la funcion mail() de PHP. No merece mucha explicación ya que es bastante sencillo. NOTA: Recordad eliminar el espacio en la primera línea entre "<? php".

<? php
if (isset($_POST['submit'])) {
//ini_set( 'display_errors', 1 ); # REMOVE // FOR DEBUG
//error_reporting( E_ALL ); # REMOVE // FOR DEBUG
$from = "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo."; // Email con el dominio del Hosting para evitar SPAM
$fromName = "RPF-WEB"; // Nombre que saldrá en el email recibido
$to = "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo."; // Dirección donde se enviará el formulario
$subject = $_POST['validarAsunto']; // Asunto del Formulario

/* Componemos el mensaje */
$fullMessage = "Hola! " . $to . "\r\n";
$fullMessage .= $_POST['validarNombre'] . " " . $_POST['validarApellidos'] . " te ha enviado un mensaje:\r\n";
$fullMessage .= "\r\n";
$fullMessage .= "Nombre: " . $_POST['validarNombre'] . "\r\n";
$fullMessage .= "Apellidos: " . $_POST['validarApellidos'] . "\r\n";
$fullMessage .= "E-Mail: " . $_POST['validarEmail'] . "\r\n";
$fullMessage .= "Teléfono: " . $_POST['validarTelefono'] . "\r\n";
$fullMessage .= "Tema: " . $_POST['validarTema'] . "\r\n";
$fullMessage .= "Asunto: " . $_POST['validarAsunto'] . "\r\n";
$fullMessage .= "Mensaje: " . $_POST['validationMensaje'] . "\r\n";
$fullMessage .= "\r\n";
$fullMessage .= "Saludos!\r\n";

/* Creamos las cabeceras del Email */
$headers = "Organization: RPF WEB\r\n";
$headers .= "From: " . $fromName . "<" . $from . ">\r\n";
$headers .= "Reply-To: " . $_POST['validarEmail'] . "\r\n";
$headers .= "Return-Path: " . $to . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-Mailer: PHP". phpversion() ."\r\n";

/* Enviamos el Formulario*/
if (mail($to, $subject, $fullMessage, $headers)) {
echo "<center><h2>El E-Mail se ha enviado correctamente!</h2></center>";
} else {
echo "<center><h2>Ops ! El E-Mail ha fallado!</h2></center>";
}
}
?>

 

 

6.- VALIDACIÓN DEL FORMULARIO

Bootstrap es capaz de validar los formularios, para ello debemos añadir al final de nuestro body el siguiente código Javascript:

Formulario con Bootstrap 4 y PHPValidar campos del formulario

 

 

Código Javascript para la validación del formulario:

<script>
(function() {
'use strict';
window.addEventListener('load', function() {
var forms = document.getElementsByClassName('needs-validation');
var validation = Array.prototype.filter.call(forms, function(form) {
form.addEventListener('submit', function(event) {
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
}, false);
});
}, false);
})();
</script>

 

 

7.- COMPROBAR EL CORRECTO FUNCIONAMIENTO

Ahora es el momento de probar el formulario. Completaremos todos los campos y le daremos a enviar:

Formulario con Bootstrap 4 y PHPFormulario rellenado

 

 

Si el mail se envía correctamente, que no hay ningún error, aparecerá el siguiente mensaje:

Formulario con Bootstrap 4 y PHPFormulario enviado

 

 

Y pasados unos minutos/segundos, recibiremos un email como el que se muestra la imagen siguiente:

Formulario con Bootstrap 4 y PHPEmail recibido

 

 

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!
Cookies

Usamos cookies en nuestro sitio web. Algunas de ellas son esenciales para el funcionamiento del sitio, mientras que otras nos ayudan a mejorar el sitio web y también la experiencia del usuario (cookies de rastreo). Puedes decidir por ti mismo si quieres permitir el uso de las cookies. Ten en cuenta que si las rechazas, puede que no puedas usar todas las funcionalidades del sitio web.