cookies

28 апреля, 2020 | Сам себе программист

Мы рассматриваем php + js

Работа с cookies с php

Установить cookie для всего сайта, php:

setCookie('name', 'value', time() + 3600, '/', 'sapid.info');

Получить куки по имени:

htmlspecialchars($_COOKIE["name"])

Получить все куки в цикле:

 

Работа с cookies с js

Установить куки для всего сайта:

$.cookie(name, 'some_text', { expires: 7, path: '/'} );

Получить куки по названию:

alert($.cookie(name));

Скрипты в качестве примера:

<script type="text/javascript">
function getCookie(name) {
  let matches = document.cookie.match(new RegExp(
    "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
  ));
  return matches ? decodeURIComponent(matches[1]) : undefined;
}

function setCookie(name, value) {
    options = {
        path: '/',
        secure: true,
        'max-age': 3600,
        'domain' : '.domain.com.ua'
    };
    if (options.expires instanceof Date) {
        options.expires = options.expires.toUTCString();
    }
    let updatedCookie = encodeURIComponent(name) + "=" + encodeURIComponent(value);
    for (let optionKey in options) {
        updatedCookie += "; " + optionKey;
        let optionValue = options[optionKey];
        if (optionValue !== true) {
            updatedCookie += "=" + optionValue;
        }
    }
    document.cookie = updatedCookie;
}
</script>

Установка куки работает как:

setCookie('name', '0');

Считывание соответственно:

getCookie("name") // - получить
parseInt(getCookie("name"), 10) // - округлить до целого
( parseInt(getCookie("name"), 10) || 0 ) // - проверяем установлены ли числовые куки

 

Предыдущий пост Следующий пост