Mais sobre cookies

Já vimos no básico de ASP um capítulo dedicado às cookies, que seria adequado rever para ter a base necessária para poder entender este novo capítulo.

As cookies estão em uma coleção

As cookies se salvam em uma coleção assim como muitas outras coisas em ASP. Poderíamos acessar todas as cookies de uma página através do loop For Each.

<%
response.cookies (“id”) = “Pedro”
response.cookies (“idioma”) = “ing”
response.cookies (“cor”) = “verde”

cadeia = “”
for each biscoito in Request.cookies
cadeia = cadeia & “Cookie ” & biscoito & “: ” & Request.cookies(biscoito) & “<br>”
next
response.write cadeia
%>

Neste exemplo, primeiro criamos umas cookies e logo, fazemos um percorrido na coleção de cookies para mostrar seu valor. Os valores de intermédios se salvam em uma variável cadeia porque é aconselhável não escrever nada na página até não haver realizado todo o trabalho com as cookies. Uma vez percorrida toda a coleção se mostra a variável cadeia na página, que contém todas as cookies da página.

Subclassificação de cookies

Para continuar, vamos ver como se pode colocar em uma cookie um maior número de dados através da subclassificação. Onde antes criávamos uma cookie agora aprenderemos a criar uma subcoleção de cookies.

<%
Response.cookies (“usuario”)(“id”) = “eugim”
Response.cookies (“usuario”)(“idioma”) = “pt”
Response.cookies (“usuario”)(“cor”) = “vermelho”
%>

Loop aninhado para mostrar subcoleção

Se desejarmos mostrar as subcoleções de uma maneira mais bonita, podemos fazer um loop aninhado. O loop mais geral seria o que vai percorrendo as cookies de primeiro nível. Em cada iteração do loop se perguntará se a cookie atual tem subcookies. Se não tiver, escreva a cookie atual e continue com a seguinte iteração. No caso de que tenha subcookies, se coloca em um loop que mostra cada uma delas. O código para fazer isto seria o seguinte:

<%
cadeia = “”
for each biscoito in request.cookies
if request.cookies(biscoito).HasKeys then
for each subbiscoito in request.cookies(biscoito)
cadeia = cadeia &”    ” & subgalleta & “: ” & request.cookies(biscoito)(subbiscoito) & “<br>”
next
else
cadeia = cadeia & biscoito & “: ” & request.cookies(biscoito) & “<br>”
end if
next
response.write cadeia
%>

Amaneira de trabalhar com subclassificações é muito parecida a de trabalhar com matrizes ou arrays de 2 dimensões.

Data de validade programada

Como foi dito no capítulo de cookies básico, para que os biscoitinhos se salvem no ordenado uma vez acabada a sessão durante um tempo, temos que colocar data de validade neles. É muito útil colocar uma data de validade relativa à data atual, por exemplo 1 ano ou mais tarde, assim, quando passe um tempo, a página salvará as cookies mais adiante no tempo também. Para isso, vamos utilizar uma função de data que se chama DateAdd() e funciona conforme este esquema.

DateAdd(intervalo, numero, data)

Intervalo é um string que representa as unidades sobre as quais vai se acrescentar a data. Por exemplo, os meses se indicam com “m”, os anos com “yyyy”, e os dias com “d”.
Número se utiliza para indicar quantos intervalos se acrescentam, 1 ano ou 8 meses, por exemplo.
Data é a data a partir da qual se acrescentam o número de intervalos. Costuma-se utilizar neste parâmetro a palavra Now que indica que se toma a data atual.

<%
response.cookies(“id”).expires = DateAdd(“d”,1,Now)
%>

No exemplo, a cookie vencerá sua validade um dia depois.

Fonte: http://www.criarweb.com/artigos/426.php

Deixe um comentário