Contenido del artículo:
En esta entrada te mostraré cómo crear un formulario de contacto funcional en PHP sin usar frameworks. Este formulario envía un correo al administrador del sitio con los datos que el visitante ha llenado. Ideal para sitios personales, portafolios, o landing pages.
✅ Requisitos:
- Tener PHP instalado (localmente con XAMPP, WAMP, etc. o en un servidor).
- Que esté habilitada la función
mail()
en tu servidor.
🧱 Paso 1: Formulario HTML
<form action="contacto.php" method="POST">
<label>Nombre:</label><br>
<input type="text" name="nombre" required><br><br>
<label>Correo:</label><br>
<input type="email" name="correo" required><br><br>
<label>Mensaje:</label><br>
<textarea name="mensaje" rows="5" required></textarea><br><br>
<input type="submit" name="enviar" value="Enviar Mensaje">
</form>
📬 Paso 2: Código PHP que procesa el formulario (contacto.php
)
<?php
if (isset($_POST['enviar'])) {
$nombre = htmlspecialchars($_POST['nombre']);
$correo = filter_var($_POST['correo'], FILTER_VALIDATE_EMAIL);
$mensaje = htmlspecialchars($_POST['mensaje']);
if ($correo) {
$destinatario = "tucorreo@tudominio.com"; // Reemplazar con tu email
$asunto = "Nuevo mensaje desde formulario web";
$contenido = "Nombre: $nombre\nCorreo: $correo\nMensaje:\n$mensaje";
$cabeceras = "From: $correo";
if (mail($destinatario, $asunto, $contenido, $cabeceras)) {
echo "Mensaje enviado correctamente.";
} else {
echo "Error al enviar el mensaje.";
}
} else {
echo "Correo no válido.";
}
}
?>
🔐 Recomendaciones:
- Si usas XAMPP, configura
sendmail
o utiliza PHPMailer para pruebas reales. - Usa
htmlspecialchars()
yfilter_var()
para validar y evitar inyecciones. - Considera usar reCAPTCHA si es un formulario público.