> Manuales > Taller de PHP

Este es un tutorial básico para el manejo y control de sesiones en PHP, que nos permiten almacenar variables y datos en general, que estén disponibles a lo largo de varias páginas consultadas en la visita de un usuario, su sesión.

Tutorial de sesiones en PHP

Veamos un sencillo ejemplo de uso de sesiones en PHP, para ilustrar a los usuarios más inexpertos el manejo de sesiones en sus procesos más básicos, como son la inicialización de sesiones, comprobar si existen variables de sesión, crearlas y modificarlas.

En este ejemplo vamos a hacer un sistema para llevar la cuenta de las páginas que ha visto un visitante. Es decir, si entra a una página del sitio por primera vez, contamos que ha visto una página, luego con cada página adicional que visite, seguiremos acumulando (+1) en la cuenta de páginas vistas dentro del sitio. Del mismo modo, si se recarga una página o se vuelve a la misma página que ya se estuvo, también haremos que se acumule 1 en su cuenta.

Si quieres unas explicaciones más detalladas para aprender a trabajar con sesiones recomendamos leer el artículo sesiones en PHP.

Para el desarrollo de la funcionalidad de este ejercicio realizaremos las siguientes acciones:

Ejemplo de página que cuenta las impresiones en una variable de sesión

<?php session_start();
if (!isset($_SESSION["cuenta_paginas"])){
    $_SESSION["cuenta_paginas"] = 1;
}else{
    $_SESSION["cuenta_paginas"]++;
}
?>
<html>
<head>
<title>Contar páginas vistas por un usuario en toda su sesión</title>
</head>

<body>
<?php
echo "Desde que entraste has visto " . $_SESSION["cuenta_paginas"] . " páginas";
?>
<br>
<br>
<a href="otracuenta.php">Ver otra página</a>
</body>
</html>

Como se ha podido ver, lo primero que debemos hacer es inicializar la sesión con session_start().

Luego de inicializar la sesión podemos trabajar con variables de sesión en cualquier lugar del código PHP de la página. Nosotros vamos a crear y utilizar una variable de sesión para llevar la cuenta del número de páginas que hemos visto. Para el acceso a las variables de sesión usamos el array $_SESSION, que se encuentra disponible en cualquier lugar del código, ya que es un array superglobal.

$_SESSION["cuenta_paginas"]

Para ver si una variable de sesión ha sido creada podemos utilizar la función isset() pasándole como parámetro la variable que deseamos saber si ha sido creada. Si no fue creada anteriormente, simplemente la creamos (inicializando su valor a 1). Si fue creada, pues que tenemos que incrementar en 1. Eso se consigue con este código:

if (!isset($_SESSION["cuenta_paginas"])){
    $_SESSION["cuenta_paginas"] = 1;
}else{
    $_SESSION["cuenta_paginas"]++;
}

Eso es todo! Ahora lo que se supone que tenemos son otras páginas en el mismo sitio que también tienen que incrementar en 1 el contador de páginas vistas por ese usuario en esa sesión.

Eso lo podríamos hacer con el mismo trozo de código, como el que hemos visto antes, junto con la correspondiente inicialización de la sesión. Este bloque de código sería colocado al principio de cada archivo PHP donde queramos llevar la cuenta de las páginas vistas en la sesión.

<?php 
session_start();
if (!isset($_SESSION["cuenta_paginas"])){
    $_SESSION["cuenta_paginas"] = 1;
}else{
    $_SESSION["cuenta_paginas"]++;
}
?>

Dado que ese código se repetiría en un número indeterminado de páginas, lo normal sería meterlo en un archivo aparte, que luego incluiríamos en cada una de las páginas donde lo necesitemos, evitando así copiar y pegar. Puedes saber más sobre esto en el artículo de los includes en PHP.

Luego, en cualquier lugar donde deseemos mostrar el número de páginas vistas en un momento dado, tendríamos que hacer algo como esto:

<?php echo "Has visto " . $_SESSION["cuenta_paginas"] . " páginas, contando actualizaciones de paginas"; ?>

Con esto ya hemos terminado nuestro ejemplo práctico de uso de sesiones en una página PHP. Espero que te haya gustado y sea un buen ejercicio para practicar asuntos elementales de PHP.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual