Cookies

 

Čo sú cookies ?

Je to nejaká informácia/údaj ,ktorú na žiadosť servera ,prehliadač uloží na užívateľovom počítači. Tieto informácie sa neskôr využijú pri opätovnom načítaní aplikácie. V týchto súboroch sú väčšinou uložené nejaké osobné nastavenia.

setcookie()

Touto funkciou cookie vytvoríme. Resp. vytvoríme informáciu ,ktorú na žiadosť servera (cez náš skript) , prehliadač uloží do súboru na klientskom počítači.
Keďže cookies patria k hlavičke komunikácie cez protokol HTTP musíme túto funkciu použiť , ešte pred akýmkoľvek výstupom skriptu. (ešte pred html tag <HTML>).

Syntax :

setcookie(„meno“,“hodnota“,“cas_platnosti“,“cesta“,“doména“,);

  • „meno“ – (povinný parameter)
    je meno cookie , toto meno neskôr využívame pri identifikácii cookie.
  • „hodnota“ – (povinný parameter)
    je hodnota ,ktorú chceme do cookie uložiť.
  • „cas_platnosti“ – (voliteľný parameter)
    určuje čas platnosti cookie. Definuje sa : time()+3600*24*30 nám nastaví platnosť na 30 dní. Funkcia time nám vráti počet sekúnd od 1.1.1970 a k tomu pripočítame platnosť cookie  – 3600 sekúnd (1 hodina)  * 24 hodín (1 deň) * 30 dní. Ak tento parameter nenastavíme platnosť cookie skončí keď ukončíme komunikáciu. (zavrieme prehliadač)
  • „cesta“ – (voliteľný parameter)
    nastavuje cestu pre ktorú platí cookie. Napr. ak by sme zadali „/skuska“ ,tak cookie by bolo platné len pre tento adresár a pre príslušné podadresáre. Ak zadáme „/“ cookie je platné pre celú doménu.
    Ak nezadáme nič, tak východzie nastavenie je ten adresár v ktorom je skript ,ktorý vytvára cookie.
  • „doména“ – (voliteľný parameter)
    nastavuje na akej doméne platí nastavené cookie. Napr. ak zadáme „.priklad.sk“ , tak cookie je dostupné na všetkých subdoménach servera „priklad.sk“ ,ale ak zadáme „www.priklad.sk“ , tak je cookie dostupné len na tejto doméne.

 

Jednoduchý príklad zápisu :

setcookie("pocet","30");

 

A ako vymažeme nastavené cookie ?

Ukážeme si to na predchádzajúcom zápise. Na mazanie koláčikov nemá PHP zvláštnu funkciu. Použijeme setcookie(). Ak by sme chceli vymazať vyššie definovaný cookie , zapíšeme :

setcookie(„pocet“,““);

Ale ak už chceme vymazať cookie ,ktorému sme nastavili platnosť , musíme mu nastaviť neplatnú platnosť (: …
setcookie(„pocet“,“30″,time()+3600); //nastavili sme cookie „pocet“ s platnosťou 1 den
setcookie(„pocet“,““,time()-3600); //vymazali sme cookie „pocet “ ,pretože mu platnosť vypršala pred 1 dňom (-3600)

 

PRÁCA S COOKIES

Teraz keď už vieme cookies vytvárať a odstraňovať , si môžme povedať ako narábať s údajmi cookies. Na načítanie týchto údajov sa používa superglobálna premenná $_COOKIES (v starších verziách $HTTP_VARS_COOKIES).
$_COOKIES je vlastne pole ,ktorého prvkom je hodnota cookie. Viac už napovie príklad :
Príklad:

<?php
 setcookie("kolacik","hodnota kolacika",time()+3600); //nastavíme cookie s platnosťou 1 hodinu
 ?>
 
 <html>
 <body>
 <?php
 if (isset($_COOKIE["kolacik"])) {  //použil som podmienku s isset k otestovaniu či je cookie nastavené
 echo $_COOKIE["kolacik"];     //vypíše hodnotu cookie s menom kolacik 
 setcookie("kolacik","",time()-3600);    //vymaže nastavené cookie
 }
 else {
 echo "cookie nie je definované !";
 }
 
 ?>
 </body>
 </html>

Tento kód nastaví cookie „kolacik“ , následne podmienka vyhodnotí ,že hodnota $_COOKIE existuje a vypíše hodnotu kolacik-a. A hneď na to ju vymaže a toto nastavenie platí. Čiže keď obnovíte stránku vypíše Vám to text „cookie nie je definované!“. Ale ak obnovíte stránku znova cookie už bude opäť nastavené.

Pri práci s cookies môžme využiť aj pole :
Príklad:

<?php
 setcookie("kolacik[1]","hodnota kolacika - pole 1",time()+3600);    // nastavime jednotlive prvky pola
 setcookie("kolacik[2]","hodnota kolacika - pole 2",time()+3600);
 ?>
 <html>
 <body>
 <?php
 if (isset($_COOKIE["kolacik"])) {
 
 foreach($_COOKIE["kolacik"] as $hodnota) {   //pomocou cyklu foreach vypíšeme jednotlivé prvky poľa
 echo $hodnota."<br />";
 }
 
 }
 else {
 echo "cookie nie je definované !";
 }
 
 ?>
 </body>
 </html>

To už je ku koláčikom snáď všetko. Na záver ešte musím spomenúť , že pri programovaní svojej aplikácie prihliadajte aj na to aby fungovala aj s variantou , ktorá nepoužíva koláčiky. Pretože tieto , si vie každý užívateľ vypnúť – tým pádom ich prehliadač ignoruje.