Vytvorenie Cookie v PHP: Príklad a Vysvetlenie

PHP (Hypertext Preprocessor) je skriptovací jazyk, ktorý sa používa najmä na vývoj webových aplikácií. Približne 77% webových stránok beží na PHP. Ak sa chcete naučiť vytvárať interaktívne weby alebo pracovať s databázami, PHP je skvelým miestom, kde začať. PHP je jedným z najpopulárnejších programovacích jazykov na tvorbu dynamických webových stránok.

Vitajte v štvrtej časti nášho seriálu o PHP! Po tom, čo sme sa naučili základy PHP, podmienky, cykly a spracovanie formulárov, je čas sa posunúť ďalej a pripojiť naše PHP aplikácie k databáze. V tejto časti sa naučíme, ako pracovať s databázou MySQL, čo je najbežnejší systém na správu relačných databáz, ktorý sa používa v kombinácii s PHP.

Moderné webové aplikácie často potrebujú „zapamätať“ si používateľa medzi jednotlivými stránkami - či už ide o prihlásenie, personalizáciu obsahu alebo nákupný košík. V PHP sa na to používajú dve základné technológie: cookies a sessions.

Čo sú súbory cookie? A ako fungujú | Vysvetlenie pre začiatočníkov!

Čo sú Cookies?

Cookies sú výlučne vecou programovacieho jazyka. Súbory cookies vznikli v 90. rokoch 20. storočia ako reakcia na potrebu stránok pamätať si informácie o užívateľovi. Majú svoju významnú úlohu pri zabezpečovaní dobrej užívateľskej skúsenosti na internete. Napriek tomu ich mnoho ľudí považuje za akýchsi „sledovateľov“ a vinníkov za narušenie súkromia.

Cookies sú v podstate malé dátové balíčky, ktoré si váš prehliadač ukladá, keď navštívite webovú stránku. Slúžia na to, aby si webová stránka zapamätala informácie o vás, ako napríklad vaše prihlasovacie údaje, nastavenia alebo predchádzajúce aktivity.

Cookie je vlastne typ premennej, ktorá je špecifická pre teba ako užívateľa. Tzn. ja pri návšteve tejto svojej stránky mám iné cookies ako ty.To je úplne normálne, ba dokonca toto je zmysel cookies.

Cookies sa ukladajú v prehliadači používateľa. Obsahujú jednoduché údaje, ako je napríklad meno používateľa alebo preferovaný jazyk.

Existujú rôzne typy cookies:

  • Cookies prvej strany: Tieto cookies nastavuje webová stránka, ktorú priamo navštevujete. Používajú sa na zlepšenie používateľského zážitku na danej stránke.
  • Cookies tretích strán: Tieto cookies nastavujú iné domény, ako je doména webovej stránky, ktorú navštevujete. Často sa používajú na sledovanie vašej aktivity na internete a zobrazovanie cielenej reklamy.
  • Session cookies: Tieto cookies sú dočasné a vymažú sa, keď zatvoríte prehliadač. Používajú sa na zapamätanie si informácií počas jednej návštevy webovej stránky.
  • Persistent cookies: Tieto cookies zostávajú vo vašom počítači aj po zatvorení prehliadača. Používajú sa na zapamätanie si vašich preferencií pre budúce návštevy webovej stránky.

Uvedieme si príklad zo života. Ja idem na alza.sk aj ty. Ja dám do košíka počítač a ty mobil. Ako je možné, že na rovnakej URL adrese máme ja a ty iné produkty v košíku? No jedine na základe cookies a sessions.

Session (v preklade - sedenie) je vlastne to isté čo cookies, len sa ukladá na server a rýchlejšie sa maže. Cookies sa uloží do tvojho PC, z ktorého aktuálne pozeráš konkrétny web ako malý .txt súbor niekde do vyrovnávacej pamäte. Ani ho nenájdeš, ak nevieš ako na to.

Na rozdiel od sessions, cookies majú striktne určený tzv. expiration date, čiže dobu uplynutia. Tá je štandardne 30 dni. Po 30 dňoch sa teda cookies tak či tak vymažú. V praxi sa potom cookies využívajú na držanie produktov v košíku, zapamätanie prihlásenia (keď pri prihlásení zaškrtneš ten checkbox „Zapamätať prihlásenie“, tak sa uloží cookies s tokenom, ktorý ťa pri opätovnom prístupe identifikuje a prihlási bez zadávania mena a hesla).

Základné cookies, teda funkčné cookies, majú na starosť základné funkcie vášho webu (napríklad uloženie tovaru v košíku na e-shope, zapamätanie naposledy prečítaného článku atď.). Sú nevyhnutné pre správne fungovanie webovej stránky, preto o nich návštevníka vášho webu stačí aj po 1. 2. 2022 informovať.

Marketingové cookies sa využívajú na lepšie zacielenie reklám (napríklad remarketing, teda spätné oslovenie používateľa, ktorý už na vašom webe bol, na inom kanáli prostredníctvom platenej reklamy) a na ich personalizáciu. Aby ste mohli tento typ cookies daného používateľa použiť, musíte k tomu od 1. 2. 2022 získať jeho súhlas.

Analytické cookies vám umožňujú sledovať návštevy vašich webových stránok a aplikácií a tiež to, koľko používateľov kliklo na odkaz na vašom webe či využilo niektorú z jeho funkcií. Typicky ide o štatistiky návštevnosti ako Google Analytics. Preferenčné cookies zase umožňujú, aby si váš web zapamätal preferencie daného užívateľa a mohol sa mu prispôsobiť. Zaistí sa tak pohodlné používanie vášho webu, ktorý si pamätá nastavenie jazyka, meny a ďalších preferencií používateľov. Na zhromažďovanie týchto dvoch typov cookies budete od 1. 2. 2022 potrebovať súhlas.

Od 1. februára 2022 ale budete potrebovať výslovný a informovaný súhlas užívateľa na to, aby ste cookies mohli zhromažďovať. Po príchode na web by mal byť užívateľ opýtaný, čo presne o ňom môže byť zhromažďované. Následne musí mať možnosť si aktívne vybrať, aké informácie vám prostredníctvom cookies o svojej aktivite na vašom webe poskytne. Pokiaľ si nevyberie nič, bude možné zhromažďovať len funkčné cookies, teda cookies nevyhnutné na to, aby sa zaistili technické funkcie webovej stránky.

Súhlas používateľa so zhromažďovaním cookies nesmie byť podmienkou, aby na web mohol vôbec vstúpiť.Správnou cestou nie je ani časté a agresívne vyskakovanie okna, kde o súhlas opakovane žiadate či umiestnenie lišty tak, aby užívateľovi prekážala pri prehliadaní webu (hovorí sa tomu cookie wall, kedy sa obsah webu nepriehľadne zakryje vyskakovacím oknom). Naopak užívateľovi poskytnite možnosť, aby jednoduchým spôsobom mohol lištu odstrániť bez toho, aby súhlas udelil (napríklad kliknutím na krížik na zatvorenie).

Ak dáte návštevníkovi možnosť, aby si pomocou začiarknutia checkboxov jednoducho vybral, aké typy cookies o ňom môžete zhromažďovať, nesmú byť podľa princípu opt-in checkboxy predzaškrtnuté.

Je nutné tiež spísať dokument, ktorý bude užívateľovi poskytovať informácie o tom, ako cookies spracovávate. Odkaz na tento dokument by sa mal nachádzať priamo v cookie lište.

Sessions (relácie) sa ukladajú na serveri a identifikujú používateľa pomocou unikátneho ID (session ID), ktoré sa prenáša medzi stránkami. Sessions sú vhodné na krátkodobé ukladanie citlivejších informácií (napr. prihlasovacie údaje).

Ako Vytvoriť Cookie v PHP?

Na nastavenie cookie v PHP použite funkciu setcookie().

<?php$cookie_name = "user";$cookie_value = "Janko Hraško";setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 deň?>

Tento príklad vytvorí cookie s názvom "user" a hodnotou "Janko Hraško". Cookie bude platné 30 dní.

Parametre funkcie setcookie():

  • name: Názov cookie.
  • value: Hodnota cookie.
  • expire: Čas expirácie cookie (v sekundách od 1. januára 1970).
  • path: Cesta, pre ktorú je cookie platné ("/" znamená pre celý web).
  • domain: Doména, pre ktorú je cookie platné.
  • secure: Ak je nastavené na TRUE, cookie sa prenáša iba cez HTTPS.
  • httponly: Ak je nastavené na TRUE, cookie je prístupné iba cez HTTP protokol, nie cez JavaScript.

