PDF (adobe.com)

Variables de sesión



Las variables de sesión permiten almacenar y mostrar información mantenida durante la visita (o sesión) de un usuario. El servidor crea un objeto de sesión diferente para cada usuario y lo mantiene durante un período de tiempo establecido o hasta que se pone fin al objeto explícitamente.

Dado que las variables de sesión duran toda la sesión y se conservan cuando el usuario se desplaza de una página a otra dentro del sitio Web, resultan idóneas para almacenar las preferencias del usuario. Las variables de sesión se pueden utilizar para insertar un valor en el código HTML de la página, asignar un valor a una variable local o suministrar un valor para evaluar una expresión condicional.

Antes de definir las variables de sesión de una página deberá crearlas en el código fuente. Después de crear una variable de sesión en el código fuente de la aplicación Web, puede utilizar Dreamweaver para recuperar su valor y utilizarlo en una página Web.

Cómo funcionan las variables de sesión

Las variables de sesión almacenan información (generalmente parámetros de formulario o de URL enviados por los usuarios) y la ponen a disposición de todas las páginas de una aplicación Web mientras dura la visita del usuario. Por ejemplo, cuando los usuarios visitan un portal Web que proporciona acceso a correo electrónico, cotizaciones bursátiles, informes meteorológicos y noticias, la aplicación Web almacena la información de registro en una variable de sesión que identifica al usuario en todas las páginas del sitio. Esto permite al usuario ver únicamente los tipos de contenidos que ha seleccionado mientras navegaba por el sitio. Las variables de sesión también pueden proporcionar un mecanismo de seguridad al poner fin a la sesión del usuario si la cuenta permanece inactiva durante un determinado período de tiempo. De este modo también se libera memoria del servidor y recursos de procesamiento si los usuarios se olvidan de terminar la sesión de un sitio Web.

Las variables de sesión almacenan información mientras dura la sesión del usuario. La sesión comienza cuando el usuario abre una página de la aplicación y termina cuando el usuario no abre otra página de la aplicación durante un período de tiempo determinado o cuando el usuario pone fin de manera explícita a la sesión (generalmente haciendo clic en un vínculo de “desconexión”). Mientras dura, la sesión es específica de un usuario individual y cada usuario tiene una sesión independiente.

Utilice variables de sesión para almacenar información a la que pueda acceder cada página de una aplicación Web. La información puede ser muy diversa e incluir, por ejemplo, el nombre del usuario, el tamaño de fuente preferido o un indicador que especifique si el usuario ha iniciado sesión de forma correcta. Otra utilización común de las variables de sesión consiste en mantener en funcionamiento un registro que recopile información como el número de preguntas que el usuario respondió correctamente hasta un momento determinado en un cuestionario en línea o los productos que el usuario seleccionó de un catálogo en línea hasta ese momento.

Las variables de sesión sólo pueden funcionar si el navegador del usuario está configurado para aceptar cookies. El servidor crea un número de ID de sesión que identifica el usuario cuando se inicia la sesión y, a continuación, envía una cookie que contiene el número de ID al navegador del usuario. Cuando el usuario solicita otra página al servidor, éste lee la cookie en el navegador para identificar al usuario y recuperar las variables de sesión del usuario almacenadas en la memoria del servidor.

Recopilación, almacenamiento y recuperación de información en variables de sesión

Antes de crear una variable de sesión, deberá obtener en primer lugar la información que desea almacenar y, a continuación, enviarla al servidor para su almacenamiento. Puede recabar y enviar información al servidor utilizando formularios HTML o vínculos de hipertexto que contienen parámetros de URL. También puede obtener información a partir de cookies almacenadas en el equipo del usuario, en los encabezados HTTP enviados por el navegador del usuario con una solicitud de página o en una base de datos.

