I denna artikel ska vi lära
oss allt om Cookies.
Vad är cookies?
Cookies, även kallat kakor
är något som Internet-användarna i början inte gillade, man trodde att det var
en stor säkerhetsrisk att låta webbservern spara information på deras dator. Nu
är det ju så att det inte finns någon känd säkerhetsrisk med cookies. Den
informationen som sparas i en cookie kan endast webbservern som skapade den
läsa, ingen annan webbserver.
Det man dock måste tänka på
som programmerare är att inte spara känslig information i en cookie, som t ex
kontonummer.. Detta på grund av att kakan ej är skyddad på användarens dator
och vem som helst kan läsa den (som sitter vid datorn).
Nej, Cookies är bra för att
spara t ex Namn, adresser osv..
Du kan spara information om
användaren så att han/hon ej behöver ange den informationen nästa gång de
besöker sidan.
Vilka kan använda
Cookies?
Cookies går att använda på
webbläsare från Version 2.0 och uppåt. Det går dock att stänga av cookies i
webbläsaren om man vill det.
Hur fungerar det?
Cookies är små textfiler
som sparas på besökarens dator, dessa textfiler innehåller det vi som
programmerare vill. En cookie kan endast läsas av den webbservern som skapade
kakan.
En cookie brukar döpas
ungefär så här : dittnamn@aspwebb.txt
En cookie har alltid ett
bäst före datum som talar om för webbläsaren hur länge denna textfil ska sparas
på datorn.
Hur gör man då?
Du skapar en kaka med
följande kommando :
<% Response.Cookies("Kaknamn") = "Innehåll" %>
Och läser kakan med detta kommando :
<% = Request.Cookies("Kaknamn") %>
Response skriver alltså till cookien,
och Request hämtar cookien.
Man måste även ställa in
hur länge kakan ska överleva, alltså dess bäst före datum. Glömmer man att göra
det så kommer kakan att tas bort när användaren stänger webbläsaren.
Så här ställer du in bäst
före datumet :
<% Response.Cookies("Kaknamn").Expires = "2004-01-01 12:00:00" %>
Med koden ovan så kommer informationen
i kakan att sparas till den första januari 2004, om inte användaren byter dator
eller rensar på hårddisken.
Ett smidigare sätt att lösa
detta på är att använda DateAdd så kan vi ställa in att den överlever en viss
tid från och med dagens datum.
<% Response.Cookies("Kaknamn").Expires = DateAdd("m",1,Date) %>
Detta gör att kakan kommer att sparas 1
månad från och med datumet då sidan kördes.
Så här kan det t ex se ut
med en färdig kod för att skapa en cookie:
<%
Dim Namn, Adress
Namn = "Jimmy Staff"
Adress = "Skogen"
Response.Cookies("Namn") = Namn
Response.Cookies("Adress") = Adress
Response.Cookies("Namn").Expires = DateAdd("m",1,Date)
Response.Cookies("Adress").Expires = DateAdd("m",1,Date)
%>
Och så här läser vi kakan :
<%
Dim Namn, Adress
Namn = Request.Cookies("Namn")
Adress = Request.Cookies("Adress")
Response.Write("Du heter " & Namn & "?<BR>")
Response.Write("Din adress " & Adress & "?<BR>")
%>
Om man ska spara mycket
information i en Kaka så är det ganska bökigt att använda expires till varje
kaka, det man gör då är att dela in kakorna i kategorier.
På detta sätt så får man en
bra struktur på sina kakor.
Ett exempel :
<%
Response.Cookies("Adress")("Gata") = "Stora vägen"
Response.Cookies("Adress")("PostNr") = "999 99"
Response.Cookies("Adress")("Ort") = "Stockholm"
Response.Cookies("Adress").Expires = DateAdd("yyyy",1,Date)
%>
Koden ovan skapar en grupp med namnet
"Adress", i den stoppar vi olika värden. Sen sätter vi expires på
hela gruppen adress.
För att läsa en sådan
cookie måste vi använda följande kod :
<% = Request.Cookies("Adress")("Ort") %>
Fler funktioner
Det finns även Domain,
Path och Secure som egenskaper till cookies.
Domain kan du ändra domän
som denna kaka tillhör och Path kan ställa in vilken sökväg denna cookie
tillhör, som standard är det startmappen på webbservern som gäller, vilket gör
att cookien funkar på alla undersidor och mappar på webbplatsen.
Secure kan du ändra till
True eller False. True innebär att kakan ska vara säker och endast skapas via
en sida som använder https (säkra sidor), om sidan ej körs via https så kommer
kakan ej att skapas. False är standard och innebär att den skapar cookien i
vilket fall som helst.
Lycka till!