sexta-feira, 16 de novembro de 2001

Informações adicionais sobre Cookies

Os cookies são pequenos arquivos do tipo texto armazenados no computador do usuário. Estes pequenos arquivos armazenam informações diversas definidas pelo programador do site. O usuário poderá bloquear o aceite dos cookies através do próprio navegador ou por outros programas com o mesmo objetivo. O uso de cookies é bastante comum em sistemas para medir audiência de visitação, registrar as preferências do usuário ou até mesmo rastrear seus cliques no site.

******************************************************
Atributo Descrição

Domain: Se especificado, o cookie será enviado somente para os solicitações deste domínio.

Expires: A data em que o cookie expira. Essa data deve ser definida para que o cookie seja armazenado no computador do usuário após a conclusão da sessão. Se este atributo não for definido com uma data posterior a atual, o cookie expirará quando a sessão for finalizada.

HasKeys: Especifica se o cookie contém chave retornando True/ False.

Path: Se especificado, o cookie será enviado sempre que houver uma requisição neste caminho. Se este atributo não for definido, o caminho do script asp que o criou será utilizado.

Secure: Indica que o cookie deve ser enviado somente se o Secure Sockets Layer estiver ativo.
******************************************************

Criar um cookie
Se o cookie especificado não existir, ele será criado. Se existir, ele apanhará o novo valor e o valor antigo será descartado. O script abaixo cria um cookie chamado MyCookie:

<%
Response.Cookies("MyCookie") = "Novo Cookie"
%>


Usa-se o objeto "Request" para recuperar o valor do cookie :

<%
Dim MyVar
MyVar = Request.Cookies("MyCookie")

Response.Write "<p><b>"&MyVar&"</b></p>"
%>


Armazenar o valor de uma variável
Para gravar um cookies com o conteúdo de uma variável, é necessário que você utilize a função CStr() para converte-la no tipo string.

<%
MyVar = Request.Form("strName")
Response.Cookies("MyCookie") = CStr(MyVar)
%>

Várias informações em um único Cookie
A coleção Cookie poderá armazenar múltiplos valores em um único Cookie

<%
Response.Cookies("MyCookie")("MyCity") = "Belo Horizonte"
Response.Cookies("MyCookie")("MySite") = "Suportebrasil.NET"
%>


Para recuperar o valor de uma das chaves :

******************************************************
<%
Dim MyCity
MyCity = Request.Cookies("MyCookie")("MyCity")

Dim MySite
MySite = Request.Cookies("MyCookie")("MySite")

Response.Write "<p><b>Cidade : "&MyCity&"</b></p>"
Response.Write "<p><b>Site : "&MySite&"</b></p>"
%>
******************************************************

A regra para atribuir o valor de uma variável a uma das chaves de um cookie é a mesma empregada para criar um cookie sem chave. Usa-se a função "CStr()".

Muita atenção a essa regra:

Uma atribuição subseqüente a "MyCookie" criado no script acima, sem a especificação de uma chave, causaria a destruição das chaves "MyCity" e "MySite". Veja o script abaixo :

<%
Response.Cookies("MyCookie") = "Belo Horizonte"
%>

No script acima, as chaves "MyCity" e "MySite" são destruídas e seus valores descartados. O cookie "MyCookie", agora contém o valor "Belo Horizonte".

Como complemento, se você atribuir uma chave a um cookie que não tem chave, o valor não chave desse cookie será destruído. Por exemplo : Se depois do código anterior for feito:

<%
Response.Cookies("MyCookie")("MyJob") = "Programador"
%>

O valor "Belo Horizonte" é destruído e a sub chave MyJob estará armazenando o valor Programador.

Cookie com Chaves
Para determinar se um cookie tem chaves, utilize a seguinte sintaxe :

<%
Response.Write Request.Cookies("MyCookie").HasKeys
%>

Se "MyCookie" for um dicionário de cookie, o valor impresso será "TRUE" caso contrário "FALSE".

Interagir entre as chaves de um cookie
Podemos interagir entre as chaves de um Cookie através da instrução For Each.

******************************************************
<%
For Each Subkey in Request.Cookies("MyCookie")
        Response.Write SubKey &" - "& Request.Cookies("MyCookie")(Subkey)
Next
%>

******************************************************

Se você interagir em um cookie que não tem chave, o mesmo não será executado. É uma boa prática checar se o cookie tem chaves. O script acima ficaria mais correto se fosse escrito dessa forma :

******************************************************
<%
If Request.Cookies("MyCookie").HasKeys then
        For Each Subkey in Request.Cookies("MyCookie")
               Response.Write SubKey &" - "& Request.Cookies("MyCookie")(Subkey)
        Next
End If
%>
******************************************************

Atributos de um cookie

******************************************************
<%
Response.Cookies("UserLogin") = "joses"
Response.Cookies("UserLogin").Expires = #31/12/2000#
Response.Cookies("UserLogin").Domain = "/suportebrasil.net/"
Response.Cookies("UserLogin").Path = "/artigos"
Response.Cookies("UserLogin").Secure = FALSE
%>

******************************************************

Boa Programação!


Esta matéria foi postada originalmente no ASP4Developers por Leonardo da Silva Calado (site), que na época era "Usuário avançado de Dreamweaver ultradev e programador ASP, JSP, PHP, VISUAL BASIC e Condfusion.
tenho preferência por ASP uma linguagem de facil aprendizado.". Hoje, vai saber...

0 comentários: