Skrypt informujący o wykorzystywaniu cookies na stronie

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>:

<script type="text/javascript" src="cookie.js"></script>

Uwaga!

Aby skrypt działał prawidłowo, należy wcześniej dołączyć bibliotekę jQuery (jeśli strona z niej nie korzysta).

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="cookie.js"></script>

29 thoughts on “Skrypt informujący o wykorzystywaniu cookies na stronie

  1. Na dwóch stronach skrypt ładnie działa, a na trzeciej nie… Jakaś podpowiedź dlaczego może tak być?

  2. 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ę

  3. Witam. Jestem początkujący prośba o info, co jeżeli nie mam polskich znaków w komunikacie ?

    1. Musisz sprawdzić poprawność kodowania znaków w pliku oraz zadeklarować ją w znaczniku meta. Spróbuj także umieścić znacznik

  4. 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ń?

  5. 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?

    1. 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.

  6. 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

  7. 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?

  8. to znaczy jak zmodyfikować bo zielony jestem?
    a musi być ta polityka prywatności czy nie??
    pozdrawiam.

    1. 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.

  9. 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?

  10. Witam
    Wstawiłem skrypt i działa ale nie wyświetla mi prawidłowo polskich znaków a konkretnie „ą” i „ś” . Proszę o pomoc.

    1. 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.

  11. 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.

  12. 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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *