Sesiones en PHP
En ocasiones nos interesa guardar los valores de una variable de forma permanente, por ejemplo cuando elegimos el idioma en el que visualizamos esa página queremos que todas las páginas de esa web se vean en ese idioma, registro de usuarios, cuando queremos hacer un carrito de la compra o cuando por ejemplo registramos con un usuario queremos el sistema nos guarde ese usuario. Para hacer este tipo de cosas se utilizan las variables de sesion y/o las cookies.
Las variables de sesión se guardan en el servidor y sólo van a guardarse mientras el navegador esté abierto. Existe una sesión por cada navegador abierto esto quiere decir que si cerramos el navegador y lo volvemos a abrir la variable de sesión perderá su valor.
Para guardar un valor y acceder al mismo se hace con las variable $_SESSION['variable']. Para poder utilizar sesiones estas se tienen que iniciar con la función session_start() para quitar los valores de la sessión se puede utilizar la función session_unset().
En el siguiente ejemplo tenemos dos programas, con el primero de ellos asignamos una variable de sesión nombre a la que asignamos el valor "Aitor" con el segundo visualizamos el valor que tiene esa variable de sesión.
Nota importante: Las sessiones se tienen que definir y asignar al principio del programa, antes de escribir nada. Sino obtendremos un error "headers alredy sent".
asignarnombre.php
<?php // iniciamos sesion session_start(); $_SESSION['nombre']="Aitor"; ?> Hemos asignado el nombre
vernombre.php
<?php session_start(); echo "Hola ".$_SESSION['nombre']; ?>
El siguiente ejemplo es un simulador de un marcador de baloncesto. Tenemos que guardar el marcador y si se mete una canasta de uno,dos o tres puntos sumarlo al marcador guardado.
<?php // iniciamos sesion session_start(); $num=$_GET[num]; //// asignamos un valor a una sesion $_SESSION[numero]=$_SESSION[numero]+$num; //// visualizamos una sesion echo "El valor de la session numero es ".$_SESSION[numero]; ?>