Cookie
Category: Cookie, JavaScript Code Examples, PHP code examples
Мы рассматриваем 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 ) // - проверяем установлены ли числовые куки
Хранение в cookie согласия пользователя
<?php if ( $_COOKIE["agreement"] != 'accepted') : ?> <div id="agreement"> Текст соглашения <span id="accepted">СОГЛАСЕН!</span> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> <script type="text/javascript"> $( document ).ready(function() { $( "#accepted" ).click(function() { var myDate = new Date(); myDate.setMonth(myDate.getMonth() + 12); document.cookie = "agreement=accepted; expires=" + myDate + "; domain=.mels.industries; path=/"; document.getElementById('agreement' ).style.display = 'none'; }); }); </script> <?php endif; ?>