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.