PHP
PHP

Vamos a hacer un sencillo login con php y PDO haciendo uso del patrón singleton. Crearemos una clase donde tendremos la conexión a la base de datos y donde deberemos crear el método prepare de PDO para poder hacer consultas.

A continuación crearemos otra donde tendremos la lógica de nuestra aplicación, desde ésta llamaremos a nuestra clase conexión haciendo uso de Singleton como veremos, y, así de paso aprenderemos como llamar a otras clases desde otras clases haciendo uso del patrón Singleton.

Como podremos ver no necesitamos asegurar los datos introducidos en el formulario ya que la extensión PDO se encarga de hacer esa faena al vuelo gracias al método prepare, con todo lo anterior podemos empezar.

Sistema de login con php y PDO

Vamos a crear una carpeta que llamaremos login_pdo en nuestro servidor local, en windows suele ser htdocs y en linux www, ahora iremos creando las carpetas y archivos necesarios para hacer funcionar nuestro sistema de login:

Creamos una carpeta nueva dentro de login_pdo llamada conexion y dentro creamos un archivo llamado conexion.class.php, lo abrimos y dentro podemos colocar el siguiente código con el que tendremos lista la conexión a nuestra base de datos.

;
Como vemos simplemente en el método constructor creamos la conexión, siendo el mismo privado que es como lo debemos hacer si queremos hacer uso de Sigleton, a continuación creamos el método prepare, ya que si no lo hacemos nuestra conexión no funcionará, hay que hacer esto siempre.

Ahora ya tenemos nuestra conexión lista para ser usada desde donde necesitemos, en nuestro caso será en la clase login que pasamos a crear a continuación, pero primero debemos crear la base de datos usuarios y la tabla users para hacer uso de la misma.

La base de datos usuarios

 

Insertamos unos registros de pruebas.

La clase login.class.php

Creamos una carpeta en la raíz de la aplicación y le llamamos class_login, dentro creamos un nuevo archivo llamado login.class.php y pasamos a colocar el siguiente código.

Como vemos llamamos a la clase conexión con un require_once, a continuación empezamos una sesión con sesion_start() y creamos el método constructor en el cuál lo que hacemos es crear una instancia de nuestra clase conexión haciendo uso de singleton para poder tenerla disponible en toda nuestra clase, como se puede ver es realmente sencillo.

A continuación creamos un método que llamamos login_users para procesar el login de usuarios, como vemos simplemente comprobamos si el número de resultados es igual a 1, en ese caso las credenciales son correctas y creamos una sesión con el nombre del usuario y devolvemos true, es importante ver como cerramos la conexión con la base de datos con $this->dbh = null, también es una buena práctica hacer uso de estructuras try catch, si algo falla la sección catch será en la que podremos hacer lo que queramos en caso de alguna excepción.

El formulario de login

Creamos un archivo en la raíz de la aplicación llamado index.php, dentro simplemente crearemos un formulario para poder probar nuestro login.

Como vemos simplemente es la estructura de una página web y un formulario con algunos estilos, si nos fijamos el atributo action de nuestro formulario apunta a un archivo llamado login.php, este es para nosotros nuestro controlador, el que hace la comunicación entre la vista y la base de datos, con esto ya habremos terminado nuestro sistema de login, veamos.

El archivo login.php

Creamos un archivo en la raíz de la aplicación llamado login.php, dentro colocamos el siguiente código que será el encargado de hacer la comunicación con el método login_users para comprobar si los datos son correctos.

Como vemos creamos una instancia de nuestra clase login haciendo uso del patrón Singleton, a continuación comprobamos si se ha envíado el formulario y lo procesamos, si la respuesta del método login_users devuelve true, lo que significa que todo ha ido bien, redirigimos a home.php, que por así decirlo sería la zona privada de nuestra aplicación.

Ya sólo nos resta crear el archivo home.php en el que simplemente damos la bienvenida al usuario logueado.

El archivo home.php

Creamos un archivo en la raíz de la aplicación llamado home.php, dentro colocamos el siguiente código.

Como vemos simplemente empezamos una sesión y comprobamos si existe, si es así damos la bienvenida al usuario que ha iniciado sesión correctamente, en otro caso mandamos al index de nuevo.

Hasta aquí este tutorial en el que hemos aprendido varias cosas nuevas, un sencillo login con php y PDO haciendo uso del patrón Singleton, espero que sea de ayuda a los que empiezan en esto de la programación, un saludo.