Lenguajes
Web/Otros
Extra
Enlaces

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

¿Dudas? ¡Cualquier duda será atendida en nuestro Foro!

Inicio | JavaScript necesario para este enlace

Noticias en RSS2 XHTML Vlido CSS Vlido