04 Módulo USUARIOS en el curso de Sistema de gestión escolar con (PHP y MySql) FullStack
Duración: 85 min
Módulo: 🔑 Login, Roles y Usuarios
Lección 3 de
4
Descripción
💻 Lección 4: Módulo USUARIOS (PHP y MySQL)
Esta sesión se enfoca en el desarrollo completo del módulo de gestión de usuarios, priorizando la integridad de los datos y la seguridad en el manejo de contraseñas.
1. Diseño de la Base de Datos y Normalización 🔗
El punto de partida es la estructuración segura de las tablas, creando una relación fundamental para el sistema:
- Normalización y Relación de Tablas: Se establece la relación Uno a Muchos entre la tabla roles y usuarios.
- Un rol puede tener muchos usuarios, pero un usuario solo puede tener un rol.
- Implementación de Llave Foránea: Se agrega la columna roll_ID a la tabla usuarios para referenciar el ID_roll de la tabla roles.
- Restricciones de Integridad: Se configuran las restricciones de la llave foránea para proteger la coherencia de los datos:
- ON UPDATE CASCADE: Si el ID de un rol es modificado, se actualiza automáticamente en la tabla usuarios.
- ON DELETE NO ACTION: Se previene la eliminación de un rol si este ya está siendo utilizado por algún usuario registrado, garantizando la integridad referencial.
2. Desarrollo del Formulario de Creación (Create) ✍️
Se crea el formulario de registro de usuarios y se implementa la lógica de selección de roles:
- Estructura de Vistas: Se crean los archivos de vista necesarios para el módulo: index, create, edit y show.
- Selección Dinámica de Rol: Se utiliza un elemento Select Option que carga la lista de roles (Administrador, Docente, etc.) directamente desde la base de datos. El formulario envía el ID_roll (el valor numérico) a la lógica del controlador, mientras que muestra el nombre del rol al usuario.
- Acceso Rápido a Crear Roles: Se añade un botón de acceso rápido en el formulario de creación de usuarios para ir directamente a la vista de creación de roles, en caso de que el rol necesario aún no exista.
3. Lógica de Negocio y Seguridad (Create Controller) 🛡️
El controlador de creación implementa validaciones y un cifrado de seguridad crucial:
- Validación de Contraseñas: Se comprueba que los campos "Password" y "Repetir Password" sean idénticos. Si no coinciden, se utiliza un script de JavaScript para volver a la página anterior y mostrar un mensaje de error.
- Cifrado Seguro (Password Hashing): Se implementa la función de PHP password_hash() para encriptar la contraseña. Se destaca que este método es seguro porque:
- Crea un hash diferente en cada inserción, incluso si las contraseñas originales son las mismas.
- Hace imposible revertir el hash a la contraseña original.
- Manejo de Duplicidad (Try-Catch): Se envuelve la sentencia SQL de inserción dentro de un bloque try-catch para capturar la excepción que ocurre si se intenta registrar un usuario con un email ya existente (debido a la restricción de unicidad en la base de datos).
4. Implementación del Listado de Usuarios (Index) 📊
La vista principal se mejora para mostrar datos relacionados de forma legible:
- Consulta Relacional (INNER JOIN): Para mostrar el nombre del rol en lugar de solo su ID numérico, se modifica la consulta SQL de la tabla usuarios para incluir un INNER JOIN con la tabla roles.
- Visualización de Datos: Se muestran los campos clave: Nombres, Email, Nombre del Rol (gracias al JOIN), Fecha de Creación y el Estado del usuario.
5. Repositorio y Conclusión 💾
- Commit a GitHub: Al finalizar el desarrollo, se realiza el commit y el push de los cambios al repositorio de GitHub, manteniendo el código fuente actualizado y disponible.
Lecciones
📄 Introducción y Plataforma
🔑 Login, Roles y Usuarios
Lección 1. 02 Módulo ROLES en el curso de Sistema de gestión escolar con (PHP y MySql) FullStack
155 min
Lección 3. 04 Módulo USUARIOS en el curso de Sistema de gestión escolar con (PHP y MySql) FullStack
85 min
⚙️ Configuraciones Generales
🗓️ Gestiones Educativas y Niveles
📐 Grados y Materias
Lección 4. 15 MÓDULO MATERIAS en el curso de Sistema de gestión escolar con (PHP y MySql) FullStack
16 min
Lección 5. 16 Crud materias en el curso de Sistema de gestión escolar con (PHP y MySql) FullStack
31 min
🗄️ Diseño de la Base de Datos
🏢 Módulo Personal Administrativo (CRUD Complejo)
👨🏫 Módulo Docentes
Lección 1. 23 Módulo docentes en el curso de Sistema de gestión escolar(PHP y MySql)FullStack
22 min
Lección 2. 24 Create docentes en el curso de Sistema de gestión escolar(PHP y MySql)FullStack
11 min
👨👩👧👦 Modelo Estudiantes y Padres
✏️ CRUD de Estudiantes
Lección 1. 30 Listado de estudiante en el curso de Sistema de gestión escolar(PHP y MySql)FullStack
15 min
Lección 3. 32 Update estudiantes en el curso de Sistema de gestión escolar(PHP y MySql)FullStack
39 min
💳 Pagos y Librería TCPDF
📄 CRUD de Pagos y Documentación
🔗 Asignación de Materias
🚀 Calificaciones (Lógica y Carga de Notas)
Lección 1. 45 Módulo de calificaciones en el curso Sistema de gestión escolar(PHP y MySql)FullStack
31 min
📋 Creación del Módulo Kardex
✏️ CRUD de Kardex
👁️ Vistas Específicas del Usuario
Lección 1. 58 Vista para el estudiante en el curso Sistema de Gestión escolar(PHP y MySql)FullStack
25 min
Lección 2. 59 Vista para el docente en el curso Sistema de Gestión escolar(PHP y MySql)FullStack
18 min
🛡️ Módulo de Permisos (Base)
🤝 Asignación de Permisos
🚦 Autorización de Vistas
Lección 5. 74 Autorizar cada vista o página del Sistema de Gestión Escolar(PHP y MySql)FullStack
17 min
📤 Importación Masiva y Gráficos
Lección 1. 76 Importar estudiantes por lote del Sistema de Gestión Escolar(PHP y MySql)FullStack
22 min
Lección 4. 79 Reporte de estudiantes por grados del Sistema de Gestión Escolar(PHP y MySql)FullStack
19 min
🏁 Ajustes Finales y Conclusión
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️