Ejemplo sencillo de cómo conectar un formulario a una base de datos y enviar un correo electrónico con los mismos datos utilizando PHP
Ejemplo sencillo de cómo conectar un formulario a una base de datos y enviar un correo electrónico con los mismos datos utilizando PHP
Primero, asumiendo que ya tienes una base de datos MySQL creada, debemos establecer la conexión a la misma:
// datos de conexión a la base de datos $servername = "localhost"; $username = "usuario"; $password = "contraseña"; $dbname = "nombre_de_la_base_de_datos"; // establecer conexión $conn = new mysqli($servername, $username, $password, $dbname); // comprobar conexión if ($conn->connect_error) { die("Conexión fallida: " . $conn->connect_error); }
Luego, podemos definir las variables necesarias para los datos que se envían a través del formulario:
// datos del formulario $nombre = $_POST['nombre']; $email = $_POST['email']; $mensaje = $_POST['mensaje'];
A continuación, insertamos los datos en la base de datos mediante una consulta SQL:
// insertar datos en la base de datos $sql = "INSERT INTO tabla_de_datos (nombre, email, mensaje) VALUES ('$nombre', '$email', '$mensaje')"; if ($conn->query($sql) === TRUE) { echo "Datos insertados correctamente en la base de datos"; } else { echo "Error al insertar datos: " . $conn->error; }
Finalmente, podemos utilizar la función mail()
de PHP para enviar un correo electrónico con los mismos datos del formulario:
// enviar correo electrónico $para = "destinatario@ejemplo.com"; $asunto = "Nuevo mensaje del formulario"; $mensaje_correo = "Nombre: " . $nombre . "\r\nEmail: " . $email . "\r\nMensaje: " . $mensaje; $headers = "From: remitente@ejemplo.com"; if (mail($para, $asunto, $mensaje_correo, $headers)) { echo "Correo electrónico enviado correctamente"; } else { echo "Error al enviar correo electrónico"; }
Es importante mencionar que este es solo un ejemplo básico y que se deben considerar medidas de seguridad adicionales, como la validación y limpieza de los datos recibidos antes de insertarlos en la base de datos para evitar posibles ataques de inyección de SQL.