Variables de session

Crea Variables de Session ¡sin estrés!

Tiempo de lectura: 5 minutos
Rate this post

Cuando trabajamos con PHP, una de las preguntas más comunes que nos hacemos es: ¿Cómo pasar variables entre páginas? y una de las respuestas que PHP nos da, aunque no es la única, usando las variables de session, así que seguramente la siguiente pregunta es: ¿Cómo usar las variables de session?, en las siguientes líneas te explicaré todo lo que necesitas saber.

¿Qué son las variables de session?

Las variables de session son un array asociativo, es decir, un array dentro del cual puedes escribir nombres en los elementos y que comúnmente son denominados keys, que tienen la caracteristica principal que son variables globales, es decir, que se encuentran disponibles en todo el script de PHP, para ser más claro, en todas las páginas.

Sin embargo, debemos de tener en consideración que existen algunos procedimientos, lineamientos o métodos que debemos de seguir si queremos trabajar con variables de session por lo que empezaremos por el principio.

¿Cómo crear variables de session en PHP?

Veamos el siguiente ejemplo que te explicaré más a detalle a continuación:

<?php 

session_start();
$_SESSION["mensaje"] = "Creando variables de session desde 8devmx.com";

?>
PHP

El primer requisito que nos piden para poder crear variables de session en PHP, es ejecutar la función session_start(), por lo que probablemente te estés preguntando:

¿Qué es session_start()?

La función session_start() tiene dos objetivos principales dentro de las variables de session en PHP, la primera es inicializar una nueva sesión, es decir, con esta función nos aseguramos que PHP sabe que vamos a crear variables de session por primera vez, mientras que la segunda función es reanudar una sesión existente, para que PHP sepa que vamos a utilizar una variable de session que ya hemos creado con anticipación en otro lugar.

Por lo tanto, cada vez que quiera crear una nueva variable de session o pasar una variable de session entre páginas de PHP, es necesario ejecutar la función session_start().

Después de ello, en la línea 4 podrás observar que ya podemos hacer uso de la variable $_SESSION, recuerda que es un arreglo asociativo por lo tanto necesitamos tener en cuenta algunas cosas para poder usarla

¿Cómo usar el $_SESSION ?

En principio, recuerda que como cualquier arreglo en PHP, tendremos que acceder a sus elementos mediante los corchetes ([ ]), y dentro de los corchetes deberá de llevar una cadena de texto, también es importante mencionar que como cualquier cadena de texto, deberá de ir entre comillas.

Es por eso que en la línea 4, tenemos el arreglo asociativo o variable de session $_SESSION y le estamos asignando al key “mensaje” una cadena de texto que en este caso dice: “Creando variables de session desde 8devmx.com”

Otro punto importante a mencionar es que dentro de los corchetes también se pueden escribir los keys o nombres sin comillas, pero el interprete entenderá que es una variable por lo que previamente debe de estar definida o recibiremos un error.

¿Cómo ver o imprimir variables de session en PHP?

De nueva cuenta, tenemos que recordar que la naturaleza de una variable de session en PHP sigue siendo un arreglo asociativo, por lo que si queremos conocer la estructura o definición de ella, podemos hacer uso de las funciones print_r() o var_dump(), ejemplo:

<?php 

session_start();
$_SESSION["mensaje"] = "Creando variables de session desde 8devmx.com";
print_r($_SESSION);
?>
PHP

En este caso, mediante la función print_r(), estamos imprimiendo la variable de session global, por lo que probablemente nos devolverá todos los elementos o keys que contenga el arreglo asociativo, si dentro de alguna key se encontrara otro arreglo, también nos lo mostraría en forma jerárquica.

Si estamos consientes que en el key de la variable de session tenemos algún tipo de datos como String o Integer o Float, podemos hacer uso de la función echo() para poder imprimirlo. Ejemplo:

<?php 

session_start();
$_SESSION["mensaje"] = "Creando variables de session desde 8devmx.com";
echo $_SESSION["mensaje"];
?>
PHP

Como puedes observar para ver o leer variables de session en PHP es bastante sencillo, utilizando las funciones de impresión que normalmente utilizas en tu código.

Ahora, imaginemos el siguiente caso, supongamos que quiero crear un login para mi sitio web, por lo que previamente consultamos a una base de datos que nos trajo registros y esos registros los validamos, entonces, ahí podemos generar una variable de sesión con múltiples keys, por ejemplo:

<?php 
if ($result->num_rows > 0) {
  session_start();
  $_SESSION["email"] = $row['correo'];
  $_SESSION["username"] = $row['usuario'];
  $_SESSION["role"] = $row['rol_id'];
}
?>
PHP

