Manual PHP. PHPLIB. Control de sesiones y de identidad de usuarios

Actualizado el 10/04/2007 < > 0 Comentarios

Resúmen: Uso de la librearía PHPLIB para el control de sesiones y de identidad de usuarios en PHP.

Meneame Bitacoras

PHPLIB. Control de sesiones

Ya en este punto estamos en disposición de utilizar la librería PHPLIB. Para ello lo mejor es poner el directorio “pages” de la distribución en algún lugar desde el que el servidor de web pueda acceder a él y a través de un navegador acceder a la página “index.php3″.

Si prueba el lector a recargar la página verá que el contador que aparece va aumentando. Lo que está ocurriendo es que la primera vez que se accedió a esta página se creó una “cookie” para el control de la sesión. A partir de este momento está “cookie” con el identificador de sesión es enviado al servidor de web por el cliente cada vez accede a la página permitiendo el control del estado de la sesión. De hecho este control se realiza utilizando la base de datos “phplib” que creamos anteriormente. Si vemos las tablas que hay en la base de datos “phplib” encontramos:

active_sessions   active_sessions_split
auth_use   auth_user_md5   db_sequence

En la tabla “active_sessions” es donde se almacena la información de sesión y cada vez que se crea una nueva sesión, se crea un registro en esta tabla para su control. Supongamos que queremos controlar el acceso a un conjunto de páginas por nuestros clientes. Con PHPLIB es tan sencillo como incluir al comienzo de cada página con control de sesión la llamada:

page_open(array("sess" => "Sesión de control"));

De esta forma PHPLIB verifica si el usuario tiene ya creada la “cookie”. Si no la tiene se la crea y si la tiene nos permite acceder a todos los datos de la sesión. Gracias al control de sesiones podemos almacenar diferentes variables asociadas a esta sesión. Desde el momento que se abre una sesión, se abren todas las variables de dicha sesión. Para asociar una variable a una sesión utilizamos una llamada de PHPLIB:

$sess->register("s");

Al final de una página con control de sesión, tenemos que realizar una llamada a PHPLIB para cerrar la sesión. En esta llamada todas las variables asociadas a la sesión se guardan para que no se pierdan:

page_close();

Es por todos conocido lo poco que gustan las “cookies” a la gente por el ataque hacia su privacidad que supone. Con PHPLIB el control de sesiones se puede realizar también utilizando el método GET de envío de datos, es decir, adjuntando a la URL de acceso a la página el identificador de la sesión. Esto se controla si en la página con control de sesiones ponemos todos los enlaces a otras páginas de la siguiente forma:

$sess->purl("showoff.php3");

Ya hemos visto pues una de las principales ventajas de utilizar PHPLIB: el sencillo control de sesiones. con este control el implementar una bolsa de la compra donde se vayan almacenando todos los artículos de una compra es trivial. O el almacenamiento de una barra de navegación con todas las páginas por las que ha ido accediendo el usuario.

PHPLIB. Control de Identidad de Usuarios

Junto con el control de sesiones es el control de acceso a páginas una de las principales necesidades en las aplicaciones web. Y de nuevo con PHPLIB tenemos solucionado de forma sencilla este control. Es cierto que con Apache tenemos mecanismos para el control de acceso a páginas, pero es un control de acceso o no acceso. Normalmente necesitamos ir más allá. Necesitamos que según la persona que acceda dar acceso a unas partes u otras, poder crear grupos de usuarios con privilegios etc.

Además PHPLIB asocia este control de identidad de usuarios al control de sesiones, algo que nos permite asociar de forma automática una sesión a un usuario identificado. Cuando queremos que una página solo pueda ser accedida por un usuario identificado incluimos en la primera línea de esta página:

page_open(array("sess" => "Example_Session",
"auth" => "Example_Auth",
"perm" => "Example_Perm", "user" => "Example_User"));

Es en la tabla “auth_user” de la base de datos “phplib” donde se almacena toda la información sobre los usuarios. Y en esta tabla también se incluye un campo “perms” donde se pueden detallar los permisos que tiene un usuario.

Supongamos que hay una parte de administración a la que sólo pueden acceder los usuarios con permiso de administrador. Para ello en el campo “perms” del registro del usuario debe aparecer “admin”. Con PHPLIB lo único que hay que hacer para realizar este control es incluir la llamada:

$perm->check("admin");

Si el usuario no está aún autenticado se le presentará una página para que inserte un identificador y una clave de entrada.

En el ejemplo inicial de PHPLIB el identificador es “kris” y la clave es “test”. Una vez introducidos podemos volver a acceder a esta página y ya se nos volverá a pedir el identificador.

Meneame Bitacoras

Publicado el 10/04/2007, última actualización 10/04/2007.

Autor: Alvaro del Castillo

URL: No especificado

(Subir al texto)

Añadir Comentario

* Campos obligatorios