Dando uma quebra nos textos hard-developer do @chris, resolvi escrever um post simples e rápido sobre um assunto mais simples ainda: cookies em ASP.
Uma leitura rápida sobre:
O que são cookies?
Isso são cookies.
"Cookies" são dados que ficam armazenados no computador do usuário em formato de texto e podem ser resgatados pelo servidor em outro momento, mesmo que o usuário saia do site e feche o navegador esses dados podem ficar armazenados.
Permitir ou não o uso de cookies é uma opção do usuário e a maioria dos navegadores por padrão aceita o uso deles.
Porquê usar cookies?
Usar cookies ou session? Vamos lá…
A session sempre é fechada quando o usuário não está navegando no seu site, para informações que podem ficar guardadas sempre você pode (e deve) utilizar cookies.
Por exemplo, o usuário fez um comentário no seu site, a próxima vez que ele for comentar já estará gravado no formulário o seu nome e e-mail pois estes foram armazenados em cookies quando ele executou essa ação pela primeira vez.
Escrevi aqui como fazer um sistema de login em ASP que utiliza apenas session, quando o usuário fica muito tempo sem nenhuma ação ou quando ele fecha a página ele automaticamente é deslogado, se as informações fossem gravadas através de cookies ele poderia permanecer logado.
Definir quando utilizar Cookies e Sessions depende da intenção e segurança que a aplicação que está sendo desenvolvida deve ter.
Programando
Agora que você já sabe como funciona e quando deve ser utilizado, vamos botar a mão na massa e descobrir como criar, ler e configurar cookies em ASP . 😀
Como criar um Cookie em ASP?
Para criar um cookie em ASP é extremamente simples, vamos ao código:
<% Response.Cookies("usuario").item("apelido") = "Guilherme Serrano" Response.Cookies("usuario").item("site") = "https://andafter.org" %>
Neste caso foi armazenado um cookie chamado usuario que tem dois itens, um chamado apelido com valo de Guilherme Serrano e outro chamado site com valor de https://andafter.org
Como configurar um Cookie em ASP?
Cookies não tem muito o que configurar, mas você pode determinar o tempo de expiração, ou seja, até quando este cookie deve ficar armazenado no computador do usuário.
<% Response.Cookies(“usuario”).Expires = “01/07/2008” %>
Neste exemplo você tem uma data definida para que o cookie expire, e esta linha só serve para ilustrar como funciona pois dificilmente você determina datas fixas para um cookie expirar, né?
Então você pode usar o seguinte código:
<% Response.Cookies(“usuario”).Expires = DateAdd("d",7,Now) %>
Agora você definiu que o cookie usuário tem 7 dias de duração, através do DateAdd. O que você fez foi somar 7 dias "d",7 a data atual Now.
Como ler um Cookie em ASP?
Você gravou as informações no computador do usuário, vamos ao código para receber essas informações:
<%=Request.Cookies(“usuario”).item("apelido")%>
Simples assim, usando o exemplo anterior nesse caso você teria como retorno Guilherme Serrano. Um exemplo prático, no formulário de comentar deixar preenchido com o apelido do usuário:
<form action="comentar.asp" method="post"> <input type="text" value="<%=Request.Cookies(“usuario”).item("apelido")%>"> </form>
Dicas e macetes
Quando você não define data de expiração o cookir funciona como uma session (chamado cookie de sessão) e é apagado logo que o usuário sai da página.
Pense bem se é melhor usas cookies ou session, cookies não oferecem segurança: as informações gravadas podem ser acessadas a qualquer momento por qualquer usuário do computador que saiba (ou não!) o que está fazendo. Não grave senhas e dados confidenciais em cookies, se isso for necessário (nunca é, pois sempre existem outros métodos) utilize algum sistema de criptografia.
Em um sistema de login por exemplo, se o usuário estiver em um computador público ele ficará logado e a próxima pessoa que acessar o site terá acesso a conta da pessoa – para evitar isso o usuário deve ter a opção ao se logar de "lembrar de mim" ou não. 😉
Para gerar corretamente cookies que utilizam variáveis dinâmicas para o nome você precisa deixar a opção Buffer como true, pra isso insira no início da página a linha:
<% ´Torna o Buffer True Response.Buffer = True variavel = "apelido" ´Gera um cookie com uma variável, se o buffer não estivesse como true esse cookie não seria gerado corretamente. Response.Cookies("usuario").item("" & variavel & "") = "Guilherme Serrano" %>
Bom, se alguém tiver alguma coisa para adicionar comentem aí que eu atualizo o post, certo? 😉
Bom dia… Como faço pra verificar se um cookie já existe ou não?
Se eu usar um request.cookies, sem ter usado o response.cookies anteriormente, ele dá erro.