Работа с cookies в Javascript

Данные функции Javascript позволяют работать с переменными cookies - устанавливать и получать значение необходимой переменной. В языке Javascript нет стадартных функций для этого, однако при разработке иногда возникает необходимость в этих функциях. Я решил поделиться своими функциями.

Эти функции работают с Javascript-объектом document.cookie. Для установки переменной cookies, это переменной присваивается строка вида

name=value; path=/; expires=Mon, 01-Jan-1970 00:00:00 GMT

Указывается имя переменной (name), значение (value), область страниц на которых она доступна (Например, /), а также дата, когда истекает срока действия этой переменной (Например, Mon, "01-Jan-1970 00:00:00 GMT").

Для получения значения переменной cookies нужно в объекте document.cookie найти нужную переменную. Там они хранятся в виде строки:

name=value;name=value;name=value; 

Установка переменной cookies
function setCookie(name, value, expiredays, path, domain, secure) {
   if (expiredays) {
      var exdate=new Date();
      exdate.setDate(exdate.getDate()+expiredays);
      var expires = exdate.toGMTString();
   }
   document.cookie = name + "=" + escape(value) +
   ((expiredays) ? "; expires=" + expires : "") +
   ((path) ? "; path=" + path : "") +
   ((domain) ? "; domain=" + domain : "") +
   ((secure) ? "; secure" : "");
}

Получение значения переменной cookies
function getCookie(name) {
   var cookie = " " + document.cookie;
   var search = " " + name + "=";
   var setStr = null;
   var offset = 0;
   var end = 0;
   if (cookie.length > 0) {
      offset = cookie.indexOf(search);
      if (offset != -1) {
         offset += search.length;
         end = cookie.indexOf(";", offset)
         if (end == -1) {
            end = cookie.length;
         }
         setStr = unescape(cookie.substring(offset, end));
      }
   }
   return setStr;
}

Пример использования
setCookie("username", "Test", 30, "/");  
// Установит переменную username в значение "Test".
// Срок действия переменной 30 дней, доступна с любой страницы этого сайта

var user = getCookie("username");
// Вернёт значение "Test"
 

1 Октября 2008 г.