Contenido del curso
Cookies y sesiones
Manejo de excepciones
Trabajando con fechas
Modularización
- 16

Modularización de código en PHP con archivos
18:41 min - 17

Namespaces en PHP para evitar clases repetidas
16:15 min - 18

Autocarga de archivos con Composer y PSR-4
15:05 min - 19

Qué es un front controller en PHP
08:56 min - 20

URLs limpias con htaccess en PHP
17:28 min - 21

Traits en PHP: reutiliza métodos sin herencia
17:13 min
Cierre
Sesiones en PHP con session_start
Resumen
Las sesiones en PHP son el mecanismo que te permite guardar datos de un usuario mientras navega por tu sitio y construir sistemas de autenticación seguros. A diferencia de las cookies, viven encriptadas y se destruyen al cerrar sesión, lo que las hace ideales para manejar información sensible.
¿Qué son las sesiones en PHP y para qué sirven?
Una sesión funciona parecido a una cookie porque también guarda información ligada al navegador del usuario, pero su propósito va más allá de personalizar la interfaz. Su rol principal es mantener viva la identidad de un usuario autenticado mientras interactúa con tu aplicación.
La información dentro de una sesión viaja encriptada, lo que significa que no cualquiera puede leerla. Esto es clave porque normalmente vas a almacenar datos sensibles: identificadores de usuario, permisos, preferencias de cuenta o cualquier dato que ayude a recordar quién está del otro lado de la pantalla.
¿En qué se diferencia una sesión de una cookie en PHP? La cookie se guarda en el navegador en texto plano y suele usarse para preferencias visuales. La sesión se guarda encriptada y se usa para autenticación y datos sensibles del usuario.
¿Cuándo se destruye una sesión?
Una sesión vive mientras el usuario esté activo, y se destruye cuando hace logout. En el momento en que cierras sesión, todos los datos asociados se borran automáticamente porque ya no tiene sentido conservarlos.
Este ciclo de vida es justo lo que hace que las sesiones sean tan útiles: tienes los datos cuando los necesitas y desaparecen cuando dejan de ser relevantes.
¿Cómo se inicia una sesión con session_start en PHP?
Para empezar a trabajar con sesiones, PHP te da una función específica: session_start. Con ella le dices al servidor que esa página va a usar sesiones, y sin ella, cualquier intento de leer o escribir datos de sesión simplemente no va a funcionar.
La regla es sencilla: session_start debe ir al inicio de cada archivo donde quieras trabajar con sesiones.
php
<?php session_start(); // A partir de aquí ya puedes usar sesiones > **¿Dónde debo poner session_start?** Siempre al inicio del archivo PHP, antes de cualquier salida HTML o lógica que use datos de sesión. ### ¿Qué pasa si llamo session_start dos veces? Llamar la función más de una vez en el mismo flujo puede generar errores o conflictos. Esto pasa con frecuencia cuando **incluyes un archivo** que ya trae su propio `session_start` y, sin darte cuenta, vuelves a llamarla en el archivo que lo incluye. La recomendación es asegurarte de que `session_start` se ejecute **una sola vez** por petición. ## ¿Cómo funciona la variable superglobal $_SESSION? Para manipular los datos de sesión, PHP te da la variable superglobal `$_SESSION`. Es más cómoda que trabajar con cookies porque puedes leer y escribir directamente sobre ella como si fuera cualquier otro arreglo. Lo importante es entender que `$_SESSION` **es un arreglo único por usuario**. Cada visitante autenticado tiene el suyo, y ahí guardas la información que define su experiencia dentro del sitio. php <?php session_start(); $_SESSION['usuario'] = 'Ana'; $_SESSION['rol'] = 'admin'; Cuando el usuario hace logout, todo el contenido del arreglo se limpia de forma automática. No tienes que borrar campo por campo: destruyes la sesión y listo. ### ¿Qué información se guarda dentro de $_SESSION? Lo más común es almacenar datos que identifiquen al usuario y sus permisos: - Identificador único del usuario. - Nombre o correo para mostrar en la interfaz. - Rol o nivel de acceso dentro del sistema. - Preferencias que afecten la navegación durante la sesión activa. Después de definir estos valores, puedes leerlos en cualquier otra página que también ejecute `session_start`, lo que te permite mantener al usuario logueado mientras navega entre archivos. ## Conceptos clave que debes dominar de las sesiones Para cerrar el panorama, hay tres piezas que conviene tener claras antes de pasar al código real. - **session_start**: la función que activa el manejo de sesiones en un archivo PHP. Sin ella, nada funciona. - **$_SESSION**: el arreglo superglobal donde escribes y lees los datos del usuario actual. - **Logout**: el momento en que destruyes la sesión y limpias todos los datos asociados. ¿Ya tienes claro cómo encajan estas piezas en un sistema de login? Cuéntame en los comentarios qué proyecto quieres construir con sesiones.