> **Upozornenie:** Tento článok bol napísaný pred mnohými rokmi a niektoré informácie môžu byť zastarané alebo nesprávne. Majte to na pamäti pri čítaní.
Súbory cookie sú malé textové informácie uložené v prehliadači návštevníka webovej lokality. Prenášajú sa vždy s každou znovu načítanou stránkou a používateľ ich môže kedykoľvek vymazať, zmeniť a prečítať, takže nie sú vhodné na ukladanie osobných údajov.
Upozornenie: ak vaša webová stránka používa súbory cookie na sledovanie používateľov alebo doplnkov tretích strán (napr. tlačidlo Facebook like, merač návštevnosti Google Analytics, reklamné bannery), musíte o tom používateľa informovať.
"Ešte jedna poznámka: vaša stránka by nemala obsahovať reklamné alebo meracie kódy, kým nezískate súhlas. A to je na nič."
-- David Grudl
Všetky súbory cookie sú uložené v superglobálnej premennej $_COOKIE
, ktorá ukladá každý kľúč ako pole.
Ak sme napríklad uložili meno aktuálne prihláseného používateľa pod kľúčom user
v súbore cookie, môžeme ho ľahko získať:
echo $_COOKIE['používateľ'];
Upozornenie: Súbory cookie nemusia vždy existovať (napríklad ak ste nový používateľ). Preto by sme mali pred každým výpisom vždy skontrolovať existenciu súborov cookie a v prípade potreby ponúknuť alternatívne chybové hlásenie.
if (isset($_COOKIE['používateľ']) && $_COOKIE['používateľ']) {echo 'Prihlásený používateľ:' . $_COOKIE['používateľ'];} else {echo 'Nikto nie je prihlásený.';}
Keďže všetky súbory cookie sú uložené v superglobálnej premennej $_COOKIE
, možno ich jednoducho vypísať:
var_dump($_COOKIE);
Prípadne prejdite cyklus a získajte všetky kľúče a hodnoty:
foreach($_COOKIE as $key => $value) {echo $key . ':' . $value; // vypísať kľúč a hodnotuecho '<br>'; // zabalenie riadku}
Funkcia setcookie()
sa používa na ukladanie údajov do súborov cookie.
Prvým parametrom je kľúč cookie, ktorý sa použije na načítanie z poľa $_COOKIE
, a druhým parametrom sú samotné údaje vo forme reťazca.
Pomocou tretieho parametra môžeme (voliteľne) nastaviť obdobie platnosti, počas ktorého bude súbor cookie k dispozícii. Čas dostupnosti je uvedený ako timestamp, takže ak chceme nastaviť cookie s platnosťou 1 hodinu od tohto momentu, stačí napísať time() + 3600
.
$data = 'Niektorý obsah chceme uložiť.';setcookie('TestCookie', $data);setcookie('TestCookie', $data, time() + 3600);
Súbory cookie nie sú vhodné na ukladanie väčších údajov (prehliadače zvyčajne umožňujú uložiť len 4 kB a maximálne 20 súborov cookie, pričom veľkosť zahŕňa aj názvy súborov cookie, nastavenia platnosti atď.).
Je lepšie ukladať väčšie údaje na server a do súboru cookie vložiť len identifikátor, podľa ktorého vieme určiť, ktorému používateľovi patria. Táto metóda sa nazýva $_SESSION
a venujeme sa jej v samostatnom článku.
Ak nepotrebujete nevyhnutne ukladať údaje vždy synchrónne na server, môžete použiť localstorage úložisko dostupné v javascripte. Jeho kapacita je rádovo MB a údaje nepodliehajú exspirácii.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | sk