JavaScript Cookies
Cookies (e.k. küpsised) kasutatakse tavaliselt kasutaja identifitseerimiseks.
Näited:
Cookie - 1
Cookie - 2
Mis asi on Cookie
Cookie on mingi andmeblokk mida säilitatakse sinu kompuutris. Kui kasutaja esitab päringu serverile siis saab ta sealt kaasa cooki'sid mis salvestatakse kasutaja arvutis. See on vajalik selleks, et järgmisel korral, sama päringu esitamisel, server juba "tunneb" kasutajat.
- Esimese osapoole cookie - See on kirjutatud sinu saidi dokumentidesse ning on loetav ainult seal.
- Kolmanda osapoole cookie - Lisatakse kolmanda osapoole poolt, näiteks reklaam.
- Sessiooni cookie - See pole otseselt faili sisse kirjutatud kuid mida hoitakse brauseris. Selline cookie töötab niikaua kuni brauser on avatud.
- Nimeline cookie - Kui külastaja esimest korda avab sinu veebilehe siis peab ta sisestama oma nime. Nimi säilitatakse cooki'na. Järgmisel korral kui külastaja tuleb sinu veebilehele siis saab ta tervitussõnumi. Näiteks: "Tere jälle, Juhan!". Nimi saadakse säilitatud cooki'de hulgast.
- Parooli cookie - Kui külastaja esimest korda avab sinu veebilehe siis peab ta sisestama parooli. Parool säilitatakse cooki'na. Järgmisel korral kui külastaja tuleb sinu veebilehele siis leitakse parool salvestatud cooki'de hulgast.
- Daatum cookie - Kui külastaja esimest korda avab sinu veebilehe siis hetke aeg säilitatakse cooki'na. Järgmisel korral kui külastaja tuleb sinu veebilehele siis saab ta sõnumi. Näiteks: "Sinu viimane külastus oli esmaspäeval 10. augustil, 2009". Daatum leitakse salvestatud cooki'de hulgast.
Cooki'de Tegemine ja Säilitamine
Selles näites luuakse cookie millega säiltatakse külastaja nimi.
Kõigepealt luuakse funktsioon mis salvestab külastaja nime:
function setCookie(c_name,value,expiredays) { var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()); }
Ülal toodud näites, funktsiooni parameetrid sisaldavad cookie nime, cookie väärtust ja päevade arvu kuni cookie ilmub.
Kõigepealt muudame kehtiva daatumi numbri. Seejärel lisame numbri mis määrab päevade arvu kuni cookie ilmub. Lõpuks salvestame cookie nime, cookie väärtuse ja lõpu daatumi dokumendis: "document.cookie object".
Nüüd loome teise funktsiooni mis kontrollib kas cookie on seadistatud:
function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "="); if (c_start!=-1) { c_start=c_start + c_name.length+1; c_end=document.cookie.indexOf(";",c_start); if (c_end==-1) c_end=document.cookie.length; return unescape(document.cookie.substring(c_start,c_end)); } } return ""; }
Ülal olev funktsioon kontrollib kõigepealt kas cookie on üldse salvestatud dokumenti "document.cookie object".
Lõpuks loome funktsiooni mis kuvab tervitusteksti või siis kuvab "prompt box'i" kuhu külastaja saab kirjutada oma nime:
function checkCookie() { username=getCookie('username'); if (username!=null && username!="") { alert('Welcome again '+username+'!'); } else { username=prompt('Please enter your name:',""); if (username!=null && username!="") { setCookie('username',username,365); } } }
Kogu kood näeb välja selline:
<html> <head> <script type="text/javascript"> function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "="); if (c_start!=-1) { c_start=c_start + c_name.length+1; c_end=document.cookie.indexOf(";",c_start); if (c_end==-1) c_end=document.cookie.length; return unescape(document.cookie.substring(c_start,c_end)); } } return ""; } function setCookie(c_name,value,expiredays) { var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()); } function checkCookie() { username=getCookie('username'); if (username!=null && username!="") { alert('Welcome again '+username+'!'); } else { username=prompt('Please enter your name:',""); if (username!=null && username!="") { setCookie('username',username,365); } } } </script> </head> <body onLoad="checkCookie()"> </body> </html>
Ülal toodud kood käivitab funktsiooni "checkCookie()" siis kui lehekülg laeb alla.

