JavaScript setcookie getcookie

Вступление

В JavaScript нет функции, аналогичной функции setcookie в PHP. В джаваскрипте куки можно получить через переменную document.cookie. Для удобства работы с куки проще написать 2 функции — setcookie на определение и getcookie на получение значения.

setcookie, getcookie

/** * Определяет значение куки * Функция идентична PHP-функции bool setcookie(string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]]) * */ function setcookie(name, value, expires, path, domain, secure) { document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + (new Date(expires)) : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); } /** * Получить значение куки по имени name * */ 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); }

Применение

С первыми двумя переменными все понятно, а вот со временем существования куки немного сложнее. В PHP, параметр expires передается в секундах, с начала Юникс-эпохи, в JavaScript придется передавать в миллисекундах.

Передавать параметр expires проще всего следующим образом: (new Date).getTime() + миллисекунды.

1 секунда равна 1000 миллисекунд.

Куки на 10 секунд

setcookie('cookie10sec', 'Cookie будет жить 10 секунд', (new Date).getTime() + (10 * 1000)); alert(getcookie('cookie10sec'));

Куки на 3 дня

setcookie('cookie3days', 'Cookie будет жить 3 дня', (new Date).getTime() + (3 * 24 * 60 * 60 * 1000)); alert(getcookie('cookie3days'));

Куки на 6 месяцев

setcookie('cookie6months', 'Cookie будет жить 6 месяцев', (new Date).getTime() + (6 * 30 * 24 * 60 * 60 * 1000)); alert(getcookie('cookie6months'));

Куки на 2 года

setcookie('cookie2years', 'Cookie будет жить 2 года', (new Date).getTime() + (2 * 365 * 24 * 60 * 60 * 1000)); alert(getCookie('cookie2years'));

Категории

ПрограммированиеJavaScript

Читайте также

Комментарии