En este tutorial vamos a acceder al modelo Usuario y a hacer una serie de acciones como son el acceso y la edición de clave de usuario encriptada en md5, a demás de validaciones que no se encuentran por defecto en Codeigniter. También haremos usos de formularios para que podamos interactuar con el programa desde la aplicación.

En el post anterior vimos cómo crear una librería y colocarle las validaciones. Todo esto es correcto pero, para no mezclar validación con la lógica del controlador, esta vez vamos a cambiar el contenido de la librería, colocando todas las validaciones en el controlador y modificando el constructor y el método ingresar.

Lo único que hemos hecho ha sido poner un mensaje predefinido para el required en el constructor, comentar la llamada a la librería -al menos de momento-, y cambiar en el controlador ingresar la llamada la función por las validaciones. La librería nos ha quedado de la siguiente manera:

Para poder crear un tipo de validación nuevo con el nombre que queramos tenemos que poner siempre callback_ seguido del nombre de la validación. Esto nos enviará a una función, que crearemos nosotros en el mismo controlador, llamada con el mismo nombre pero sin callback_. Esta función retornará verdadera o falsa dependiendo de la lógica que usemos. vamos a ver un ejemplo modificando la validación de ingreso.

También crearemos un mensaje para loginok en el constructor

Ahora lo que haremos será crear un método en la librería que recoja el usuario y el password y lo compruebe en la base de datos. Modificaremos el controlador usuariook de la siguiente manera:

Únicamente hemos cogido el login y el password y lo hemos pasado al método de la librería. Tenemos que acordarnos de descomentar la llamada a la misma, ya que sino el programa no sabe de donde viene usuariolib.

Podemos hacer la estructura del método de la librería que quedaría así, aunque no tendría ningún funcionamiento.

Cargamos el modelo en el constructor y recogeremos los datos del usuario de la base de datos a través del método del modelo get_login. Primero miraremos si hay algo y si es así lo colocamos en una sesión. Si no hay nada retornamos False y cerramos sesión. Este último paso es muy relativo a lo que creamos conveniente en nuestra página; Juan Manuel creyó oportuno cerrar sesión, pero yo, personalmente, no lo hubiera hecho.

Probamos que realmente funciona colocando el usuario y contraseña que insertamos como modelo en la base de datos: en mi caso jmm 123

ACCESO AL MODELO USUARIO

Una vez echo el login crearemos una página para cambiar la contraseña de usuario. Empezamos creando un controlador que nos lleve a la web indicada.

Ahora vamos a crear una vista con el mismo formato que el login pero con un campo más. La creamos llamándola cambio_clave.php.

Ahora crearemos el controlador cambiar_clave. En ella validaremos los 3 campos. Vemos que en nueva clave usaremos la validación matches[] y dentro colocaremos la nueva contraseña para ver si cuando repetimos la nueva funciona bien.

En el constructor insertaremos el mensaje de error.

Ahora, para verificar que la clave que colocamos es real, recogeremos la contraseña con la variable de sesión que tengamos. Para ello, en un principio creamos un controlador para la validación.

Creamos un nuevo mensaje de error por si no se pudiese cambiar.

Ahora creamos el método de la librería para recuperar el login y que nos haga el proceso para aliviar al controlador.

Primero miramos que exista una sesión iniciada. Si eso se verifica recogemos el usuario con el método del modelo find(). Verificamos que la contraseña entrada coincida y modificamos el usuario con el modelo update();

Probamos a ver si funciona cambiando, por ejemplo, el 123 por hola:

PANTALLA BASE DATOS SIN ENCRIPTAR

Ahora vamos a encriptar la clave de la siguiente manera. Primero modificamos la línea que acabamos de utilizar en cambiook() para que al cambiar la contraseña la nueva esté encriptada.

PANTALLA BASE DE DATOS ENCRIPTADA

Ahora no nos dejará entrar, así que repetimos lo mismo que hemos hecho en login ok y en el primer parámetro del anterior método.

VIDEOTUTORIAL

MANUALES CODEIGNITER

1. Conocimientos básicos e instalación.
2. Estructura de carpetas, archivos de configuración y urls amigables.
3. Instalación y configuración de Bootstrap twitter.
4. Mejoras visuales y creación de la base de datos
5. Variables de sesión, constructor, formularios y helpers
6. Primera librería, modelos y modificar helper creado.
7. Acceso al modelo usuario y validaciones propias.
8. Acceso al modelo perfil, formularios y validaciones.
9. Acceso al modelo menu y menu del sistema.
10. Modelo usuario.
11. Relación menú perfil.
12. Seguridad de la aplicación.

The following two tabs change content below.
Programador por definición, diseñador por hobby, futuro Ingeniero Informático y amante de lo sencillo.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies. CERRAR