В веб-программировании 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.