Lär dig hantera Cookies i ASP
Förord
I den första delen av ASP kurser skall jag förklara hur man hanterar Cookies. Som ni säkert vet så används dessa Cookies för att lagra information på klientens dator och därmed kan man exempelvis hjälpa användaren med att hålla reda på användarnamn, lösenord och andra intressanta saker som är förknippade med den hemsida eller funktion cookies är avsedd för.I den första delen av ASP kurser skall jag förklara hur man hanterar Cookies. Som ni säkert vet så används dessa Cookies för att lagra information på klientens dator och därmed kan man exempelvis hjälpa användaren med att hålla reda på användarnamn, lösenord och andra intressanta saker som är förknippade med den hemsida eller funktion cookies är avsedd för.
Jag hade mycket problem när jag började med cookies. Anledningen till det var att jag testade och testade genom att använda olika namn på mina cookies. När jag sedan skulle radera dessa så låg de givetvis kvar. Därför rekomenderar jag er att alltid använda samma namn på era cookies så ni inte skapar för många och inte håller reda på dessa. Du kan även läsa lite FAQ angående cookies nedan vad en cookies egentligen är och hur den fungerar.
Att skriva cookies:
När en cookies skrivs till användarens PC så måste man även bestämma hur länge den skall vara aktiv. Om du som i ovanstående exempel inte anger något datum för denna, kommer den att tas bort så fort användaren går till en annan hemsida. Genom att använda .expire egenskapen så sätter man datumet då den aktuella cookiesen skall upphöra.
DateAdd("d", 365, now) ger värdet dagens datum + 365 dagar, vilket betyder att denna cookies är aktuell i ett år. Observera att det går att göra denna hantering enklare om du vill att alla cookies skall få samma datum satta, nämligen genom att lägga dessa i en loop, som du kan se nedan.
Det finns många sätt att ange detta datum. Du kan även exempelvis använda DATE + 365, men personligen tycker jag det är lättare att använda DateAdd, för du kan även exempelvis skriva DateAdd("y", 1, Now) som ger samma sak, eller till och med DateAdd("d", -1, Now) som blir gårdagens datum.
Du kan även använda en For..Each när du skall sätta samma datum på en mängd cookies som du sätter värden på och lagrar. Tänk på att exempelvis Netscape inte lagrar fler än ca 20 värden i en cookies. Här ser du ett annat sätt att ange när en cookies skall upphöra.
Det finns även fler parameter som kan sättas på en cookie. Här ser du ett exempel som kan används för cookies. Här ser du exempelvis några.
<%
Response.Cookies("Type") = "Chocolate Chip"
Response.Cookies("Type").Expires = "July 31, 2001"
Response.Cookies("Type").Domain = "pellesoft.se"
Response.Cookies("Type").Path = "/www/home/"
Response.Cookies("Type").Secure = FALSE
%>
Du kan även använda dig av undergrupper i dina cookies, där det exempelvis kan vara bra att ha om du vill gruppera saker i en och samma rubrik. Ett exempel är datumhantering eller annat som kan innehålla flera olika typer av datum för olika syften.
Här nedan ser ni ett exempel på hur man gör för att läsa av dessa cookies som finns på användarens PC. Förhoppningsvis känner ni till kommandot response.write som i Visual Basic motsvara print kommandot. Kommandot response.buffer = true måste användas om du inte tidigare i html-koden börjat skriva något. Kommandot response.AddHeader "Pragma", "No-Cache" används för att säga till din webbläsare att sidan du tittar på skall laddas om så du inte ser gammal information.
Nu kan det ju vara så att du inte vill att denna cookies skall vara kvar längre- därför vill du radera den genom att försöka få bort den. Du kan därför använda dig av .Expire datumet som sätts till ett datum som är äldre än nu. På detta sättet raderas denna cookies.
Om du vill lista alla dina cookies så kan du göra det genom att lista dessa med en For..Each sats. Denna rutinen kontrollerar om .HasKeys vilket betyder om det finns under-cookies (collection) lagrade.
Om två cookies med samma namn skickats till användarens browser, kommer Request.Cookies returnera den som djupaste struktur. Exempelvis, om två cookies har samma namn men en har en path attribut på /www/ och den andra på /www/home/, kommer klienten att skicka båda de cookies till /www/home/ katalogen, men Request.Cookies kommer endast att returnera den andra av de två.
Det finns även flera parametrar som kan användas i kombination med Cookies. Så här ser syntaxen ut för cookies:
Syntax:
Response.Cookies(cookie)[(key)|.attribut] = värde
Parameters:
cookie
Namnet på cookien.
key
En extra parameter. Om key är specificerad, är cookie ett variabel, och key är satt till ett värde.
attribut
Specificerar information om cookien. Attribut värdet kan vara ett av följande.
Namn Förklaring
Domain Write-only. Om detta specificeras, kommer cookien endast sändas när du besöker den domänen.
Expires Write-only. Datumet då denna cookie upphör att gälla. Detta datum måste sättas för att cookien skall lagras på klientens hårddisk efter att webbläsaren stängs. Om detta värde inte är satt till ett datum som är längre fram än dagens, kommer cookien att upphöra så fort användaren lämnat sidan eller stängt sin browser.
HasKeys Read-only. Specificerar om cookie innehåller keys eller inte.
Path Write-only. Om angedd, skickas bara denna cookies när du är på denna sökväg. Om detta värde inte är satt, används programmets sökväg.
Secure Write-only. Bestämmer om cookien skall skickas över en SSL server (Secure Socket Layer, kan även ses med https://), dvs att det är en säkrad hemsida som cookien skall skrivas på. Om du inte vet vad som gäller för din hemsida- är det inget viktigt för dig.
Värde
Bestämmer värdet som skall finnas för key eller attribut.
Request.Cookies(cookie)[(key)|.attribute]
Parameter
cookie
Namnet på den cookie där dess värde skall returneras.
key
En valfri parameter som används för att läsa subkeys värden från en cookies.
attribut
Specificerar information om själva cookien. Attribut parametern kan vara följande. Namn Förklaring
HasKeys Read-only. Returnerar TRUE om denna cookies har keys.
Vad gör en Cookies?
n För att berätta för servern att du återkommer till en hemsida eller då du senast var där eller annan information som du angett. En cookie kan inte säga vad det finns för information på din hårddisk eller över huvudtaget läsa något på den. Ett exempel på en cookie är om du loggar in på en sida- så lagras det i en cookies på din dator för att du skall slippa behöva skriva det då du återkommer.
En cookies spara tid och hjälper dig att ange det du brukar skriva. Med cookies kan serverns program hålla reda på det du angivit och därmed låta program göra tjänster åt dig som inte gått annars. Det är upp till dig att registrera det du vill.
Hur kan cookies användas på servern?
Det tillåter exempelvis att man kan sända ut information via email (om det registrerats)- och det är exempel på sådana tjänster man kan använda. Man kan även informera en användare vad som är nytt eller inte på en hemsida, så det finns många spännande användningsområden.
Är cookies farliga för min dator?
n Nej- en cookies är endast en liten textfil. Det är inget program eller plug-in. Det kan inte användas som virus, och det kan inte komma åt din hårddisk. Din webbläsare (inte något annat program) kan spara cookies värden till din hårddisk om det behövs.
Fyller Cookies upp min hårddisk?
n Både Netscape och Microsoft Explorer har kontroll på antalet cookies som skall lagras på hårddisken. Netscape har en gräns på 300st och om det blir fler- kommer browsern att ta bort de äldsta för att göra plats åt nyare. Microsoft spara sina cookies i "Temporary Internet Files" katalogen, en systemkatalog som du kan sätta in hur stor den skall vara (oftast är det 2% av din hårddisk). En cookies är i storleken 50-150 bytes, det behövs ca 20 millioner cookies för att fylla upp en 2GB hårddisk.
Är Cookies känsliga för mig privat?
n Som med allting angående Internet, är du så anonym som du vill vara. Cookies i sig självt kan inte samla data, de kan inte kommas åt om du inte vill det. En cookie kan INTE VETA VEM DU ÄR, VAR DU BOR osv, utan det är du som måste ange detta i din cookies när du skriver informationen i något fält på en hemsida. Det är däremot bra om du tänker på vilken typ av information du skriver i dessa registreringsformulär.
Jag tittade i Internet Explorer cookiekatalogen, och de hade mitt usernamn på de. Kan servern se mina username?
n Eftersom Windows systemet tillåter att mer än en användare loggar in och använder program, var Microsoft tvungen att komma på ett sätt som skilde varje användares cookies. Detta är vanligt förekommande i arbetsstationer där en maskin används av flera användare. Detta är enda anledningen till att namnet står. Om någon annan loggar in, så används inte din cookies. Användarnamnet sänds inte till servern med innehållet av din cookies.
Detta FAQ utdrag är några av punkterna som finns från The Unofficial Cookie FAQ , där du kan hela dokumentet(engelsk version).
Copyright (c) 1999
Pelle Johansson
Skapad: 1999-11-09
Ändrad: 2004-04-28
Referenser..
n CookieCentral
n Besöks kontroll
n Dyn. hemsida
n ASP Help
Jag hade mycket problem när jag började med cookies. Anledningen till det var att jag testade och testade genom att använda olika namn på mina cookies. När jag sedan skulle radera dessa så låg de givetvis kvar. Därför rekomenderar jag er att alltid använda samma namn på era cookies så ni inte skapar för många och inte håller reda på dessa. Du kan även läsa lite FAQ angående cookies nedan vad en cookies egentligen är och hur den fungerar.
Att skriva cookies:
<%
response.cookies("username") = "pelle johansson"
response.cookies("password") = "hejsan"
response.cookies("email") = "pelle@pellesoft.se"
%>
När en cookies skrivs till användarens PC så måste man även bestämma hur länge den skall vara aktiv. Om du som i ovanstående exempel inte anger något datum för denna, kommer den att tas bort så fort användaren går till en annan hemsida. Genom att använda .expire egenskapen så sätter man datumet då den aktuella cookiesen skall upphöra.
<%
response.cookies("username") = "pelle johansson"
response.cookies("username").Expire = DateAdd("d", 365, now)
%>
DateAdd("d", 365, now) ger värdet dagens datum + 365 dagar, vilket betyder att denna cookies är aktuell i ett år. Observera att det går att göra denna hantering enklare om du vill att alla cookies skall få samma datum satta, nämligen genom att lägga dessa i en loop, som du kan se nedan.
Det finns många sätt att ange detta datum. Du kan även exempelvis använda DATE + 365, men personligen tycker jag det är lättare att använda DateAdd, för du kan även exempelvis skriva DateAdd("y", 1, Now) som ger samma sak, eller till och med DateAdd("d", -1, Now) som blir gårdagens datum.
Du kan även använda en For..Each när du skall sätta samma datum på en mängd cookies som du sätter värden på och lagrar. Tänk på att exempelvis Netscape inte lagrar fler än ca 20 värden i en cookies. Här ser du ett annat sätt att ange när en cookies skall upphöra.
<%
For Each cookie in Response.Cookies
Response.Cookie(cookie).Expires = #July 4, 2001#
Next
%>
Det finns även fler parameter som kan sättas på en cookie. Här ser du ett exempel som kan används för cookies. Här ser du exempelvis några.
<%
Response.Cookies("Type") = "Chocolate Chip"
Response.Cookies("Type").Expires = "July 31, 2001"
Response.Cookies("Type").Domain = "pellesoft.se"
Response.Cookies("Type").Path = "/www/home/"
Response.Cookies("Type").Secure = FALSE
%>
Gruppera cookies:
Du kan även använda dig av undergrupper i dina cookies, där det exempelvis kan vara bra att ha om du vill gruppera saker i en och samma rubrik. Ett exempel är datumhantering eller annat som kan innehålla flera olika typer av datum för olika syften.
<%
response.cookies("accessdate") = Now
response.cookies("accessdate")("lastaccessed") = Now
response.cookies("accessdate")("created") = Now
response.cookies("accessdate")("lastmessage") = Now
response.cookies("username").Expire = DateAdd("d", 365, now)
%>
Att läsa dessa cookies:
Här nedan ser ni ett exempel på hur man gör för att läsa av dessa cookies som finns på användarens PC. Förhoppningsvis känner ni till kommandot response.write som i Visual Basic motsvara print kommandot. Kommandot response.buffer = true måste användas om du inte tidigare i html-koden börjat skriva något. Kommandot response.AddHeader "Pragma", "No-Cache" används för att säga till din webbläsare att sidan du tittar på skall laddas om så du inte ser gammal information.
<%
response.buffer = true
response.AddHeader "Pragma", "No-Cache"
response.write "Min cookies:" & "
"
response.write request.cookies("username") & "
"
response.write request.cookies("password") & "
"
response.write request.cookies("email") & "
"
%>
Att radera dessa cookies:
Nu kan det ju vara så att du inte vill att denna cookies skall vara kvar längre- därför vill du radera den genom att försöka få bort den. Du kan därför använda dig av .Expire datumet som sätts till ett datum som är äldre än nu. På detta sättet raderas denna cookies.
<%
response.cookies("username").Expire = DateAdd("d", -1, now)
%>
Lista alla befintliga cookies:
Om du vill lista alla dina cookies så kan du göra det genom att lista dessa med en For..Each sats. Denna rutinen kontrollerar om .HasKeys vilket betyder om det finns under-cookies (collection) lagrade.
<%
For Each cookie in Request.Cookies
If Not cookie.HasKeys Then
'Skriver ut cookiesträngen %>
<%= cookie %> = <%= Request.Cookies(cookie)%>
<% Else
' Skriver ut cookie collection
For Each key in Request.Cookies(cookie)%>
<%= cookie %> (<%= key %>) =
<%= Request.Cookies(cookie)(key)%>
<% Next
End If
Next
%>
Om två cookies med samma namn skickats till användarens browser, kommer Request.Cookies returnera den som djupaste struktur. Exempelvis, om två cookies har samma namn men en har en path attribut på /www/ och den andra på /www/home/, kommer klienten att skicka båda de cookies till /www/home/ katalogen, men Request.Cookies kommer endast att returnera den andra av de två.
Mer information om Cookies:
Det finns även flera parametrar som kan användas i kombination med Cookies. Så här ser syntaxen ut för cookies:
Syntax:
Response.Cookies(cookie)[(key)|.attribut] = värde
Parameters:
cookie
Namnet på cookien.
key
En extra parameter. Om key är specificerad, är cookie ett variabel, och key är satt till ett värde.
attribut
Specificerar information om cookien. Attribut värdet kan vara ett av följande.
Namn Förklaring
Domain Write-only. Om detta specificeras, kommer cookien endast sändas när du besöker den domänen.
Expires Write-only. Datumet då denna cookie upphör att gälla. Detta datum måste sättas för att cookien skall lagras på klientens hårddisk efter att webbläsaren stängs. Om detta värde inte är satt till ett datum som är längre fram än dagens, kommer cookien att upphöra så fort användaren lämnat sidan eller stängt sin browser.
HasKeys Read-only. Specificerar om cookie innehåller keys eller inte.
Path Write-only. Om angedd, skickas bara denna cookies när du är på denna sökväg. Om detta värde inte är satt, används programmets sökväg.
Secure Write-only. Bestämmer om cookien skall skickas över en SSL server (Secure Socket Layer, kan även ses med https://), dvs att det är en säkrad hemsida som cookien skall skrivas på. Om du inte vet vad som gäller för din hemsida- är det inget viktigt för dig.
Värde
Bestämmer värdet som skall finnas för key eller attribut.
Request.Cookies(cookie)[(key)|.attribute]
Parameter
cookie
Namnet på den cookie där dess värde skall returneras.
key
En valfri parameter som används för att läsa subkeys värden från en cookies.
attribut
Specificerar information om själva cookien. Attribut parametern kan vara följande. Namn Förklaring
HasKeys Read-only. Returnerar TRUE om denna cookies har keys.
Vanliga frågor angående Cookies (FAQ) :
Vad gör en Cookies?
n För att berätta för servern att du återkommer till en hemsida eller då du senast var där eller annan information som du angett. En cookie kan inte säga vad det finns för information på din hårddisk eller över huvudtaget läsa något på den. Ett exempel på en cookie är om du loggar in på en sida- så lagras det i en cookies på din dator för att du skall slippa behöva skriva det då du återkommer.
En cookies spara tid och hjälper dig att ange det du brukar skriva. Med cookies kan serverns program hålla reda på det du angivit och därmed låta program göra tjänster åt dig som inte gått annars. Det är upp till dig att registrera det du vill.
Hur kan cookies användas på servern?
Det tillåter exempelvis att man kan sända ut information via email (om det registrerats)- och det är exempel på sådana tjänster man kan använda. Man kan även informera en användare vad som är nytt eller inte på en hemsida, så det finns många spännande användningsområden.
Är cookies farliga för min dator?
n Nej- en cookies är endast en liten textfil. Det är inget program eller plug-in. Det kan inte användas som virus, och det kan inte komma åt din hårddisk. Din webbläsare (inte något annat program) kan spara cookies värden till din hårddisk om det behövs.
Fyller Cookies upp min hårddisk?
n Både Netscape och Microsoft Explorer har kontroll på antalet cookies som skall lagras på hårddisken. Netscape har en gräns på 300st och om det blir fler- kommer browsern att ta bort de äldsta för att göra plats åt nyare. Microsoft spara sina cookies i "Temporary Internet Files" katalogen, en systemkatalog som du kan sätta in hur stor den skall vara (oftast är det 2% av din hårddisk). En cookies är i storleken 50-150 bytes, det behövs ca 20 millioner cookies för att fylla upp en 2GB hårddisk.
Är Cookies känsliga för mig privat?
n Som med allting angående Internet, är du så anonym som du vill vara. Cookies i sig självt kan inte samla data, de kan inte kommas åt om du inte vill det. En cookie kan INTE VETA VEM DU ÄR, VAR DU BOR osv, utan det är du som måste ange detta i din cookies när du skriver informationen i något fält på en hemsida. Det är däremot bra om du tänker på vilken typ av information du skriver i dessa registreringsformulär.
Jag tittade i Internet Explorer cookiekatalogen, och de hade mitt usernamn på de. Kan servern se mina username?
n Eftersom Windows systemet tillåter att mer än en användare loggar in och använder program, var Microsoft tvungen att komma på ett sätt som skilde varje användares cookies. Detta är vanligt förekommande i arbetsstationer där en maskin används av flera användare. Detta är enda anledningen till att namnet står. Om någon annan loggar in, så används inte din cookies. Användarnamnet sänds inte till servern med innehållet av din cookies.
Detta FAQ utdrag är några av punkterna som finns från The Unofficial Cookie FAQ , där du kan hela dokumentet(engelsk version).
Copyright (c) 1999
Pelle Johansson
Skapad: 1999-11-09
Ändrad: 2004-04-28
Referenser..
n CookieCentral
n Besöks kontroll
n Dyn. hemsida
n ASP Help
0 Kommentarer