Sesiones en PHP
Aunque las sesiones suelen dar algún que otro problema a los desarrolladores noveles en realidad no son nada complicadas. Aquí veremos lo que son y cómo utilizarlas con sencillos ejemplos.
Las sesiones son simplemente variables que mantienen su valor para cada usuario a lo largo de toda la visita a nuestra página web, no como las variables normales, que sólo están activas durante la ejecución del script.. Por ejemplo, si tenemos la variable $nombre = 'Jose'; ésta seguirá activa durante toda la ejecución del script, pero al cambiar de página ésta desaparecerá. En cambio una variable de sesión permanecerá activa y con el valor que le hayamos asignado durante toda la visita del usuario.
Para utilizar variables de sesión es tan sencillo como llamar a session_start() al principio de la página, antes de cualquier salida (antes de <html> y cualquier otra cosa que se muestre en pantalla) y usar la variable superglobal $_SESSION para almacenar valores.
Vamos a hacer un ejemplo sencillo con dos páginas, en una definiremos una variable de sesión y en la otra veremos su valor.
Página 1:
<?php
session_start();
$_SESSION['nombre'] = 'Juan';
?>
Página 2:
<?php
session_start();
echo "El nombre es: ".$_SESSION['nombre'];
?>
Guardamos el código en pagina1.php y pagina2.php respectivamente.
Siempre tenemos que llamar a session_start() antes de usar las sesiones, ya sea para acceder a ellas o para almacenar valores. Si ejecutamos la primera página veremos que aparece en blanco, pero si seguidamente vamos a la página 2 veremos que aparece "El nombre es: Juan", sin embargo, "Juan" no aparece por ninguna parte en el código de la pagina2.php, todo es obra de las sesiones.
Esto nos puede ser útil por ejemplo para identificar a un usuario. Primero comprobaríamos en la base de datos si el usuario y contraseña introducido es correcto y si es así haríamos algo del tipo $_SESSION['logged'] = true. Luego sólo tendríamos que comprobar esta variable de sesión.
Otro ejemplo muy común es el de hacer un contador de páginas vistas por el usuario:
<?php
session_start();
if(!isset($_SESSION['contador'])) {
$_SESSION['contador'] = 0; }
$_SESSION['contador']++;
?>
Lo único que hacemos es sumar uno cada vez que el usuario carga la página. Si la variable $_SESSION['contador'] no existe entonces la iniciamos a 0. Si abres esta página con dos navegadores distintos (por ejemplo ie y firefox) verás como cada contador es independiente en cada navegador, esto es así porque PHP considera cada navegador como un usuario distinto.
Redactado por Nenillo