Sesiones en PHP
A veces es necesario hacer una aplicación PHP en la que para entrar sea necesario introducir un login y un password. Una vez hecho, navegaremos por distintas páginas PHP, pero en cada una de ellas se debería comprobar si se introdujo el login y el password.
Para este tipo de cosas están las sesiones y variables de sesión de PHP. Una vez introducido un login y un password y comprobado que es correcto, se crea una sesión PHP en la que se guarda una variable de sesión en la que se indica que se ha entrado correctamente.
<?php if ($nombre=="usuario_valido" && $password=="password_valida") { session_start(); $autentificado="si"; session_register("autentificado"); } <?
El código anterior verifica que $nombre y $password corresponden a usuario y password válidos. Ambas variables se supone que vienen de un formulario que pide usuario y password. La comprobación verdadera, por supuesto, debería hacerse contra una base de datos o algún mecanismo más serio que poner el usuario válido y la password válida en el código php.
Si se valida usuario y password, se crea una sesión con session_start(). Luego, una variable cualquiera se pone con un valor cualquiera que nos sirva para saber si se ha entrado o no en sesión. En este caso, usamos $autentificado="si". Finalmente, se guarda dicha variable en la sesión, con session_register("autentificado");
Para comprobar en cualquier otra página php si se ha entrado correctamente en sesión, tendremos que poner un código como este
<?php session_start(); if ($_SESSION['autentificado'] != "si" ) { // no se ha entrado, redirigir a la página de login header ("Location: login.php"); exit; } // si se ha entrado en sesión, seguir aquí el código normal. ?> Se pone un ''session_start()'' para cargar las variables de sesión. Se hubiésemos puesto un nombre a la sesión anteriormente, debemos usar aquí ese nombre. Una vez comenzada la sesión, se comprueba si ''$_SESSION['autentificado']'' tiene el valor ''"si"'' que le dimos anteriormente. ''"autentificado"'' es el nombre de variable que registramos en su momento. Las sesiones podrían tener nombre, de forma que tengamos varias sesiones a la vez. Para ello se usa ''session_name()'' antes de llamar a ''session_start()'' <pre> <?php session_name("login"); session_start(); // Carga la sesion de nombre "login" ?>
Para hacer un equivalente a logout y salir de sesión, debemos destruir la sesión.
<?php session_start(); session_destroy(); ?> Llamamos primero a ''session_start()'' para que se cargue la sesión. Luego a ''session_destroy()'' para destruirla, que destruirá la sesión cargada actualmente.