Príklad použitia:

<?phpif(!isset($_COOKIE[$cookie_name])) { echo "Cookie '" . $cookie_name . "' nebola nastavená!";} else { echo "Cookie '" . $cookie_name . "' je nastavená!<br>"; echo "Hodnota: " . $_COOKIE[$cookie_name];}?>

Po nastavení cookie môžete pristupovať k jeho hodnote pomocou superglobálnej premennej $_COOKIE.

Príklad: Prihlásenie Používateľa pomocou Cookies

Cookies a sessions sú nenahraditeľné nástroje pri tvorbe dynamických webových aplikácií. Cookies sa hodia na dlhodobé preferencie, zatiaľ čo sessions sú bezpečným spôsobom, ako spravovať stav prihlásenia.

Formulár na prihlásenie:

<form method="post"> Meno: <input type="text" name="meno"><br> Heslo: <input type="password" name="heslo"><br> <input type="submit" value="Prihlásiť"></form>

PHP kód na spracovanie prihlásenia a nastavenie cookie:

<?phpif ($_SERVER["REQUEST_METHOD"] == "POST") { $meno = $_POST["meno"] ?? ""; $heslo = $_POST["heslo"] ?? ""; // Overenie mena a hesla (tu by mala byť logika overenia) if ($meno == "admin" && $heslo == "password") { setcookie("prihlaseny_user", $meno, time() + (86400 * 30), "/"); echo "Vitaj späť, " . $meno . "!<br>"; } else { echo "Nesprávne meno alebo heslo.<br>"; }}if (isset($_COOKIE["prihlaseny_user"])) { echo "Prihlásený ako: " . $_COOKIE["prihlaseny_user"] . "<br>";}?>

GDPR a Cookies

Aby toho nebolo málo, od februára 2022 musíš dať ešte aj užívateľovi na výber, ktoré cookies chceš a ktoré nechceš. Delia sa prakticky na niekoľko kategórií, napr. nevyhnutné, marketingové a pod. Môžeš si na každej stránke vyberať, ktoré chceš a ktoré nechceš použiť. Podľa môjho názoru v roku 2023 odmietať akékoľvek cookies, je ako odmietať klimatizáciu v aute. Proste na smiech.

Každopádne, cookies sú vecou programovacieho jazyka, musí byť na výber, čo si človek chce a čo nechce aktivovať, ktorý typ cookies. Nemá to absolútne nič spoločné s tvojim biznisom, ani tvojou firmou. Je to vecou programátora, aby to spravil tak, ako to má byť, a aby to bolo funkčné.

GDPR (General Data Protection Rules) naproti tomu je dokument, ktorý s webom prakticky nemusí mať nič spoločné. GDPR by totiž mal mať každý, kto spracováva osobné údaje. Samozrejme, je to bullshit a nikto to nerobí. Webová stránka však potrebuje mať vypracovaný GDPR dokument vtedy, ak dochádza k interakcií s užívateľom.

Pokiaľ si firma / živnostník, môže byť dosť prúser, ak GDPR nemáš, resp. ak ho máš zle. GDPR, ako som uviedol vyššie, nie je vecou webovej stránky, ale vecou firmy! Teda GDPR potrebuješ aj na prijímacie pohovory, aj na xy iných príležitosti, aj v offline svete. Proste vždy, keď pracuješ s cudzími osobnými údajmi. A práve preto ja nie som ten, kto ti dokáže vytvoriť GDPR dokument. Je to právna vec a ja nie som právnik. Božechráň!

Takéto veci sa riešia vždy na mieru, ja predsa nemôžem vedieť, či ty po získaní osobných údajov si ich nevytlačíš a neotapetuješ s nimi dom z vonkajšej strany napríklad… 🙂 V praxi sa možno stretneš s kódermi a vývojarmi, ktorí budú bohorovne tvrdiť, že ti za 50€ „spravia“ GDPR. Pozor na to.

Ich „spravenie“ GDPR totiž znamená, že ukradnú GDPR z nejakej podobnej - konkurenčnej firmy a údaje zmenia na tvoje. Môže, ale aj nemusí to byť v poriadku. Pokuty za GDPR sa hýbu až v nepochopiteľne vysokých sumách (odvodzujú sa od HDP krajiny). Takže dvakrát si rozmysli, či to zveríš fušerovi, alebo niekomu, čo tomu naozaj rozumie.

K stránke od klienta potrebujem GDPR, ktoré sa týka stránky. Toť vsio. Niektoré firmy, ktoré produkujú GDPR sú miestami moc hyperaktívne a vpisujú do GDPR aj informácie o cookies, je to úplne zbytočné. Tie firmy totiž nemôžu vedieť, ktoré cookies stránka bude, a ktoré nebude používať. To neviem dopredu ani ja, až pri spustení stránky sa pustí scan, ktorý nájde presne tie cookies, ktoré web používa (napr.Toto žiaden právnik dopredu nemôže vedieť, lebo nevie ani, čo to je. Takže právnik nech dodá GDPR pre web, tam sa píše, čo ty ako majiteľ webu môžeš a nemôžeš robiť s údajmi užívateľa a cookies nech nechá na mňa.

Prečo Vymazávať Cookies?

Existuje niekoľko dôvodov, prečo by ste mali pravidelne vymazávať cookies:

  • Ochrana súkromia: Cookies môžu obsahovať informácie o vašej aktivite na internete, ktoré sa môžu použiť na sledovanie vašich záujmov a zobrazovanie cielenej reklamy. Vymazaním cookies obmedzíte množstvo informácií, ktoré o vás webové stránky zbierajú.
  • Riešenie problémov: Niekedy môžu cookies spôsobovať problémy s webovými stránkami, napríklad zobrazenie nesprávneho obsahu alebo nefunkčné funkcie. Vymazanie cookies môže tieto problémy vyriešiť.
  • Uvoľnenie miesta na disku: Hoci sú cookies malé, postupom času sa ich môže nahromadiť veľké množstvo a zaberať miesto na disku. Vymazanie cookies môže uvoľniť miesto na disku.
  • Zlepšenie výkonu prehliadača: Príliš veľa cookies môže spomaliť prehliadač. Pravidelné vymazávanie cookies môže zlepšiť jeho výkon.

Ako Vymazať Cookies v Rôznych Prehliadačoch?

Proces vymazania cookies sa líši v závislosti od prehliadača, ktorý používate. Tu je návod na vymazanie cookies v najpopulárnejších prehliadačoch:

Google Chrome

  1. Otvorte prehliadač Google Chrome.
  2. Kliknite na ikonu troch bodiek (⋮) v pravom hornom rohu okna.
  3. Vyberte možnosť "Ďalšie nástroje" a potom "Vymazať údaje prehliadania...". Prípadne môžete použiť klávesovú skratku Ctrl + Shift + Delete (Windows) alebo Cmd + Shift + Delete (Mac).
  4. V okne "Vymazať údaje prehliadania" vyberte časové obdobie. Môžete vybrať "Posledná hodina", "Posledných 24 hodín", "Posledných 7 dní", "Posledné 4 týždne" alebo "Od začiatku". Pre úplné vymazanie cookies vyberte možnosť "Od začiatku".
  5. Začiarknite políčko "Súbory cookie a iné údaje webových stránok". Uistite sa, že ostatné políčka (napríklad "História prehliadania", "Uložené heslá") sú odznačené, ak ich nechcete vymazať.
  6. Kliknite na tlačidlo "Vymazať údaje".

Mozilla Firefox

  1. Otvorte prehliadač Mozilla Firefox.
  2. Kliknite na ikonu troch vodorovných čiar (☰) v pravom hornom rohu okna.
  3. Vyberte možnosť "Nastavenia".
  4. V ľavom paneli vyberte možnosť "Súkromie a zabezpečenie".
  5. V časti "Cookies a dáta stránok" kliknite na tlačidlo "Vymazať dáta...".
  6. Začiarknite políčko "Cookies a dáta stránok". Uistite sa, že políčko "Obsah webu v pamäti" je odznačené, ak nechcete vymazať uložené obrázky a súbory.
  7. Kliknite na tlačidlo "Vymazať". Potvrďte vymazanie kliknutím na tlačidlo "Vymazať teraz".

Microsoft Edge

  1. Otvorte prehliadač Microsoft Edge.
  2. Kliknite na ikonu troch bodiek (…) v pravom hornom rohu okna.
  3. Vyberte možnosť "Nastavenia".
  4. V ľavom paneli vyberte možnosť "Súkromie, vyhľadávanie a služby".
  5. V časti "Vymazať údaje prehliadania" kliknite na tlačidlo "Vyberte, čo chcete vymazať".
  6. Vyberte časové obdobie z rozbaľovacieho menu "Časové obdobie". Môžete vybrať "Posledná hodina", "Posledných 24 hodín", "Posledných 7 dní", "Posledné 4 týždne" alebo "Od začiatku". Pre úplné vymazanie cookies vyberte možnosť "Od začiatku".
  7. Začiarknite políčko "Súbory cookie a iné údaje stránok". Uistite sa, že ostatné políčka sú odznačené, ak ich nechcete vymazať.
  8. Kliknite na tlačidlo "Vymazať teraz".

Safari (macOS)

  1. Otvorte prehliadač Safari.
  2. Kliknite na "Safari" v hornom menu.
  3. Vyberte možnosť "Nastavenia...".
  4. Kliknite na kartu "Súkromie".
  5. Kliknite na tlačidlo "Spravovať údaje webových stránok...".
  6. Kliknite na tlačidlo "Odstrániť všetky". Potvrďte vymazanie kliknutím na tlačidlo "Odstrániť teraz".

Safari (iOS - iPhone, iPad)

  1. Otvorte aplikáciu "Nastavenia".
  2. Prejdite nadol a nájdite "Safari".
  3. Prejdite nadol a klepnite na "Vymazať históriu a dáta webových stránok".
  4. Potvrďte vymazanie klepnutím na "Vymazať históriu a dáta".

Alternatívne Metódy Vymazania Cookies

Okrem manuálneho vymazania cookies prostredníctvom nastavení prehliadača existujú aj alternatívne metódy:

  • Použitie klávesovej skratky: Vo väčšine prehliadačov môžete použiť klávesovú skratku Ctrl + Shift + Delete (Windows) alebo Cmd + Shift + Delete (Mac) na priame otvorenie okna na vymazanie údajov prehliadania.
  • Použitie rozšírení prehliadača: Existujú rôzne rozšírenia prehliadača, ktoré vám umožňujú automaticky vymazávať cookies pri zatvorení prehliadača alebo v pravidelných intervaloch. Príklady takýchto rozšírení sú "Cookie AutoDelete" alebo "EditThisCookie".
  • Použitie softvéru na čistenie systému: Existuje softvér na čistenie systému, ako napríklad CCleaner, ktorý vám umožňuje vymazať cookies, dočasné súbory a iné nepotrebné dáta z vášho počítača.

Tipy na Správu Cookies

Okrem vymazania cookies existujú aj spôsoby, ako ich spravovať a kontrolovať, ktoré cookies sa ukladajú do vášho počítača:

  • Blokovanie cookies tretích strán: Väčšina prehliadačov umožňuje blokovať cookies tretích strán, čím sa obmedzí sledovanie vašej aktivity na internete.
  • Používanie súkromného režimu prehliadania: Súkromný režim prehliadania (napríklad "Inkognito" v Chrome alebo "Súkromné okno" vo Firefoxe) neukladá cookies, históriu prehliadania ani iné údaje.
  • Nastavenie výnimiek: Môžete nastaviť výnimky pre konkrétne webové stránky, ktoré chcete povoliť ukladať cookies, aj keď máte blokované cookies tretích strán.
  • Pravidelná kontrola nastavení prehliadača: Pravidelne kontrolujte nastavenia prehliadača a uistite sa, že máte nastavené správne preferencie pre správu cookies.

Vitajte v štvrtej časti nášho seriálu o PHP! Po tom, čo sme sa naučili základy PHP, podmienky, cykly a spracovanie formulárov, je čas sa posunúť ďalej a pripojiť naše PHP aplikácie k databáze. V tejto časti sa naučíme, ako pracovať s databázou MySQL, čo je najbežnejší systém na správu relačných databáz, ktorý sa používa v kombinácii s PHP.

Ak máte záujem o prezenčné alebo online školenie programovania v PHP, pozrite si našu ponuku na www.like-it.sk.

tags: #vytvorenie #cookie #v #php #príklad

Populárne príspevky: