12 CRUD - CREATE controlador para GUARDAR USUARIOS en el Sistema de Ventas con (PHPyMySql) FullStack

Duraci贸n: 20 min
M贸dulo: 馃懁 CRUD de Usuarios y Roles (Seguridad L贸gica) Lecci贸n 4 de 17

Descripci贸n

馃捑 Lecci贸n 12: CRUD - Controlador para Guardar Usuarios (CREATE)

Esta lecci贸n se enfoca en el desarrollo del controlador PHP que recibe la informaci贸n del formulario de registro y la inserta en la base de datos, completando la funci贸n CREATE del CRUD. Se abordan detalles esenciales como la captura de datos con el m茅todo POST y la gesti贸n correcta de la fecha y hora de registro.

1. Captura de Datos del Formulario

  • Asignaci贸n de Nombres (name): Se asegura que todos los inputs del formulario en views/usuarios/create.php tengan un atributo name para que sus valores puedan ser enviados y capturados [01:02].
    • Campos nombrados: nombres, email, password_user y password_repeat [01:10].
  • Recepci贸n en el Controlador: En el archivo del controlador (controllers/usuarios/create.php), se utiliza la superglobal $_POST para recibir y almacenar los cuatro campos en variables PHP [03:09].
    • Es imprescindible incluir la conexi贸n a la base de datos (config.php) antes de la l贸gica de inserci贸n [02:45].

2. Configuraci贸n de la Zona Horaria y Fecha

Para asegurar que los registros de fecha y hora sean precisos y coincidan con la ubicaci贸n del sistema:

  • Definici贸n de Zona Horaria: En el archivo config.php, se utiliza la funci贸n date_default_timezone_set() para establecer la zona horaria correcta (ej. America/Caracas para -4 horas) [11:36].
  • Captura de Fecha y Hora: Se declara una variable $fecha_hora que captura el momento actual en el formato Y-m-d H:i:s (A帽o-Mes-D铆a Hora:Minuto:Segundo) [14:29].

3. Inserci贸n de Datos mediante Sentencia SQL

  • Estructura de la Consulta: Se prepara la sentencia SQL de tipo INSERT INTO especificando los campos a rellenar: nombres, email, password y fecha_hora_creacion [05:56].
  • Uso de Par谩metros: Se utiliza la funci贸n prepare() de PDO junto con par谩metros nombrados (ej. :nombres, :email) en lugar de concatenar variables directamente [07:07]. Esto es crucial para prevenir ataques de inyecci贸n SQL [07:11].
  • Asignaci贸n de Par谩metros (bind): Se vincula cada par谩metro nombrado de la consulta con su respectiva variable PHP recibida del formulario (ej. :nombres se vincula a $nombres) [08:07].
  • Ejecuci贸n: Finalmente, se ejecuta la sentencia con execute() para que el registro se inserte en la tabla [09:16].

Resultado: Despu茅s de la prueba, se verifica que el nuevo usuario se ha guardado correctamente, incluyendo el nombre, correo, contrase帽a (a煤n sin encriptar) y la fecha y hora de creaci贸n correcta [18:37].

Pr贸ximos Pasos: El siguiente video se enfocar谩 en validar si las contrase帽as coinciden y en aplicar un m茅todo de encriptaci贸n a la clave antes de guardarla [19:21].