29 ZONA HORARIA para registro de datos en el SISTEMA VETERINARIO(PHP y MySql)FullStack

Duración: 26 min
Módulo: 👤 CRUD Completo de Usuarios (Gestión de Datos) Lección 4 de 12

Descripción

🎬 Lección 29: Zona Horaria y Mejoras en el CRUD (CREATE) 🛠️

Este capítulo se centra en ajustar detalles cruciales en el controlador y la vista de usuarios.

1. Configuración de la Zona Horaria (Fecha y Hora) ⏰

El instructor aborda el problema de que el sistema estaba registrando la fecha de creación con la hora internacional (GMT), lo que resultaba en fechas y horas incorrectas:

  • Corrección: Se utiliza la función date_default_timezone_set() de PHP en el archivo config.php para definir la zona horaria exacta (por ejemplo, "America/Caracas"), asegurando que la variable global de fecha y hora ($fecha_hora) capture el tiempo local correcto. [03:53], [08:50]
  • Resultado: Los nuevos registros en la base de datos reflejan ahora la fecha y hora de creación exacta del sistema local. [10:33]

2. Redirección y Mensajes de Éxito/Error 📢

Se mejora el flujo de usuario después de un registro:

  • Validación de Ejecución: La sentencia de inserción ($sentencia->execute()) se envuelve en una instrucción if para verificar si el guardado fue exitoso. [11:25]
  • Redirección: Si el registro es exitoso, el usuario es automáticamente redireccionado a la vista del listado de usuarios (admin/usuarios/index.php) utilizando la función header('Location: ...'). [13:21], [15:13]

3. Ajuste de la Numeración en la Tabla 🔢

En la vista de listado, se corrige el problema de que los números de la primera columna no eran consecutivos después de borrar registros (ya que se mostraba el id_usuario de la base de datos):

  • Corrección: Se inicializa una variable contador a cero ($contador = 0;) antes del bucle foreach. Dentro del bucle, esta variable se incrementa ($contador = $contador + 1;) y se imprime en la columna "N°". [16:33]
  • Resultado: La tabla ahora muestra una numeración correlativa y correcta (1, 2, 3...) sin importar los ID que hayan sido eliminados de la base de datos. [16:49]

4. Validación de Correo Electrónico Único (Unicidad) 📧

Se añade una validación de seguridad crítica al controlador create.php para evitar que dos usuarios compartan la misma dirección de correo electrónico:

  • Consulta de Validación: Antes de intentar la inserción (INSERT), se ejecuta una consulta SELECT que busca cualquier registro cuyo email coincida con el correo enviado por el formulario. [19:47]
  • Lógica de Control: Si el contador de resultados es mayor a cero, significa que el correo ya existe. En este caso, el código muestra un mensaje de error ("Este usuario ya está registrado en la base de datos") y bloquea la ejecución del INSERT. [21:34]
  • Registro: El código de inserción (INSERT) solo se ejecuta en la condición else, asegurando que el nuevo usuario solo se registre si el correo es único. [24:04]