Un ejemplo típico de almacenamiento de parámetros de URL en las variables de sesión es un catálogo de productos que emplea parámetros de URL incorporados en el código creados mediante un vínculo para devolver información sobre productos al servidor que debe almacenarse en una variable de sesión. Cuando el usuario hace clic en el vínculo “Añadir al carro de la compra”, el ID de producto se almacena en una variable de sesión mientras el usuario sigue comprando. Cuando el usuario pasa a la página de caja, se recupera el ID de producto almacenado en la variable de sesión.

Una encuesta basada en formulario es un ejemplo típico de una página que guarda parámetros de formulario en variables de sesión. El formulario devuelve la información seleccionada al servidor, donde una página de aplicación puntúa la encuesta y guarda las respuestas en una variable de sesión que debe pasarse a una aplicación que pueda registrar las respuestas recopiladas de la muestra de encuestados. La información también puede guardarse en una base de datos para usarla más adelante.

Cuando la información se envía al servidor, se almacena en variables de sesión añadiendo el código correspondiente al modelo de servidor en la página especificada por el parámetro de URL o de formulario. Esta página, denominada página destination, se especifica en el atributo action del formulario HTML o el atributo href del vínculo de hipertexto en la página inicial.

Una vez almacenado un valor en una variable de sesión, puede utilizar Dreamweaver para recuperar el valor de las variables de sesión y utilizarlo en una aplicación Web. Después de definir la variable de sesión en Dreamweaver, puede insertar su valor en una página.

La sintaxis HTML de cada uno será la siguiente:

<form action="destination.html" method="get" name="myform"> </form> 
<param name="href"value="destination.html">

El código empleado para almacenar la información en una variable de sesión viene determinado por la tecnología del servidor y por el método utilizado para obtener la información. La sintaxis básica de cada tecnología del servidor será la siguiente:

ColdFusion

<CFSET session.variable_name = value>

ASP

<% Session("variable_name") = value %>

La expresión value suele ser una expresión de servidor como Request.Form("lastname"). Por ejemplo, si utiliza un parámetro de URL llamado product (o un formulario HTML con el método GET y un campo de texto llamado product) para recopilar información, las declaraciones siguientes almacenarán la información en una variable de sesión llamada prodID:

ColdFusion

<CFSET session.prodID = url.product>

ASP

<% Session("prodID") = Request.QueryString("product") %>

Si utiliza un formulario HTML con el método post y un campo de texto llamado txtProduct para recabar la información, las declaraciones siguientes almacenarán la información en la variable de sesión:

ColdFusion

<CFSET session.prodID = form.txtProduct>

ASP

<% Session("prodID") = Request.Form("txtProduct") %>

Ejemplo de información almacenada en variables de sesión

Suponga que está diseñando un sitio dedicado principalmente a la tercera edad. En Dreamweaver, añada dos vínculos a la página de bienvenida para que los usuarios personalicen el tamaño del texto del sitio. Para ver texto más grande y fácil de leer, el usuario hace clic en un vínculo y, para ver texto de tamaño normal, hace clic en otro.


Cada vínculo tiene un parámetro de URL llamado fontsize que envía la preferencia de texto del usuario al servidor, como muestra el siguiente ejemplo de Adobe ColdFusion®:

<a href="resort.cfm?fontsize=large">Larger Text</a><br> 
<a href="resort.cfm?fontsize=small">Normal Text</a>

Almacene la preferencia de texto del usuario en una variable de sesión y utilícela para establecer el tamaño de fuente de cada página que solicite el usuario.

Cerca de la parte superior de la página de destino, introduzca el código siguiente para crear una sesión llamada font_pref que almacene la preferencia de tamaño de fuente del usuario.

ColdFusion

<CFSET session.font_pref = url.fontsize>

ASP

<% Session("font_pref") = Request.QueryString("fontsize") %>

Cuando el usuario hace clic en el vínculo de hipertexto, la página envía la preferencia de texto del usuario en un parámetro de URL a la página de destino. El código de la página de destino almacena en el parámetro de URL en la variable de sesión font_pref. Mientras dure la sesión del usuario, todas las páginas de la aplicación recuperarán este valor y mostrarán el tamaño de fuente seleccionado.