Jak już większość z Was zapewne wie, kilka dni temu (22 marca 2013) weszły w życie nowe regulacje prawne dotyczące plików cookies na stronach. Od tego dnia każda witryna, na której wykorzystywane są ciasteczka zobowiązana jest poinformować o tym fakcie użytkownika. Zauważyłem, że w sieci można już zakupić skrypty, które wyświetlają odwiedzającym odpowiednią treść. Jaki jest natomiast problem, aby napisać taki samodzielnie?
Raz, dwa, trzy…
Nie ma co się rozpisywać o kodzie poniższego skryptu. Jest on na tyle prosty, że każdy webmaster go zrozumie. Jeśli natomiast ktoś ma problemy, może po prostu skopiować go i zapisać jako cookie.js w głównym katalogu serwera. Następnie wystarczy zainicjować go w sekcji <head></head>.
// Proszę nie zmieniać żadnego komentarza w kodzie
// Jest to warunek legalnego wykorzystania
//
// Autor skryptu - Hubert 'Komeniusz' Grabowski
// Wersja 1.0
// http://blog.grabowski.ostrowwlkp.pl
// http://blog.grabowski.ostrowwlkp.pl/webmastering/skrypt-informujacy-o-wykorzystywaniu-cookies-na-stronie
//
// Funkcje pomocnicze pobrane z
// http://www.w3schools.com/js/js_cookies.asp
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
$(document).ready(function() {
var message = 'Używamy plików cookies, aby ułatwić Ci korzystanie z naszego serwisu oraz do celów statystycznych. Jeśli nie blokujesz tych plików, to zgadzasz się na ich użycie oraz zapisanie w pamięci urządzenia. Pamiętaj, że możesz samodzielnie zarządzać cookies, zmieniając ustawienia przeglądarki.';
var message2 = 'ROZUMIEM, NIE POKAZUJ WIĘCEJ TEGO OKNA.';
var div = '<div class="cookie-alert" style="position:relative;top:0;width:100%;text-align:center;background-color:#000000;color:#FFFFFF;opacity:0.8;font-size:13px;font-weight:bold;font-family:tahoma;padding-top:20px;padding-bottom:10px;"><div style="width:800px;margin:0 auto;">'+message+'<br /><br /><span style="color:red;cursor:pointer;" class="cookie-alert2">'+message2+'</span></div></div>';
var ciastko = getCookie('cookie-alert');
if(ciastko != 1) {
$('body').prepend(div);
}
$('.cookie-alert2').click(function() {
$('.cookie-alert').slideUp('slow');
setCookie('cookie-alert', 1, 365);
});
});
Kod do umieszczenia w sekcji <head></head>:
Uwaga!
Aby skrypt działał prawidłowo, należy wcześniej dołączyć bibliotekę jQuery (jeśli strona z niej nie korzysta).
29 marca 2013 dnia 23:43
Witam, dzięki wielkie za kodzik. Działa jak trzeba 🙂
31 marca 2013 dnia 20:03
Podobny skrypt można znaleźć na politykacookies.pl
Skrypt oczywiście Darmowy
2 kwietnia 2013 dnia 10:50
Mało osób lubi znaki wodne 🙂
3 kwietnia 2013 dnia 20:57
Jaka subtelna reklama. 🙂
4 kwietnia 2013 dnia 17:18
Na dwóch stronach skrypt ładnie działa, a na trzeciej nie… Jakaś podpowiedź dlaczego może tak być?
5 kwietnia 2013 dnia 13:57
Napisz proszę do mnie na maila (znajdziesz go w zakładce kontakt), postaram się zdiagnozować przyczynę.
7 kwietnia 2013 dnia 18:02
Wielkie dzięki. Bardzo miło, że udostępniłeś ten dobry skrypt nie próbując na nim od razu zarobić jak wielu spammerów komentarzowych próbujących w ten sposób wstawić komuś reklamy na stronę
8 kwietnia 2013 dnia 11:25
Witam. Jestem początkujący prośba o info, co jeżeli nie mam polskich znaków w komunikacie ?
9 kwietnia 2013 dnia 11:54
Musisz sprawdzić poprawność kodowania znaków w pliku oraz zadeklarować ją w znaczniku meta. Spróbuj także umieścić znacznik
9 kwietnia 2013 dnia 14:27
Witam.
Dziękuje bardzo za skrypt. Mam jednak pytanie, w jaki sposób przedłużyć akceptację „polityki ciasteczkowej”? Obecnie jest to 1 (jeden) dzień?
9 kwietnia 2013 dnia 18:30
Witam,
Bardzo dziękuję za skrypt. Jestem kompletnie zielona w tych sprawach, ale szybko musiałam stworzyć stronę, a teraz dobiły mnie te cookie. Mam pytanie odnośnie skryptu. Zrobiłam wszystko tak jak w instrukcji, ale pojawia się błąd skryptu. Dokładnie chodzi o 33 wiersz.”wartość właściwości $, jest pusta lub niezdefiniowana, nie jest obiektem Function”. O co chodzi? Proszę o pomoc 🙂 PS gdzie tę bibliotekę się dołącza?
10 kwietnia 2013 dnia 09:57
Problem polega na tym, iż nie dołączyłaś do sekcji
biblioteki jQuery. Prawidłowe jej dołączenie polega jedynie na umieszczeniu jej PRZED umieszczeniem skryptu z ciasteczkami. Kod powinien zatem wyglądać tak, że najpierw wklejasz script z jQuery, a następnie ten z ciasteczkami.10 kwietnia 2013 dnia 16:27
Witam,
Dziękuję za skrypt.Mam tylko mały problem a mianowicie baner
z informacją nie chce się zamykać.W czym może tkwić problem?
Pozdrawiam
10 kwietnia 2013 dnia 18:57
Zapewne z powodu braku jQuery 🙂
12 kwietnia 2013 dnia 23:31
Witam skrypt bardzo fajny mam tylko jedno pytanie jak zrobić aby można było wstawić np. linka do strony z polityką prywatności jak to mają na innych stronach?
13 kwietnia 2013 dnia 09:24
Wystarczy zmodyfikować zmienną message.
17 kwietnia 2013 dnia 18:19
to znaczy jak zmodyfikować bo zielony jestem?
a musi być ta polityka prywatności czy nie??
pozdrawiam.
18 kwietnia 2013 dnia 09:51
Jeśli dalej masz problemy z edycją wartości zmiennej, zapraszam do zapoznania się z czwartą lekcją mojego kursu JavaScript, w którym poruszyłem temat zmiennych. Inaczej nie jestem w stanie pomóc.
5 maja 2013 dnia 09:00
Fajny skrypt. Ale czy można go używać w witrynach komercyjnych? A i jeszcze jedno ważne pytanie: czy za jakiś czas pokażą się w nim jakieś reklamy?
5 maja 2013 dnia 10:44
Tak, można. Proszę jedynie zachować komentarz w kodzie, w formie niezmienionej. I nie, nie pojawią się żadne reklamy 🙂
12 maja 2013 dnia 08:40
Witam
Wstawiłem skrypt i działa ale nie wyświetla mi prawidłowo polskich znaków a konkretnie „ą” i „ś” . Proszę o pomoc.
12 maja 2013 dnia 09:26
Witam. Proszę o odpowiednie ustawienie deklaracji strony kodowej (np. utf-8) oraz zapisaniu plików strony jak i skryptu w tym samym kodowaniu. Proszę również o dołączenie skryptu po deklaracji ustalonego wcześniej kodowania.
14 maja 2013 dnia 18:55
Co, Ja tu robię? Dziękuję skrypt działa 🙂
23 maja 2013 dnia 21:15
Dzień dobry!
Czy można zrobić tak, aby komunikat ukazywał się u dołu strony?
Pozdrawiam i dziękuję za tą pracę, jest bardzo pomocna.
7 czerwca 2013 dnia 18:10
Oczywiście, żaden problem 🙂
7 czerwca 2013 dnia 21:44
dla mnie problem, sam nie potrafię. Czy może pan podpowiedzieć? Dzięki z góry
8 czerwca 2013 dnia 14:31
Chociażby pozycja fixed i bottom z wartością 0 w CSS załatwią sprawę
10 września 2013 dnia 19:27
Ja trochę z innej beczki. Otóż szału mażna dostać od ciągłego zamykania okna z informacją o wykorzystywaniu cookies każdej z witryn. Kto to wymyślił i po co. Przecież większośc witryn nie działa po wyłączeniu ciasteczek, więc jeśli chcę się normalnie korzystać z internetu, to trzeba zezwolić na cookies.
10 września 2013 dnia 22:05
Jednym słowem – idiotyzm rządzących. Wymyślają rzeczy, o których nie mają pojęcia.