07 CREATE configuraciones en el curso de Sistema de gestión escolar con (PHP y MySql) FullStack

Duración: 33 min
Módulo: ⚙️ Configuraciones Generales Lección 2 de 3

Descripción

💾 Lección 07 CREATE: Registro de Datos de Configuración

En este capítulo, se desarrolla el formulario y el controlador para registrar los datos iniciales de la institución, con un enfoque crucial en el manejo de la subida de imágenes para el logotipo.

1. Desarrollo del Formulario CREATE

Se crea el formulario para la entrada de datos, asegurando la correcta validación y manejo de archivos.

  • Estructura del Formulario: Se diseña la vista create.php, organizando los campos en una disposición de 8 y 4 columnas para incluir los datos textuales y el logotipo [03:29].
  • Campos Requeridos: Se definen los campos de la tabla configuraciones_instituciones: Nombre de la institución, Correo electrónico, Teléfono, Celular, y Dirección [03:07].
    • Se marcan como requeridos (required) el Nombre de la Institución y la Dirección mediante un asterisco rojo (*) para guiar al usuario [07:29].
  • Manejo de Archivos: Se utiliza la encriptación enctype="multipart/form-data" en el formulario, un paso esencial para permitir el envío de archivos (imágenes) al controlador [02:29].
  • Previsualización del Logo (Preload): Se integra un script en JavaScript que permite al usuario previsualizar la imagen del logo seleccionada inmediatamente en el formulario antes de enviarla, mejorando la experiencia [10:29], [12:17].

2. Lógica del Controlador y Subida de Imágenes

El controlador (create.php dentro de institucion) maneja la lógica de la base de datos y, de manera crucial, el almacenamiento físico de la imagen en el servidor.

  • Generación de Variables: Se capturan todos los campos del formulario ($_POST) y se preparan para la sentencia SQL [15:40].
  • Tratamiento del Logotipo: La subida del archivo se maneja bajo una lógica condicional:
    1. Validación de Existencia: Se verifica si el usuario ha seleccionado una imagen (if (files['file']['name']...) [18:24].
    2. Generación de Nombre Único: Para evitar que se sobrescriban archivos con el mismo nombre, se crea un nombre único concatenando la fecha y hora actual (date()) con el nombre original del archivo. Esta técnica garantiza que cada subida sea única [21:28].
    3. Ubicación y Almacenamiento: Se define la ruta de guardado dentro del servidor (/public/images/configuracion) y se utiliza la instrucción move_uploaded_file() de PHP para mover el archivo temporal a su ubicación final [23:58], [25:08].
  • Inserción en DB: La sentencia INSERT registra todos los datos, guardando en la columna logo el nombre único generado de la imagen [25:27].

3. Visualización y Mensajes

  • Mensajes de Alerta: Se implementan mensajes de éxito o error (utilizando SweetAlert u otro sistema de alertas) para notificar al usuario sobre el resultado de la operación [28:09].
  • Listado con Logotipo: Se actualiza la vista principal del listado (index.php) para mostrar el logotipo. Para ello, se concatena la URL base de la aplicación con la ruta del servidor (/public/images/configuracion) y el nombre del archivo guardado en la base de datos [30:27]. Se le da un estilo de 100 píxeles de ancho para una visualización correcta en la tabla [31:39].