Anexo V: Sesiones y "Cokos"

EL USO DE SESIONES

Cuando se escriben programas en internet, cada programa es mostrado en el browser del cliente, en forma independiente. El pase de un programa a otro se hace principalmente, mediante uno de los mecanismos siguientes:

La información de un programa a otro, puede ser pasada a través de parámetros (después del signo de interrogación en el caso de enlaces) o a través de variables normales o tipo "hidden" de una forma. Otro mecanismo puede ser el uso de "cookies", el cual es cómodo pero tiene el inconveniente que en algunos casos los usuarios pueden tener los "cookies" bloqueados.

En Net2Client, cada vez que se invoca un programa, se utilizan unas especies de "cookies", que se denominan "cokies", con una clave denominada "coko". Los "cokies" son unas especies de cookies, pero controlados por el sistema y almacenados en la base de datos de Net2Client, en vez de estar en la máquina del usuario. Así, cada vez que un usuario se conecta a Net2Client y se identifica positivamente, se almacena un registro en una tabla llamada COK, en donde se guarda información sobre el usuario, su perfil, la aplicación que está ejecutando y la hora de ingreso.

Este registro tiene una clave aleatoria de 12 caracteres que identifica la sesión. Cada vez que el usuario se registra, se genera una nueva clave. Esta clave es la que es pasada de programa en programa, junto con el número de la base de datos y un caracter separador (xFE, es decir el caracter þ: hexadecimal FE) para asegurar que el usuario haya hecho login. Si el programa invocado no recibe estos caracteres, se aborta la ejecución.

Estas variables están disponibles al asesor, cuando escribe un programa invocado a través de versup, verextendido. Las variables son las siguientes:

Variable Uso
$BD

La base de datos que se está utilizando

$COKDirectorio El directorio que se está utilizando (new o sis)
$COKCodigo El código aleatorio generado.
$COKO La concatenación del al Base de datos (BD), el Código (COKCodigo) y un caracter separador
$EEE La aplicación
$EE Los dos primeros dígitos de la aplicación
$CookieAGENTE El número de agente que está ejecutando el programa
$Idioma El idioma que el usuario está utilizando (esp,eng...)
$cok[COKGlobal1..5] 5 variables globales que pueden ser pasadas entre programas

En el caso de que la invocación sea hecha a través del panel de control (Programas especiales A,B,C,D y E, solo se reciben los 4 primeros parámetros.

Por lo tanto, cuando el asesor escribe programas que invocan a programas de Net2Client, debe asegurarse que está pasando el COKO a dicho programa. Si está escribiendo programas de uso interno que llaman a un programa de Net2client (por ejemplo act.htm o ver.htm) deberá pasar además de los parámetros tradicionales, el coko de la forma siguiente:

echo "<a href='act.htm?$COKO"."AR1,$rowA[AR1Codigo]'>
<img border='0' src='imagenes/edit.gif' alt='$MM2[AyudaEdit]'></a>";

Nótese que después del nombre del programa y de la interrogación, y antes del los parámetros tradicionales es que se pasa el COKO. En este ejemplo el programa escrito es invocado a través de verextendido, por lo cual se tiene acceso a la variable $COKO.