VBScript e Cookies
O que são cookies?
Os navegadores e servidores da Web usam o protocolo HTTP para se comunicar e o HTTP é um protocolo sem estado. Mas para um site comercial, é necessário manter as informações da sessão entre as diferentes páginas. Por exemplo, o registro de um usuário termina após completar muitas páginas. Mas como manter as informações da sessão do usuário em todas as páginas da web. Em muitas situações, o uso de cookies é o método mais eficiente de lembrar e rastrear preferências, compras, comissões e outras informações necessárias para uma melhor experiência do visitante ou estatísticas do site.
Como funciona?
Seu servidor envia alguns dados para o navegador do visitante na forma de um cookie. O navegador pode aceitar o cookie. Em caso afirmativo, ele é armazenado como um registro de texto simples no disco rígido do visitante. Agora, quando o visitante chega a outra página do seu site, o navegador envia o mesmo cookie para o servidor para recuperação. Uma vez recuperado, seu servidor sabe / lembra o que foi armazenado anteriormente. Cookies são um registro de dados de texto simples de 5 campos de comprimento variável -
Expires- A data em que o cookie irá expirar. Se estiver em branco, o cookie irá expirar quando o visitante sair do navegador.
Domain - O nome de domínio do seu site.
Path- O caminho para o diretório ou página da web que definiu o cookie. Isso pode ficar em branco se você quiser recuperar o cookie de qualquer diretório ou página.
Secure- Se este campo contiver a palavra "seguro", o cookie só poderá ser recuperado com um servidor seguro. Se este campo estiver em branco, não existe tal restrição.
Name=Value - Os cookies são definidos e recuperados na forma de pares de chave e valor.
Os cookies foram originalmente projetados para a programação CGI e os dados dos cookies são transmitidos automaticamente entre o navegador da web e o servidor da web, para que os scripts CGI no servidor possam ler e gravar os valores dos cookies armazenados no cliente.
O VBScript também pode manipular cookies usando a propriedade cookie do objeto Document . O VBScript pode ler, criar, modificar e excluir o cookie ou cookies que se aplicam à página da web atual.
Armazenando Cookies
A maneira mais simples de criar um cookie é atribuir um valor de string ao objeto document.cookie , que se parece com isto -
Sintaxe
document.cookie = "key1 = value1;key2 = value2;expires = date"
Aqui, o atributo expires é opcional. Se você fornecer a este atributo uma data ou hora válida, o cookie irá expirar na data ou hora fornecida e, depois disso, o valor dos cookies não estará acessível.
Exemplo
A seguir está o exemplo para definir um nome de cliente no cookie de entrada .
<html>
<head>
<script type = "text/vbscript">
Function WriteCookie
If document.myform.customer.value = "" Then
msgbox "Enter some value!"
Else
cookievalue = (document.myform.customer.value)
document.cookie = "name = " + cookievalue
msgbox "Setting Cookies : " & "name = " & cookievalue
End If
End Function
</script>
</head>
<body>
<form name = "myform" action = "">
Enter name: <input type = "text" name = "customer"/>
<input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
</form>
</body>
</html>
Isso produzirá o seguinte resultado. Agora insira algo na caixa de texto e pressione o botão "Definir Cookie" para definir os cookies.
Agora, seu sistema possui um cookie chamado name . Você pode definir vários cookies usando vários pares de chave = valor separados por vírgula. Você aprenderá a ler esse cookie na próxima seção.
Lendo Cookies
Ler um cookie é tão simples quanto escrever um, porque o valor do objeto document.cookie é o cookie. Portanto, você pode usar essa string sempre que quiser acessar o cookie. A string document.cookie manterá uma lista de pares nome = valor separados por ponto-e-vírgula, onde name é o nome de um cookie e value é seu valor de string. Você pode usar a função split () de strings para quebrar a string em chave e valores da seguinte maneira -
Exemplo
A seguir está o exemplo para obter os cookies definidos na seção anterior -
<html>
<head>
<script type = "text/vbscript">
Function ReadCookie
allcookies = document.cookie
msgbox "All Cookies : " + allcookies
cookiearray = split(allcookies,";")
For i = 0 to ubound(cookiearray)
Name = Split(cookiearray(i),"=")
Msgbox "Key is : " + Name(0) + " and Value is : " + Name(1)
Next
End Function
</script>
</head>
<body>
<form name = "myform" action = "">
<input type = "button" value = "Get Cookie" onclick = "ReadCookie()"/>
</form>
</body>
</html>
Note- Aqui, UBound é um método da classe Array , que retorna o comprimento de uma matriz. Discutiremos Arrays em um capítulo separado; até esse momento, por favor, tente digeri-lo.
Isso produzirá o seguinte resultado. Agora, pressione o botão "Obter Cookie" para ver os cookies que você configurou na seção anterior.
Note- Pode haver alguns outros cookies já configurados em sua máquina. Portanto, o código acima irá mostrar-lhe todos os cookies definidos em sua máquina.
Definir a data de expiração dos cookies
Você pode estender a vida de um cookie além da sessão atual do navegador, definindo uma data de expiração e salvando a data de expiração no cookie. Isso pode ser feito definindo o atributo expires para uma data e hora.
Exemplo
O exemplo a seguir ilustra como definir a data de expiração do cookie após 1 mês -
<html>
<head>
<script type = "text/vbscript">
Function WriteCookie()
x = now()
y = dateadd("m",1,now()) ' Making it to expire next
cookievalue = document.myform.customer.value
document.cookie = "name = " & cookievalue
document.cookie = "expires = " & y
msgbox("Setting Cookies : " & "name=" & cookievalue )
End Function
</script>
</head>
<body>
<form name = "myform" action = "">
Enter name: <input type = "text" name = "customer"/>
<input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
</form>
</body>
</html>
Excluindo um Cookie
Às vezes, você desejará excluir um cookie para que as tentativas subsequentes de ler o cookie não retornem nada. Para fazer isso, você só precisa definir a data de validade para uma hora no passado.
Exemplo
O exemplo a seguir ilustra como excluir um cookie definindo sua data de validade 1 mês no passado -
<html>
<head>
<script type = "text/vbscript">
Function WriteCookie()
x = now()
x = now()
a = Month(x)-1
b = day(x)
c = year(x)
d = DateSerial(c,a,b)
e = hour(x)
msgbox e
f = minute(x)
msgbox f
d = cdate(d & " " & e & ":" & f)
msgbox d
cookievalue = document.myform.customer.value
document.cookie = "name = " & cookievalue
document.cookie = "expires = " & d
msgbox("Setting Cookies : " & "name=" & cookievalue )
End Function
</script>
</head>
<body>
<form name = "myform" action = "">
Enter name: <input type = "text" name = "customer"/>
<input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
</form>
</body>
</html>