Вы можете авторизоваться через ВКонтакте, Фейсбук и оставить комментарий


JavaScript setcookie getcookie

Вступление

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

setcookie, getcookie

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/**
 * Определяет значение куки
 * Функция идентична 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 секунд

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

Куки на 3 дня

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

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

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

Куки на 2 года

1
2
setcookie('cookie2years''Cookie будет жить 2 года', (new Date).getTime() + (2 * 365 * 24 * 60 * 60 * 1000));
alert(getCookie('cookie2years'));
Опубликовано: 15 мая 2011  ·  Автор: Артём Фёдоров  ·  7127 просмотров

Категория

ГлавнаяПрограммированиеJavaScriptJavaScript setcookie getcookie

Чтобы оставить комментарий нужно авторизоваться на сайте
или войти через ВКонтакте или Фейсбук

Войти через ФейсбукВойти через Твиттер

Комментарии

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

© 2010-2017 expange.ru
При полном или частичном копировании статей сайта, ссылка на источник обязательна.

Хотите узнать больше информации, пишите на: artem@expange.ru

Полезное онлайн  ·  Новости  ·  Изображения  ·  Статьи по датам

О проекте  ·  Правила пользования  ·  Представительства

Благодарности и пожелания