COOKIES
Áno. Cookies su v doslovnom preklade koláčiky. Ale ,to čo vlastne cookies sú ,sme si povedali v článku o superglobálnych premenných. Ale opakovanie je matka múdrosti.Č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.
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).Ako sme si v článku o superglobálnych premenných povedali , $_COOKIES je vlastne pole ,ktorého prvkom je hodnota cookie. Viac už napovie príklad :
Príklad 23
<?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 24
<?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.
Články
Predošlý článok : 8. Práca so súbormi
Nasledujúci článok : 10. Session
Odkazy
Stiahnite si príklady vypracované v článku
Komentáre