Sistema de logueo de usuarios en PHP y MySQL

Sistema de logueo de usuarios en PHP y MySQL

Te presento un método muy simplificado para realizar un sistema de logueo de usuarios en PHP y MySQL. Para esto utilizamos: sesiones en PHP, contraseñas encriptadas, redireccionamiento de páginas, así como consultas SQL.

Módulos en un sistema de logueo de usuarios

Los módulos que se requieren para un sistema de logueo de usuarios son:

  • Módulo de altas de usuarios
  • Página de ingreso
  • Script de logueo
  • Páginas protegidas (con acceso solo para usuarios logueados)
  • Script para cerrar sesión.
  1. Elaboración de la plantilla HTML

Utilizamos HTML y Bootstrap para realizar una página responsive. El código que utilizaremos en este ejemplo es el siguiente:

 

Para que funcione adecuadamente deberás crear dos carpetas: css y js (para contener los archivos css y javascript).

Puedes complementar con cualquier contenido que desees. Un ejemplo de cómo se vería es el siguiente:

Plantilla Sistema de logueo de usuarios

Sistema de logueo de usuarios

2. Crear el formulario para dar de alta a los usuarios.

El siguiente formulario solicita los datos del usuario: nombre, apellido, usuario (será el nombre de usuario con el que se logueará) y password.

Se vería así:

Logueo de usuarios - Crear una cuenta

Formulario para crear una cuenta

3. Crear el script para guardar los usuarios

Se necesitará una BD con los mismos campos antes mencionados: nombre, apellido, usuario, password, solo que incluiremos además el campo id como llave primaria y en autoincrement, y el campo nivel (con valores 1, 2,3 que representan un usuario común, un usuario colaborador, y un usuario administrador, respectivamente), y un campo activo (que tendrá 1 si el usuario está activo y 0 si su cuenta está desactivada).

La estructura de la base de datos se vería así:

Estructura de la base de datos del Sistema de Logueo de Usuarios

El script php que guarda los datos es el siguiente:

 

Observe que se guarda el password encriptado (utilizando sha1). Para que se guarde bien la cadena encriptada el campo pasword en la Base de Datos debe tener un tamaño mayor a 40 espacios.

Para encriptar una contraseña o cualquier otro campo utilice la función sha1

Utiliza un archivo de conexión que es el siguiente:

 

Deberá sustituir los nombres de Base de Datos, Usuario y Contraseña por los que utilice su sistema.

4. Crear el formulario para el logueo de usuarios

Se crea un formulario que únicamente solicite: usuario y password.

Se vería así:

Formulario de logueo de usuarios

Formulario de logueo de usuarios

5. Elaboración del script de logueo de usuarios

El siguiente código realiza lo siguiente:

  1. Se conecta a la BD
  2. Realiza una consulta buscando un usuario y un pasword como los que se le proporcionaron.
  3. Si encuentra por lo menos un usuario, se crean las variables de sesión que vayamos a necesitar.
  4. Utilizando el campo nivel, el script redirigirá a la página correspondiente del usuario común, usuario colaborador o al panel del administrador.
  5. En caso de que no encuentre un usuario con el nombr y la contraseña proporcionados, redirigirá a una página de error.

La instrucción session_start() debe estar al comienzo del script

$_SESSION se utiliza para almacenar las variables de sesión

Una variable de sesión mantiene su valor al salir de la página actual y entrar a otra que pertenezca a la misma sesión.

Si la contraseña está encriptada, debe volver a encriptarla cuando realice la consulta.

Para hacer un redireccionamiento utilice la instrucción header(‘Location:’) indicando la url hacia la que debe dirigirse.

6. Crear una página protegida

Las páginas que desee proteger deberán incluir el siguiente código:

 

Por ejemplo, el panel del administrador debería incluirlo verificando que el usuario logueado tenga un nivel 3.

7. Script para cerrar la sesión

Es el más sencillo de todos, destruye la sesión y redirige a la página que uno quiera, por ejemplo, la principal o la página de ingreso.

 

Espero que este ejemplo te permita crear un sistema de logueo a tu medida. Cualquier duda deja un comentario.

Referencias

  1. Beati (2015). Creación de páginas Web dinámicas. Editorial Alfaomega. [Enlace en Google Books].
¿Qué te pareció este artículo?
  • Excelente 
  • Interesante 
  • Regular 
  • No era lo que buscaba 
  • Poco informativo 
Facebooktwittergoogle_plusmail

Tu comentario

opiniones

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *