20 Consulta SQL para lectura de USUARIOS en el SISTEMA VETERINARIO (PHP y MySql)FullStack

Duración: 13 min
Módulo: 🔐 Autenticación, Sesiones y Base de Datos (Back-End Core) Lección 6 de 11

Descripción

🎬 Lección 20: Consulta SQL para Lectura de Usuarios 🔍

El objetivo de esta lección es verificar si el email y el password recibidos del formulario coinciden con un registro en la tabla tb_usuarios.

1. Implementación de la Consulta SQL

Se construye la consulta SQL que busca seleccionar todos los campos (SELECT *) del usuario donde el email y el password coincidan con los datos proporcionados por el formulario. [01:25]

  • Consulta SQL:

    SQL

    SELECT * FROM tb_usuarios WHERE email = '[variable_email]' AND password = '[variable_password]'

  • Ejecución en PHP (PDO):
    1. Se usa el método prepare() del objeto $pdo (que contiene la conexión a la base de datos) para preparar la consulta. [03:09]
    2. Se usa execute() para ejecutar la consulta SQL. [03:36]
    3. Se utiliza el método fetchAll(PDO::FETCH_ASSOC) para recuperar los resultados de la consulta en un array asociativo. [04:12]

2. Validación del Usuario con un Contador

Para verificar si la consulta arrojó algún resultado (es decir, si el usuario y la contraseña son correctos), se utiliza una lógica de contador: [09:48]

  1. Se inicializa una variable $contador a 0.
  2. Se utiliza un bucle foreach para recorrer el array de resultados. Si existe al menos un resultado (un usuario encontrado), la variable $contador se incrementa.
  3. Se usa una condición if para validar el acceso:
    • Si $contador > 0: Significa que el usuario existe y las credenciales son correctas. Se muestra el mensaje "Bienvenido al sistema". [10:49]
    • Si $contador es 0 o menos: Significa que las credenciales son incorrectas. Se muestra el mensaje "Error en los datos". [11:10]

3. Próximo Paso: Seguridad (Encriptación) 🔒

El instructor destaca que, si bien la funcionalidad de login ya está operativa, la contraseña aún se almacena y se consulta en texto plano. [12:27]

  • Riesgo de Seguridad: El almacenamiento en texto plano hace que el sistema sea vulnerable a que desarrolladores o intrusos vean y utilicen las contraseñas.
  • Solución: El próximo video se centrará en implementar la encriptación de contraseñas (password_hash) para asegurar la información del usuario antes de guardarla y al momento de verificarla. [13:06]