Home - ASP - Cookies - 1 - 2 - 3 - 4 - 5 - 6
Cookies (IV)
por Luciano Moreno, Web Master de HTMLWeb
Leyendo las cookies
Una vez escritas nuestras cookies, necesitamos acceder al contenido de las mismas, cosa que vamos a conseguir mediante la colección Cookies del objeto Request, que extrae del disco duro del usuario todas aquellas que cookies que nuestro servidor esté autorizado a leer.
Su sintaxis básica de uso es del tipo:
Request.Cookies("nombre_cookie")
Que en el caso de haber usado cookies con claves (diccionarios) se transforma en:
Request.Cookies ("nombre_cookie") ("nombre_clave")
Generalmente, los valores de las cookies y de sus claves se recuperan asignándolos a variables ASP:
miVariable = Request.Cookies("nombre_cookie") ("nombre_clave")
Vamos a suponer en lo que sigue que hemos escrito la siguiente cookie en el disco duro de nuestros usuarios:
<%
Response.Cookies
("usuario")("nombre")="Pedro"
Response.Cookies
("usuario")("apellido")="Martínez"
Response.Cookies
("usuario")("edad")= 30
Response.Cookies
("preferencias")("colorFondo")= "#ffff99"
Response.Cookies ("preferencias")("tipoFuente")=
"Verdana"
%>
Si queremos obtener de una sola vez todos los valores de una cookie con claves, podemos hacer una lectura especificando únicamente el nombre de la cookie:
<%
Dim miCookie
miCookie =
Request.Cookies("usuario")
%>
<p>Valores de la cookie usuario:
<%=miCookie%></p>
Que nos da:
Valores de la cookie usuario: nombre=Pedro&edad=30&apellido=Mart%EDnez
Donde la cadena de salida aparece codificada en el formato URL (escapando caracteres como ñ,~,&,etc.),y con la sintaxis clave1=valor1&clave2= valor2, como podemos comprobar en esta ventana.
También es posible realizar directamente una llamada a Request.Cookies, que nos devolverá de golpe todos los elementos de la colección Cookies en una única cadena:
<%
Dim misCookies
misCookies = Request.Cookies
%>
<p>Valores almacenados en las
cookies:</p>
<p><%= misCookies
%></p>
Que nos da:
Valores almacenados en las cookies:
preferencias=tipoFuente=Verdana&colorFondo=%23ffff99;usuario=nombre=Pedro&edad=30&apellido=Mart%EDnez
Donde vemos que los datos de las dos cookies aparecen separados por un punto y coma (;), como podemos comprobar en esta ventana.
Podemos acceder a todas las cookies almacenadas en la colección Cookies usando un bucle For Each:
<%
Dim
misCookies
misCookies = ""
For Each elemento in
Request.cookies
misCookies = misCookies & "Cookie "
& elemento & ": " & Request.cookies(elemento) & "<br>"
Next
%>
<p>Valores en la
colección:</p>
<p><%= misCookies
%></p>
Que nos da:
Cookie preferencias:tipoFuente=Verdana&colorFondo=%23ffff99
Cookie usuario:nombre=Pedro&edad=30&apellido=Mart%EDnez
Como podemos comprobar en esta ventana.
Y, en caso de que la cookie sea de tipo diccionario, podemos realizar un bucle anidado para presentar los valores:
<%
Dim miCookie
If(Request.Cookies("usuario").HasKeys) Then
miCookie =
Request.Cookies("usuario")
Else
miCookie =
Request.Cookies
End If
%>
<p>miCookie : <%=
miCookie %></p>
Que nos da:
miCookie : nombre=Pedro&edad=30&apellido=Mart%EDnez
Como podemos comprobar en esta ventana.