Cómo hacer un login de usuarios en PHP y CodeIgniter

Ver demo y codigo fuente de script de login en framework php CodeIgniter

Son 4 sencillos pasos,

  • Paso 1: crear el archivo php.php y guardarlo en /application/controllers/
  • Paso 2: crear el archivo login.php y guardarlo en /application/views/
  • Paso 3: crear usuarios_model.php y guardarlo en /application/models/
  • Paso 4: crear la tabla mysql con algunos usuarios de prueba

¿Qué es esto? | Funcionalidades del script | Explicación técnica

Descargar el código del script (incluye comentarios de cada sentencia!)

Paso 1: Código para el controlador «php.php»:

Paso 2: Código para la vista «login.php»:

Paso 3: Código para el modelo usuarios_model.php

Paso 4: Consulta Mysql para crear la tabla de usuarios

¿Qué es esto?

Se trata de un script que, mediante pocas líneas de código, te permite configurar un login de usuarios propio en tu página web.

Esta capacidad es sumamente importante y la necesitaremos en cualquier proyecto web que iniciemos. Puesto que seguramente existe cierta información y funciones que nos interesa ofrecer únicamente a usuarios registrados y no al resto del público.

Por ejemplo, si estamos haciendo un sistema web para un periódico, nos interesará que los periodistas puedan ingresar al sistema (mediante un usuario y password) y puedan ingresar noticias…. Por supuesto, esta función debería ser accesible únicamente por periodistas y no por un lector común.

Funcionalidades

  • Permitir acceso a determinada información y utilidades únicamente a determinados usuarios (aquellos que se encuentren registrados en una tabla de base de datos Mysql)
  • Mensaje de error cuando falta rellenar algún campo de la pantalla de acceso
  • Mensaje de error cuando los datos ingresados no coinciden con ningún usuario registrado en la base de datos.
  • Recordar los datos previamente ingresados por el usuario cuando éste no supera el login y tenemos que volver a presentarle la pantalla de acceso.

Explicación técnica

Como pueden observar, los códigos del script se encuentran con comentarios. Cada sentencia importante tiene su explicación de que función cumple. Lo que intentaremos ahora es hacer una explicación general de cómo funciona el script; como si fuera un cuento… :-)

Comencemos con la pantalla de acceso «login.php», donde el usuario podrá ingresar sus datos (usuario y password). Recordemos que todo lo que sea interacción con el usuario (entrada y salida de datos) lo trabajamos con las vistas (capa presentación).

Lo importante aquí es la sentencia

donde creamos nuestro formulario html y especificamos que sus datos deben ser enviados y procesados por el método «login» del controlador «php». La sentencia form_open es de CodeIgniter.

Otro punto importante de la vista es cuando creamos los campos (serían las cajas de texto donde el usuario podrá ingresar los datos):

Aquí estamos creando un campo de texto llamado «maillogin». La sentencia «set_value» nos sirve para recordar los datos rellenados por el usuario en caso que su acceso no sea válido y tengamos que volver a presentarle la pantalla de acceso. Es un valor agregado para dar mejor usabilidad a los usuarios.

Luego pasemos al controlador «php.php». Esta es la parte más compleja del script, por tal motivo intenté poner comentarios a cada una de las y facilitar así su comprensión. Te recomiendo leer los comentarios directo en el código.

El controlador (php.php) hace lo que hace es tomar los datos provenientes del formulario, hacer las validaciones, consultar al modelo (usuarios_model.php) si el usuario existe en la base de datos y su password es válida. Por último, decide si el usuario corresponde que pueda acceder, o no, y comunica su decisión a la vista (login.php) para que el usuario vea la respuesta en su pantalla.

Me interesa remarcar aquí algunas sentencias y declaraciones puntuales que son muy básicas de php y te servirán en todo sistema web que desarrolles.

  • (sirve para tomar los valores provenientes del formulario, en este caso se toma el valor del campo «maillogin»)

  • (sirve para cargar el modelo usuarios_model y poder utilizar sus recursos)

  • (ejecuta el método «ValidarUsuario» de nuestro modelo «usuarios_model» y le pasa los dos parámetros. )

En el próximo artículo continuaremos mejorando este script de login. Por ejemplo, estudiaremos como hacer para que el usuario pueda acceder a muchas pantallas de información restringida sin tener que poner siempre sus datos de login (únicamente ingresarlos la primer vez).

Espero que lo disfruten, les sea útil para sus proyectos y principalmente… Los ayude a continuar aprendiendo!

Ver demo y codigo fuente de script de login en framework php CodeIgniter

Por favor, envíen sus consultas y dudas y lo revisamos juntos :-)

Saludos!

Sobre el autor

Ing. Diego Angelini
(Ceo & Fundador Blogdephp.com)

Un blog para ayudarte a aprender y compartir conocimientos sobre programación php y mysql.

Artículos y scripts listos para usar (algunos de ellos basados en el popular framework de php CodeIgniter)

Los scripts se publican con comentarios en las sentencias del código y una demo on-line para que puedas probarlo de inmediato :-)

Escríbe un comentario

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

11 comentarios en “Cómo hacer un login de usuarios en PHP y CodeIgniter”

    • Efectivamente Antonio, tal como tu mencionas, trabajar con frameworks requiere menor esfuerzo de «coding» y nos ayuda a acelerar nuestros tiempos de desarrollo y entrega.

      Por supuesto que toma un tiempo aprender a utilizar el framework, pero una vez que tomas práctica con el mismo, tienes acceso a muchos recursos muy útiles, que han sido desarrollados por programadores expertos, y son muy sencillos de utilizar!

      Por ejemplo, tienes acceso a librerías para validar campos de un formularios, upload de archivos, enviar e-mails, facilitar tus consultas a la base de datos, etc.

      Todos mis conocidos que visitan Perú me hablan maravillas de tu país, ojalá algún día pueda conocerlo en persona :-)

      Un gran abrazo desde Argentina!

    • me parece flojo tu comentario.. el autor se dedico a subir los scripts completos en un zip.. comentados y todo.. falta un poco de interes tuyo para bajar los codigos y verlos..

      muy buen tutorial
      se agradece.. lo implementare!

  1. y como seria el logout? y a la pagina que redirigo si estan bien los datos de accesos como se le hace el control para que accedan solo usuarios logueados? perdon pero recien estoy metiendome en CI y quiero aprenderlo pero bueno estoy medio perdido aparte no se mucho ingles y como sabran la mayoria esta en ingles, jej, saludos y desde ya gracias por su tiempo para que todos aprendamos

  2. Hola que mas, la verdad es que estoy empezando con este framework que es muy genial, mi pregunta es si codeigniter tendra una opcion de no dejar que miren el codigo fuente de una pagina