En este caso podemos inferir que previamente generamos una consulta MySQL que nos devolvío registros dentro de la variable $result y obtenemos el registro en una variable $row, por lo que podemos inicializar la sesión mediante session_start() y después asignar los valores correo, usuario y rol_id a la variable de session.

Después de haber generado este script, probablemente quieras consumir la variable, por lo que en otra página, por ejemplo: welcome.php, podríamos hacer algo como esto:

<?php 
  session_start();
  echo "Bienvenido, " . $_SESSION["username"] . " Iniciaste sesión correctamente.";
?>
PHP

Y así de sencillo puedes pasar variables de session entre páginas de PHP y consumir toda la información que necesitas. Una vez que emos aprendido como crear y utilizar variables de session, ahora toca el turno de saber como borrarlas o eliminarlas.

¿Cómo borrar variables de session en PHP?

Para eliminar variables de session en PHP se puede hacer de múltiples maneras por lo que aquí te explicaré los más comunes, pero antes de eso, es necesario que nos preguntemos ¿Qué queremos borrar? Quiero borrar la variable de sesión completa o solo quiero borrar una key de la variable de sesión.

Como podrás observar, este es un caso de uso muy común, cada vez que intentamos borrar variables de sesión en PHP lo más sencillo es eliminar todo y eso lo podemos hacer mediante la función session_destroy(), ejemplo:

<?php 
session_start();
session_destroy();
header("Location: ../index.php");
?>
PHP

Este código es algo que normalmente hacemos cuando intentamos hacer un logout o cerrar sesión dentro de nuestras aplicaciones, simplemente:

  1. Reanudamos la sesión mediante session_start()
  2. Eliminamos todo el arreglo asociativo mediante session_destroy()
  3. Redireccionamos al home o página que queramos

Sin embargo, como te decía, puede darse el caso en donde no quieras perder toda la información que ya almacenaste, por lo que en ese caso, la función unset() nos podría ayudar, si necesitas eliminar solo un elemento o key del arreglo, podemos hacer algo como esto:

<?php 
session_start();
unset($_SESSION["role"]);
header("Location: ../index.php");
?>
PHP

Solo deberás tener en consideración que tus condiciones deben de estar optimizadas para poder eliminar solo un elemento del arreglo, si haces algo como:

<?php 
if($_SESSION){
  // Código que cumple la condición
}
?>
PHP

Lo recomendable será utilizar el session_destroy() o session_unset() para poder destruir las variables de session en PHP

Por último, seguramente te estés preguntando algo super importante, que es la duración de las variables de session, por lo que aquí te contaré un poco acerca de ello

¿Cuánto tiempo duran las variables de session en PHP?

Como la misma documentación lo indica: “Las sesiones normalmente se cierran automáticamente cuando PHP termina de ejecutar un script” es decir, cuando el tiempo de ejecución de la aplicación finaliza, sin embargo, nosotros podemos cerrar manualmente las sesiones.

Sin embargo, es importante mencionarte que PHP cuenta con valores por defecto, esto quiere decir que la duración de las variables de session en PHP por defecto son de 1440 segundos, esto está establecido en la configuración del tiempo de ejecución, mediante la opción session.gc_maxlifetime.

Esto es posible que lo puedas cambiar accediendo a la configuración, sin embargo ese es otro tema.

En resumen

Como puedes observar, en este artículo he intentado explicarte las variables de session en PHP mediante varios ejemplos, sin embargo, si aún te quedan dudas, puedes escribirme en cualquiera de mis redes sociales que te dejo a continuación, por cierto, ¿Ya te suscribiste?, sino es así te agradecería lo hicieras y me siguieras.

🖥️ Youtube: https://www.youtube.com/@eightdev?sub_confirmation=1

🎵 Tik Tok: https://www.tiktok.com/@8devmx

✅ Facebook: https://www.facebook.com/8devmx/

📸 Instagram: https://www.instagram.com/8devmx/

Adicional, las variables de session tienen un uso muy aplicativo cuando usamos php y mysql, comúnmente son la forma de poder validar sesiones en PHP, aunque debo decir que existen algunas otras maneras, por ejemplo: mediante tokens con JWT.

Si te interesa saber más de token y otras aplicaciones de PHP, aquí te dejo el enlace a mi curso como crear una API con PHP, en donde explico a detalle todo el procedimiento.

Quieres aprender ¿Cómo hacer un login con sesiones en php? También te dejo la lista de reproducción del curso en mi canal de Youtube

Sin más, ¡nos vemos la próxima!

También Podría Interesarte

Social Share Buttons and Icons powered by Ultimatelysocial
YouTube
YouTube
Instagram
Scroll al inicio