Sistema de registro y login de usuarios con PHP y SQL

Sistema de registro y login de usuarios

 

Sistema de registro y login de usuarios con PHP y SQL

¿Cuántas veces has necesitado implementar en tu web o aplicación un sistema de registro y login para tus usuarios?. Es una parte básica para un gran porcentaje de webs o aplicaciones que desean tener algún tipo de interacción  con sus usuarios o visitantes.

Ya sea para publicar comentarios, añadir algún anuncio o responder consultas, siempre es necesario que el usuario se haya registrado y logeado. De otra manera, estaremos dando acceso libre a cualquiera de los miles de bots de corren por la red esperando a entrar en webs para cometer sus “fechorías”.

¿ Qué te puedo ofrecer ?

Encontrarás muchos sistemas de registro de usuarios en la web totalmente funcionales y efectivos, pero también totalmente personalizados según el gusto del creador. Y claro, yo prefiero empezar con el sistema básico y, a partir de aqui, añadirle yo todo lo que necesito.

Pues en este caso, te traigo un sistema de registro y login de usuarios  muy simple pero muy eficiente, para implementar en tu web. Este mismo sistema es el que he utilizado como base para varios de mis proyectos. Lógicamente, toda la parte del diseño corre de tu cuenta.

 


(Al final de este artículo podrás descargar el sistema completo)


 

Características del sistema:

Registro a través de email y password.

  • No recoge otro tipo de datos personales ya que, normalmente, no los necesito. Puedes añadir muy fácilmente nuevos campos en el formulario de registro, si es lo que necesitas. Codificación base64 para el password.

Posibilidad de cambio de contraseña.

  • Una vez logeado correctamente, el usuario podrá cambiar su contraseña. Esta opción aparece al inicio de la página, pero puedes colocarlo donde lo necesite. Puedes colocarlo en la cabecera de la web, o en un modal…

Recuerdo de contraseña.

  • En el caso de olvido de contraseña, el usuario podrá recibirla añadiendo la direccion de email con la que se registró.

Seguridad

  • Este sistema tiene implementado un sistema de seguridad básico, que evita inyectar códigos maliciosos en el momento del registro y valida los campos de los formularios. En cualquier caso, nunca está de más que añadas toda la seguridad que consideres necesaria.

 

Cookies y Token aleatorio.

En el momento del registro, a la vez que se guarda en la base de datos el  email del usuario y su contraseña, codificada en base64 (puedes variarlo si lo necesitas), se crea un token hexadecimal aleatorio de 12 dígitos.

El id del usuario y éste nuevo token, se añaden a unas cookies que quedarán almacenadas en el ordenador de tus usuarios para que, en caso de volver a visitar tu web, no tengan que volver a logearse.

Para añadir un punto más de seguridad y evitar que un usuario intente modificar su cookie de usuario o token aleatorio para acceder como otro usuario, el sistema, cada vez que entra el usuario, hace una consulta a la base de datos y compara si los datos obtenidos de esa consulta corresponden con las cookies internas. En caso contrario, automáticamente elimina las cookies y obliga al usuario a volver a logearse.

 

Estilos CSS

  • A través de archivo form.css, incluido en la carpeta css del sistema, podrás hacer todas las modificaciones que necesites a los estilos de tus formularios. Tienes una infinidad de posibilidades a realizar.

Bootstrap y Fontsawesome

  • En este caso, en el interior de la carpeta css, he añadido Bootstrap y Fontsawesome. Verás que desde el <head> de cada formulario se está llamado a estos archivos. Si no los necesitas o deseas añadir otros , puedes ponerlos en la carpeta css o borrarlos.

 

Estructura del sistema

La estructura es muy simple:

En la carpeta principal añadimos el archivo index.php , que será la web inicial. Si el sistema no encuentra las cookies del usuario logueado, automáticamente se le redirige al archivo de login.

Ahora crearemos unas carpetas css y usuarios, en las que añadiremos los archivos necesarios.

  1. Carpeta css: añadimos form.css
  2. Carpeta usuarios: añadimos todos los archivos .php necesarios

 

 

Y , a partir de éste punto, vamos con el código:

Empecemos con la base de datos. Hemos de crear la tabla users, con los campos id, username (aquí se guardará el correo electrónico y ha de ser único para evitar dobles registros), password (codificado en md5)  , token (generado aleatriamente) , created_at (fecha de registro del usuario).

 

index.php , nuestra página principal de llegada.

 

Y ahora, nos vamos a la carpeta usuarios y en su interior añadimos los siguientes archivos:

config.php para la conexión a la base de datos. Para la gestión de usuarios hemos utilizado el método MySQLi  asumiendo que trabajas con MySQL. También  realizo una conexión PDO para otras partes de la aplicación web.

 

functions.php donde añadiremos los códigos necesarios . En este caso hemos añadido la función que comprueba el token del usuario.

 

register.php donde el usuario se registra con su email y password.

 

login.php

 

reset-password.php

 

recuperar_pass.php

Para generar el email que enviará el password al usuario, visita ESTE POST donde te explico cómo hacerlo.

 

logout.php

 

Y hasta aqui, el Sistema de Usuarios para tus webs o palicaciones. Verás que es muy simple y aún tiene mucho margen de mejora, pero considero que es mejor que le añadas tú lo que necesites en lugar de usar un Sistema excesivamente grande o con características inútiles para ti.

Por ejemplo puedes añadirle JavaScript para hacer validaciones, o añadir un loader, o más campos en tus formularios, o una elección de avatar….ya lo ves, lo que necesites.

 


AQUI puedes descargarte el sistema completo. Sólo has de adaptarlo a tu base de datos y empezar a modificarlo a tu gusto.


 

Espero que te sea de utilidad. Hasta el próximo post!!

 

Compartir esta entrada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

CAPTCHA ImageChange Image