utilizando en framework php Codeigniter. Se trataba de una pantalla donde nuestro usuario indicaba su e-mail y contraseña y nosotros autorizábamos el acceso o presentábamos los errores de validación correspondiente, según corresponda.
Para que no nos acusen de aburridos a los programadores, incluiremos algunas gráficas para ilustrar el post . No tienen la gracia de los comics habituales en Cristalab, pero bue... ¡Se aceptan dibujantes!, jeje
Ahora nos interesa configurar páginas con acceso restringido, es decir páginas únicamente accesibles por usuarios logueados a nuestro sistema (y no el público general).
La estrategia que seguiremos es la siguiente. Cuando el usuario logra hacer login en nuestro sistema, le activaremos una variable de sessión especificando que es un usuario "habilitado".
Luego, al inicio de cada página que nos interese subir contenido restringido, consultaremos si el usuario tiene activada la variable de sessión "habilitado". En caso que si, lo dejamos pasar y ver el contenido restringido. En caso que no, le mostramos un mensaje de error y lo invitaremos a efectuar el login.
Recordemos que las variables de sessión son un recurso muy valioso que disponemos en programación web. Se trata de variables cuyos valores quedan almacenados en "memoria"
(directorio temporal del servidor, cookies, tablas en base de datos; dependiendo el lenguaje y servidor en que trabajemos) y podemos consultarlas desde cualquier página de nuestro sistema (sin necesidad de transmitirlas a través de parámetros).
Distinto ocurre con las variables normales (denominadas de alcance local) que nos sirven para consultarlas en la página actual donde nos encontremos. Puedo cuando nos dirigimos a una nueva página, perdemos su valor (excepto que lo transmitamos por parámetro).
En nuestro script de login, teníamos un método "login" en el controlador llamado "php". Cuando el usuario lograba ingresar, hacíamos lo siguiente:
Código PHP :
echo "Validacion Ok<br><br><a href=''>Volver</a>"; //
Esto lo reemplaremos por:
Código PHP :
$this->load->library('session'); // cargamos la librería para sessiones del framework php CodeIgniter $info_usuario=array( 'habilitado' =>TRUE ); $this->session->set_userdata($info_usuario); // configuramos la variable de sessión 'habilitado' $this->load->helper('url'); // cargamos el helper url del framework php Codeigniter, necesario para la próxima sentencia redirect('php/AccesoRestringidoFrameworkPhpCodeigniter', 'refresh'); // habiendo confirmado que el usuario está habilitado, lo direccionamos hacia la página de contenido restringido.
Luego, dentro del controlador "php" crearemos un nuevo método llamado "AccesoRestringidoFrameworkPhpCodeigniter" y cuyo código es el siguiente:
Código PHP :
function AccesoRestringidoFrameworkPhpCodeigniter(){ $this->load->library('session'); // cargamos la librería para sessiones del framework php CodeIgniter !isset($this->session->userdata['habilitado'])? die('Página con acceso restringido. <a href="./login">Click aquí para hacer login</a>') : ''; // si el usuario no tiene activada la variable de sessión "habilitado", detenemos la ejecución del programa y presentamos mensaje de error. $this->load->view('escritorio'); // si la ejecución del script llegó hasta aquí, significa que el usuario puede hacer un login válido, por lo tanto cargamos una vista de bienvenida al sistema. }
En cada página que nos interese configurar contenido restringido, tenemos que crear un método similar a "AccesoRestringidoFrameworkPhpCodeigniter" (asegurarse siempre de incluir la sentencia para cargar la clase de sessión del framework php Codeigniter y controlar que el usuario tenga activada la variable de sessión "habilitado").
Por último, creamos un método para hacer el logout (cerrar sessión):
Código PHP :
function FrameworkPhpCodeigniterCerrarSession(){ $this->load->library('session'); $this->session->unset_userdata('habilitado'); // desactivamos la varialble de session "habilitado". Equivale a dejar sin acceso al usuario. $this->login(); }
En todos los fragmentos de código se incluyen comentarios en cada sentencia explicando que hace . Si tienes dudas o consultas, por favor deja un comentario y lo revisamos juntos.
Ver demo de página con acceso restringido en el script de login desarrollado mediante el framework php Codeigniter.