PHP y BBDD

 El primer foco de interés fue el formulario de contacto, algo que considero esencial. El diseño del formulario es idéntico al de la página estática, sim embargo ahora el archivo es php  para que este funcione correctamente. He descargado esta carpeta para hacer uso de las funciones de la librería PHPMailer, https://github.com/PHPMailer/PHPMailer, ya que al principio estaba intentando que el formulario funcionase con las funciones del hosting, pero el hosting no proporciona las adecuadas. Esta librería está includia en la carpeta vendor, junto a un composer un archivo autoload.php 

Por eso he hecho uso de esta librería, para solucionar el problema de la función mail(). Una vez detallado el código php y correctamente unido a los datos del formulario lo implementé en el servidor del hosting, cuando intenté acceder a la página de contacto era como si el servidor no me cargase, me daba error tipo 500 y 503. Al preguntar a los agentes del hosting, me explicaron que esto era debido a que las funciones que había implementando excedían los recursos de mi plan de hosting. Me recomendaron que revisara los protocolos usados y los modificase adecuadamente. 

Tras estar revisando las funciones smtp que conectaban mi formulario con decidí cambiar el tipo de encriptado de tls a ssl, sabiendo que tls es una versión mejorada de ssl (https://support.google.com/a/answer/100181?hl=en#:~:text=TLS%20prevents%20unauthorized%20access%20of,more%20secure%20version%20of%20SSL.), opté por esta alternativa por probar y resultó que funciona. 

Por otra parte, otro de los problemas que me he encontrado es que según el código "original" del procesado del formulario de contacto, no funcionaba como esperaba, los correos se estaban enviando a la dirección de correo que se introducía en el formulario, desde la cuenta de correo que me proporciona el hosting. Esto, obviamente no era lo deseado, ya que quiero recibir los correos del formulario en una dirección que yo estipule. Sin embargo, arreglar esto fue bastante fácil, alterando ligeramente algunas la línea del código de quién recibía el correo. 

El código php del formulario no está incluido en este blog debido a contener información con posibles usos maliciosos.

La idea para implementar la base de datos en la página web es repecto a los libros, a parte de tenerlos de forma visual en la página, también me gustaría mantenerlos en una base de datos.

Esta base de datos la crearé de manera visual como se explica en las transparencias del curso. El resultado es este:


Además, he pensado que puede ser útil implementar una base de datos para mantener la información de los correos que reciba, creo que es una opción útil e interesante, sobre todo pensando en el largo plazo.

El proceso de acceso a la base de datos lo realicé siguiendo las transparencias del curso, he creado un archivo login.php con los datos de acceso a la base de datos (no detallaré el código en este blog ya que contiene claves de acceso). Sin embargo, aquí está parte del código usado para conectar la base de datos con el formulario. Cada vez que alguien envíe un correo a través del formulario de contacto, se almacenará la información en la base de datos, aquí el código que realiza esta función:

 if ($_SERVER["REQUEST_METHOD"] == "POST") {
                                require_once "config.php";
                           
                                $name = htmlspecialchars($_POST['name']);
                                $apellidos = htmlspecialchars($_POST['apellidos']);
                                $email = htmlspecialchars($_POST['email']);
                                $subject = htmlspecialchars($_POST['subject']);
                                $message = htmlspecialchars($_POST['message']);
$sql = "INSERT INTO ContactMessages (name, apellidos, email, subject, message)
VALUES (?, ?, ?, ?, ?)";
                               
                                if($stmt = mysqli_prepare($conn, $sql)){
                                    mysqli_stmt_bind_param($stmt, "sssss",
$param_name, $param_apellidos, $param_email, $param_subject, $param_message);
                                   
                                    $param_name = $name;
                                    $param_apellidos = $apellidos;
                                    $param_email = $email;
                                    $param_subject = $subject;
                                    $param_message = $message;


Aquí se puede ver la base de datos que se va actualizando automáticamente cada vez que recibo un email, estos correos que aparecen son todos pruebas, estos serán eliminados para dejar espacio a posibles correos entrantes.




Comentarios

Entradas populares de este blog

Nuevos plugin JQuery

Modificación de la organización y estilo + Slider JQuery