В веб-программировании cookie означают небольшой фрагмент данных, который отправляется со стороны сервера в браузер пользователя. Могут быть использованы для сохранения настроек, к примеру, таких как аутентификация пользователя, данные сеанса, персональных настроек.
Как известно javascript исполняется в браузере пользователя, наряду с этим есть возможность работы с cookies непосредственно в браузере клиента. Давайте рассмотрим два примера, которые мы можем использовать для работы с cookies. В первом примере мы рассмотрим функцию, которая позволяет задавать cookies в браузере пользователя. Во втором примере мы рассмотрим, как подучить данные cookies.
Установка cookies в браузер из javascript:
function setCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
var expires = "; expires=" + date.toGMTString();
}
else var expires = "";
document.cookie = name + "=" + escape(value) + expires + "; path=/";
}
Функция задает cookies в браузере, в котором исполняется код. В качестве параметров функции передается параметры name,value,days. Назначение этих параметров, следующее name – имя cookie, value – значение параметра, days – время жизни cookie, указывается в днях.
Как прочитать значение cookies в браузере из javascript:
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
function readCookie(cookieName) {
var re = new RegExp('[; ]'+cookieName+'=([^\\s;]*)');
var sMatch = (' '+document.cookie).match(re);
if (cookieName && sMatch) return unescape(sMatch[1]);
}
Функция getCookie получает значение cookies в браузере. В качестве параметра c_name функции передается имя cookie. Функция readCookie считывает непосредственно значение cookie.