9. COMO HACER un LOGIN o INICIO DE SESION en PHP y MySQL 💻[DESARROLLO WEB DESDE CERO (Parte 9/12)]

Ctrl Profe
9 Jul 202022:37

Summary

TLDREste tutorial enseña cómo crear una red social básica en PHP, enfocándose en tres aspectos esenciales: el inicio de sesión, la validación de sesiones y el cierre de sesión. El proceso incluye verificar las credenciales de los usuarios mediante la base de datos, gestionar la sesión del usuario para proteger páginas privadas, y permitir el cierre de sesión seguro. Se explica el uso de variables globales de sesión, consultas SQL y funciones como `password_verify()` para garantizar la seguridad. Al final, el sistema asegura que solo los usuarios autenticados puedan acceder a sus perfiles y otras áreas privadas de la red social.

Takeaways

  • 😀 Se está desarrollando un sistema de inicio de sesión para una mini red social usando PHP y MySQL.
  • 😀 El primer paso es crear el archivo `iniciar_sesion.php` para capturar los datos del usuario (nickname y contraseña) desde un formulario.
  • 😀 La validación de la contraseña se realiza utilizando la función `password_verify()` para comparar la contraseña ingresada con la almacenada en la base de datos.
  • 😀 Si el usuario y la contraseña son correctos, se almacenan los datos del usuario en la variable global `$_SESSION` para poder acceder a ellos en otras páginas.
  • 😀 Si las credenciales son incorrectas o el usuario no existe, se muestra un mensaje de error y el usuario es redirigido al formulario de inicio de sesión.
  • 😀 La validación de sesión se realiza en el archivo `validar_sesion.php`, donde se verifica si el valor de `$_SESSION['login']` es verdadero. Si no lo es, se redirige al usuario al inicio de sesión.
  • 😀 Se deben incluir las validaciones de sesión en todas las páginas restringidas, como `mi_perfil.php`, para garantizar que solo los usuarios autenticados puedan acceder a ellas.
  • 😀 El archivo `cerrar_sesion.php` se utiliza para destruir la sesión del usuario, eliminando las variables de sesión y redirigiéndolos al formulario de inicio de sesión.
  • 😀 Es importante incluir una conexión a la base de datos (`conexion.php`) en los archivos PHP para manejar la interacción con la base de datos MySQL.
  • 😀 Se recomienda utilizar sesiones para mantener la información del usuario a lo largo de la navegación en el sitio, permitiendo la personalización del contenido.
  • 😀 Se pueden agregar mensajes de error como parámetros `GET` para informar al usuario sobre intentos de inicio de sesión fallidos o problemas con las credenciales.

Q & A

  • ¿Qué propósito tiene el script de 'iniciar sesión' en el contexto de la mini red social?

    -El script de 'iniciar sesión' valida las credenciales del usuario, comparando el nickname y la contraseña ingresados con los almacenados en la base de datos, y si son correctos, inicia una sesión para el usuario y lo redirige a su perfil.

  • ¿Cómo se garantiza que un usuario no pueda acceder directamente a páginas como 'mi perfil' sin haber iniciado sesión?

    -Mediante el archivo 'validar sesión', que revisa la variable de sesión 'login'. Si la sesión no está activa (valor falso), el usuario es redirigido a la página principal para iniciar sesión antes de poder acceder a otras páginas.

  • ¿Qué función cumple la variable super global '$_SESSION' en este sistema?

    -'$_SESSION' es una variable global en PHP que se usa para almacenar y acceder a información del usuario durante su sesión, como el estado de su autenticación, su nickname, nombre, y otros datos. Permite mantener la información entre diferentes páginas sin necesidad de reingresar los datos.

  • ¿Por qué se usa la función 'password_verify()' en lugar de comparar directamente las contraseñas?

    -'password_verify()' se utiliza para comparar una contraseña ingresada con su hash almacenado en la base de datos, lo que mejora la seguridad, ya que las contraseñas nunca se almacenan ni se comparan en texto claro.

  • ¿Qué ocurre si un usuario ingresa un nickname o contraseña incorrectos al intentar iniciar sesión?

    -Si el nickname o la contraseña son incorrectos, el script muestra un mensaje de error ('contraseña incorrecta') y redirige al usuario de vuelta a la página de inicio de sesión para que intente nuevamente.

  • ¿Qué sucede si el script no encuentra el nickname del usuario en la base de datos?

    -Si no se encuentra el nickname en la base de datos, el sistema le informa al usuario que el nickname no existe y lo redirige a la página de inicio de sesión para que lo intente de nuevo.

  • ¿Cómo se maneja la sesión cuando un usuario decide cerrar sesión?

    -Cuando el usuario cierra sesión, el script utiliza 'session_unset()' para eliminar todas las variables de sesión y 'session_destroy()' para destruir la sesión. Luego, redirige al usuario a la página de inicio de sesión.

  • ¿Por qué es necesario usar 'session_start()' al comienzo de los scripts relacionados con la sesión?

    -La función 'session_start()' es esencial para iniciar una nueva sesión o continuar una sesión existente en PHP. Sin esta función, no se puede acceder ni modificar las variables de sesión como '$_SESSION'.

  • ¿Qué precaución de seguridad se debe tomar al usar consultas SQL para verificar las credenciales del usuario?

    -Se debe evitar la inyección SQL usando consultas preparadas o funciones como 'mysqli_real_escape_string()' para proteger las entradas del usuario. En el script, se recomienda usar consultas preparadas en lugar de concatenar directamente los valores en la consulta SQL.

  • ¿Por qué es importante redirigir al usuario si no ha iniciado sesión antes de acceder a páginas restringidas?

    -Es importante redirigir a los usuarios no autenticados para proteger las páginas privadas o restringidas de la aplicación, como el perfil del usuario. Esto asegura que solo los usuarios validados tengan acceso a estos recursos.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This

5.0 / 5 (0 votes)

Related Tags
PHPRed socialInicio sesiónValidación sesiónCerrar sesiónSeguridad webDesarrollo webBase de datosContraseña seguraProgramaciónTutorial PHP
Do you need a summary in English?