Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Objeto Session


La necesidad y utilidad del método session para transferir variables


01/1/70 - En los programas que hemos visto hasta ahora, hemos utilizado variables que solo existían en el archivo que era ejecutado. Cuando cargábamos otra página distinta, los valores de estas variables se perdían a menos que nos tomásemos la molestia de pasarlos por la URL o inscribirlos en las cookies o en un formulario para su posterior explotación. Estos métodos, aunque útiles, no son todo lo prácticos que podrían en determinados casos en los que la variable que queremos conservar ha de ser utilizada en varios scripts diferentes y distantes los unos de los otros.

Podríamos pensar que ese problema puede quedar resuelto con las cookies ya que se trata de variables que pueden ser invocadas en cualquier momento. El problema, ya lo hemos dicho, es que las cookies no son aceptadas ni por la totalidad de los usuarios ni por la totalidad de los navegadores lo cual implica que una aplicación que se sirviera de las cookies para pasar variables de un archivo a otro no sería 100% infalible.

Nos resulta pues necesario el poder declarar ciertas variables que puedan ser reutilizadas tantas veces como queramos dentro de una misma sesión. Imaginemos un sitio multilingüe en el que cada vez que queremos imprimir un mensaje en cualquier página necesitamos saber en qué idioma debe hacerse. Podríamos introducir un script identificador de la lengua del navegador en cada uno de los archivos o bien declarar una variable que fuese valida para toda la sesión y que tuviese como valor el idioma reconocido en un primer momento.

Estas variables que son válidas durante una sesión y que luego son "olvidadas" son definidas con el objeto Session de la siguiente forma:

Session("nombre de la variable") = valor de la variable

Una vez definida, la variable Session, será almacenada en memoria y podrá ser empleada en cualquier script del sitio web.

La duración de una sesión viene definida por defecto en 20 minutos. Esto quiere decir que si en 20 minutos no realizamos ninguna acción, el servidor dará por finalizada la sesión y todas las variables Session serán abandonadas. Esta duración puede ser modificada con la propiedad Timeout:

Session.Timeout = n° de minutos que queramos que dure

Una forma de borrar las variables Session sin necesidad de esperara que pase este plazo es a partir del método Abandon:

Session.Abandon

De este modo todas las variables Session serán borradas y la sesión se dará por finalizada. Este método puede resultar practico cuando estemos haciendo pruebas con el script y necesitemos reinicializar las variables.

Lo que se suele hacer es crear un archivo en el que se borran las cookies y se abandona la sesión. Este archivo será ejecutado cuando queramos hacer borrón y cuenta nueva:

<% @ LANGUAGE="VBSCRIPT" %>
<HTML>
<HEAD>
<TITLE>Puesta a cero</TITLE>
</HEAD>
<BODY>
<%
For Each galleta in Response.Cookies
   Galleta=""
Next
Session.Abandon
%>
Borrón y cuenta nueva!!<br>
<a href="url de la página de inicio">Volver al principio</a>
</BODY>
</HTML>

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 2 comentarios (Añadir)
+ 5 comentarios no revisados

 Autoría, licencia y acciones sobre este artículo

Informe de Rubén Alvarez*

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Programación en ASP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Manuales de ASP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestran 2 comentarios revisados

 Comentario de Juan Carlos
10/8/02 
El objeto session solo se destruye con el metodo Session.Abandon? ¿Cuando se cierra el explorador, no se destruye el objeto session ???

RESPUESTA

El objeto session tiene validez dentro del servidor de ASP. Pero el servidor ASP no se puede dar cuenta de que el explorador se ha cerrado. Tampoco se da cuenta si el explorador se ha ido a otra página, abandonando la nuestra. Así pues, el objeto session también se destruye si la sesión queda inactiva durante un cierto tiempo, por defecto 20 minutos. Si la página permanece inactiva quiere decir que el usuario se ha ido o ha cerrado el explorador.

Ahora bien, si se cierra el explorador, y se vuelve a abrir, accediendo a la misma dirección donde antes teníamos, por ejemplo, algunas variables de sessión activas, éstas se han perdido. Es decir, que si cerramos el explorador y lo volvemos a abrir, se abre una nueva sessión en los sitios donde vayamos pasando. Esto es debido a que las sesiones también están enlazadas con los navegadores por medio de cookies y si cerramos el navegador, se pierden esas cookies y cuando se vuelve a abrir y se abren nuevas sesiones se crean esas cookies, pero se crean nuevas, sin respetar lo que había anteriormente.


 Comentario de Romina
10/1/05 
A mí me han dicho y he leído en otras webs de programación que para usar variables de sesión TAMBIEN es necesario que el navegador tenga habilitadas las cookies, que si no las tiene habilitadas el servidor crea un nuevo SessionID en cada petición. Me gustaría que esto se aclare en el artículo ya que muestra como si las sesiones no dependieran del cliente en absoluto.

Añadir un comentario al artículo Añadir un comentario del artículo
 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se han encontrado 5 comentarios sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Programación en ASP
Categorías
+Manuales de ASP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia