Čo je to cookie?
Cookie je malý súbor s maximálnou veľkosťou 4 kB, ktorý webový server ukladá v klientskom počítači.
Po nastavení súboru cookie vrátia všetky nasledujúce žiadosti o stránku názov a hodnotu súboru cookie.
Cookie je možné čítať iba z domény, z ktorej bol vydaný. Napríklad súbor cookie nastavený pomocou domény www.guru99.com nie je možné načítať z domény career.guru99.com.
Väčšina webových stránok na internete zobrazuje prvky z iných domén, ako je napríklad reklama. Domény slúžiace týmto prvkom môžu tiež nastavovať svoje vlastné cookies. Tieto súbory cookie sú známe ako súbory cookie tretích strán.
Cookie vytvorené používateľom môže byť viditeľné iba pre neho. Ostatní používatelia nevidia jeho hodnotu.
Väčšina webových prehliadačov má možnosti zakázania súborov cookie, súborov cookie tretích strán alebo oboch.
Ak je to tak, potom PHP odpovie odovzdaním tokenu súborov cookie do adresy URL.
Diagram zobrazený nižšie ilustruje fungovanie súborov cookie.
Tu,
1) Používateľ požaduje stránku, ktorá ukladá cookies
2) Server nastaví súbor cookie v počítači používateľa
3) Ostatné požiadavky na stránku od používateľa vrátia názov a hodnotu súboru cookie
V tomto návode sa naučíte
- Prečo a kedy používať súbory cookie?
- Vytváranie cookies
- Načítanie hodnoty súboru cookie
- Odstrániť súbory cookie
- Čo je to relácia?
- Prečo a kedy používať relácie?
- Vytvorenie relácie
- Zničenie premenných relácie
Prečo a kedy používať súbory cookie?
-
Http je protokol bez štátnej príslušnosti; cookies nám umožňujú sledovať stav aplikácie pomocou malých súborov uložených v počítači používateľa.
Cesta, kam sú súbory cookie uložené, závisí od prehliadača.
Internet Explorer ich zvyčajne ukladá do priečinka Temporal Internet Files.
-
Prispôsobenie používateľskej skúsenosti - to sa dosahuje tým, že sa používateľom umožní výber ich preferencií.
Požadovaná stránka, ktorá bude nasledovať, je prispôsobená na základe nastavených preferencií v súboroch cookie.
- Sledovanie stránok navštívených používateľom
Vytváranie cookies
Pozrime sa teraz na základnú syntax použitú na vytvorenie súboru cookie.
TU,
- Php „setcookie“ je funkcia PHP, ktorá sa používa na vytvorenie súboru cookie.
- „Cookie_name“ je názov súboru cookie, ktorý server použije pri načítaní jeho hodnoty z premennej poľa $ _COOKIE. Je to povinné.
- „Cookie_value“ je hodnota súboru cookie a je povinný
- „[Expiry_time]“ je voliteľné; môže sa použiť na nastavenie doby expirácie súboru cookie, napríklad 1 hodiny. Čas sa nastavuje pomocou funkcií PHP time () plus alebo mínus o počet sekúnd väčší ako 0, tj time () + 3600 na 1 hodinu.
- „[Cookie_path]“ je voliteľný; môže sa použiť na nastavenie cesty k súboru cookie na serveri. Lomka „/“ znamená, že súbor cookie bude k dispozícii na celej doméne. Podadresáre obmedzujú prístup súborov cookie do subdomény.
- „[Doména]“ je voliteľná, je možné ju použiť na definovanie hierarchie prístupu k súborom cookie, tj www.cookiedomain.com znamená celú doménu, zatiaľ čo www.sub.cookiedomain.com obmedzuje prístup k súborom cookie na www.sub.cookiedomain.com a jej sub domén. Upozorňujeme, že je možné mať subdoménu subdomény, pokiaľ celkový počet znakov nepresahuje 253 znakov.
- „[Zabezpečené]“ je voliteľné, predvolená hodnota je nepravdivá. Používa sa na určenie, či sa súbor cookie odosiela prostredníctvom protokolu https, ak je nastavený na hodnotu true, alebo http, ak je nastavený na hodnotu false.
- „[Httponly]“ je voliteľné. Ak je nastavená na hodnotu true, nebudú k nim mať prístup iba skriptovacie jazyky na strane klienta, tj. Jazyk JavaScript.
Poznámka: Funkcia cookie súboru php musí byť vykonaná pred úvodnou značkou HTML.
Pozrime sa teraz na príklad, ktorý používa súbory cookie.
Vytvoríme základný program, ktorý nám umožní uložiť meno používateľa do súboru cookie, ktorého platnosť vyprší po desiatich sekundách.
Nasledujúci kód ukazuje implementáciu vyššie uvedeného príkladu „cookies.php“.
Výkon:
the cookie has been set for 60 seconds
Načítanie hodnoty súboru cookie
Vytvorte ďalší súbor s názvom „cookies_read.php“ s nasledujúcim kódom.
Výkon:
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )
Poznámka: $ _COOKIE je PHP zabudované v super globálnej premennej.
Obsahuje názvy a hodnoty všetkých nastavených súborov cookie.
Počet hodnôt, ktoré
Pole $ _COOKIE môže obsahovať závisí od veľkosti pamäte nastavenej v php.ini.
Predvolená hodnota je 1 GB.
Testovanie našej aplikácie.
Predpokladajme, že ste svoje súbory PHP uložili do priečinka phptus.
- Krok 1 - otvorte webový prehliadač a zadajte adresu URL http: //localhost/phptuts/cookies_read.php
Poznámka: Bolo zobrazené iba prázdne pole
- Krok 2 - Prehliadač na adrese URL http: //localhost/phptuts/cookies.php
- Krok 3 - Prejdite späť na prvú kartu a potom kliknite na tlačidlo obnovenia
Počkajte minútu a potom znova kliknite na tlačidlo obnovenia. Aké výsledky ste dosiahli?
Odstrániť súbory cookie
- Ak chcete súbor cookie zničiť pred uplynutím času, nastavíte čas uplynutia platnosti na čas, ktorý už uplynul.
- Vytvorte nový súbor s názvom cookie_destroy.php s nasledujúcim kódom
- Opakujte kroky 1 až 3 z vyššie uvedenej časti týkajúce sa načítania hodnôt súborov cookie.
- Otvorte adresu URL http: //localhost/phptuts/cookie_destroy.php
- Prepnúť na URL http: //localhost/phptuts/cookies_read.php aké výsledky zobrazuje?
Čo je to relácia?
- Relácia je globálna premenná uložená na serveri.
- Každej relácii je priradené jedinečné ID, ktoré sa používa na načítanie uložených hodnôt.
- Kedykoľvek sa vytvorí relácia, súbor cookie obsahujúci jedinečné ID relácie sa uloží do počítača používateľa a vráti sa s každou požiadavkou na server. Ak prehliadač klienta nepodporuje súbory cookie, v adrese URL sa zobrazí jedinečné ID relácie php
- Relácie majú kapacitu na ukladanie relatívne veľkých údajov v porovnaní s cookies.
- Po zatvorení prehľadávača sa hodnoty relácie automaticky odstránia. Ak chcete hodnoty uložiť natrvalo, mali by ste ich uložiť do databázy.
- Rovnako ako premenná poľa $ _COOKIE, aj premenné relácie sa ukladajú do premennej poľa $ _SESSION. Rovnako ako súbory cookie, musí byť relácia zahájená pred akýmikoľvek značkami HTML.
Prečo a kedy používať relácie?
- Chcete uložiť bezpečnejšie dôležité informácie, ako napríklad ID používateľa, na server, na ktorom sa používatelia so zlými úmyslami nemôžu vyrovnať.
- Chcete prenášať hodnoty z jednej stránky na druhú.
- Chcete alternatívu k súborom cookie v prehľadávačoch, ktoré nepodporujú súbory cookie.
- Globálne premenné chcete ukladať efektívne a bezpečnejšie v porovnaní s ich odosielaním do adresy URL
- Vyvíjate aplikáciu, napríklad nákupný košík, ktorý musí dočasne ukladať informácie s kapacitou väčšou ako 4 kB.
Vytvorenie relácie
Ak chcete vytvoriť reláciu, musíte najskôr zavolať funkcii PHP session_start a potom uložiť svoje hodnoty do premennej poľa $ _SESSION.
Let’s suppose we want to know the number of times that a page has been loaded, we can use a session to do that.
The code below shows how to create and retrieve values from sessions
Output:
You are visitor number 1
Destroying Session Variables
The session_destroy() function is used to destroy the whole Php session variables.
If you want to destroy only a session single item, you use the unset() function.
The code below illustrates how to use both methods.
Session_destroy removes all the session data including cookies associated with the session.
Unset only frees the individual session variables.
Other data remains intact.
Summary
- Cookies are small files saved on the user’s computer
- Cookies can only be read from the issuing domain
- Cookies can have an expiry time, if it is not set, then the cookie expires when the browser is closed
- Sessions are like global variables stored on the server
- Každá relácia má jedinečné identifikačné ID, ktoré sa používa na sledovanie premenných pre používateľa.
- Pred odoslaním akýchkoľvek značiek HTML do prehliadača musia byť spustené súbory cookie aj relácie.