Cookie rešitev

Če to berete, ste verjento že potrdili, da se strinjate s piškotki na moji strani. Hvala vam :-))

Kako sem to rešil?

Baje da obstajajo neki plugini, ampak je že tako, da imam raje lastne rešitve kot tuje. Vsaj vem kaj počnem. Pa vedno je priložnost, da se kaj novega naučim. Evo, tako sem se lotil.

V .htaccess sem dodal par pravil (številke so za komentiranje, in ne smejo biti vpisane v .htaccess datoteko):

1. #cookie
2. RewriteCond %{HTTP_COOKIE} !npm\=1 [NC]
3. RewriteCond %{QUERY_STRING} npm\=1 [NC]
4. RewriteRule ^(.*)$ $1 [CO=npm:1:.primer.si:2563200:/,R,L]
5. 
6. RewriteCond %{HTTP_COOKIE} !npm\=1 [NC]
7. RewriteRule . cookie.html [L]

V drugem bloku [6-7] pogledam, ali se je uporabnik strinjal z uporabo piškotkov. To zapišem v poseben piškotek, v mojem primeru ima ime “npm” in vrednost 1. Oboje lahko nastavite, kakor vam paše. Če se uporabnik še NI strinjal, mu pokažem posebno cookie stran, kjer ga seznanim z piškotki in prosim za dovoljenje. Vsebina strani, je navedena spodaj. Če se uporabnik strinja s piškotki, pokličem isto stran z dodatnim parametrom (npm=1 – ni nobene potrebe, da je isto kot cookie, v mojem primeru pa je. Lahko bi bilo tudi pv=ab).

V prvem bloku [2-4] pa preverim ali ima uporabnik že piškot (to niti ni obvezno) in, če kot parameter obstaja npm=1, potem uporabniku nastavim dogovorjen piškot in stran ponovno naložim. Sedaj pride uporabnik nazaj na isto stran, vendar tokrat že z piškotom, ki določa da so piškoti dovoljeni, in uporabnik normalno nadaljuje brskanje.

Če se boste odločili za enako rešitev, ne pozabi spremeniti domeno v vrstici 4. In da se parameter v cookie.html in .htaccess ujema. Ter da se ime in vsebina pikotka v 2., 4. in 6. vrstici ujemajo.

Seveda ta zadeva verjetno ni najbolj prijazna do iskalnikov. Ne vem. Morda so dovolj pametni, morda ne. Ampak zaenkrat se glede tega ne bom sekiral. Res ne. Morda kdaj, ko bom imel dovolj časa.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<style>
body {width: 500px;margin:0 auto;}
</style>
</head>
<body>
<script>
  function bakecookie() {
    if (window.location.search=="") window.location.search = "?npm=1";
    else window.location.search += "&npm=1";
  }
</script>
<br /><br />
<h1>Site title</h1>
<br /><br />
<a href="https://www.ip-rs.si/novice/detajl/informacijski-pooblascenec-izdal-smernice-glede-uporabe-piskotkov">Zakonodaja</a>,
izhajajoč iz evropskih direktiv zahteva, da od uporabnikov pridobimo dovoljenje za uporabo piškotkov (cookies).
Ob tem se <a href="https://www.ip-rs.si/varstvo-osebnih-podatkov/informacijske-tehnologije-in-osebni-podatki/piskotki-odgovori-na-pogosta-vprasanja/">pojavljajo pogosta vprašanja</a>
in informacijski pooblaščenec je podal <a href="https://www.ip-rs.si/varstvo-osebnih-podatkov/informacijske-tehnologije-in-osebni-podatki/piskotki-odgovori-na-pogosta-vprasanja/">pogoste odgovore</a>.
<br /><br />
Ali dovolite, da spletno mesto vašemu brskalniku pošlje zahtevo za shranjevanje piškotka (cookie)?
Kaj bo z zahtevo naredil vaš brskalnik je odvisno katerega uporabljate, in kakšne imate nastavitve.
<br /><br />

<center>

<button onclick="bakecookie();">Da, strinjam se</button>
</center>

<br /><br />

Brez tega dovoljenja, žal stran ne bo dostopna.<br />
<br /><br />
Če pa vam gumbek zgoraj ne dela, pa kliknite tule:
<a href="?npm=1">Da, strinjam se</a>
</body>

PS: Ne nagradno vprašanje. Zakaj sem za ime piškotkov in parametrov izbral ravno te tri znake?