Notice: Undefined variable: this in /home/dimarini/public_html/libraries/src/Application/CMSApplication.php on line 441

JavaScript III част

Cookie в JavaScript

Така наречената "бисквитка" (cookie) е променлива, която се съхранява в компютъра на потребителя. С JavaScript могат да се създават и изтеглят стойностите на "бисквитките". Примери за тази променлива:

  • Име - При първо посещение понякога се изисква да се въведе име на потребителя. Това име се запазва в определена cookie. При следващо посещение се показва popup с приветствие като например "Добре дошъл Иван!". Това име се изтегля от съответната cookie.
  • Парола - При първо посещение понякога се изисква да се въведе парола на потребителя. Тази парола се запазва в определена cookie. При следващо посещение паролата се изтегля от съответната cookie.
  • Дата - При първо посещение на потребителя датата се записва в определена cookie. При следващо посещение потребителят може да получи съобщение като "Последното Ви посещение е на 22 февруари 2010 година!. Тази дата се изтегля от съответната cookie.
Създаване и съхраняване на cookie
Ще създадем и съхраним cookie с името на посетителя. Първо, създаваме функция с която да запомним името в променлива cookie. Параметрите на функцията setCookie са името, стойността и краен срок на cookie. След това, в самата функция, първо броя на дните се преобразуват в реална дата и след това се добавя броя на дните до крайния срок. След това се съхранява името, стойността и краен срок в обекта document.cookie. Втората функция getCookie е за проверка настройката на cookie. С тази функцията, първо се проверява дали въобще е запазена cookie в обекта document.cookie. Когато обекта document.cookie съдържа някакви cookie трябва да се провери дали е запазена съответната cookie. Ако бъде намерена се показва стойността и, ако ли не не се показва каквото и да било. Накрая се създава функция checkCookie, с която се показва приветствено съобщение ако съществува такава cookie, ако ли не се показва форма със запитване за името на потребителя (виж примера в браузъра):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Cookie в JavaScript </title>
<script type="text/javascript">
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 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 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>