Session PHP & Cookies PHP s příkladem

Obsah:

Anonim

Co je to cookie?

Cookie je malý soubor s maximální velikostí 4 kB, který webový server ukládá v klientském počítači.

Jakmile je soubor cookie nastaven, všechny následující požadavky na stránku vrátí název a hodnotu souboru cookie.

Soubor cookie lze číst pouze z domény, ze které byl vydán. Například soubor cookie využívající doménu www.guru99.com nelze číst z domény career.guru99.com.

Většina webových stránek na internetu zobrazuje prvky z jiných domén, jako je reklama. Domény obsluhující tyto prvky mohou také nastavit své vlastní soubory cookie. Tyto soubory se nazývají soubory cookie třetích stran.

Cookie vytvořený uživatelem může být viditelný pouze pro něj. Ostatní uživatelé nevidí jeho hodnotu.

Většina webových prohlížečů má možnosti deaktivace cookies, cookies třetích stran nebo obou.

Pokud tomu tak je, pak PHP odpoví předáním tokenu cookie v URL.

Níže uvedený diagram ukazuje, jak fungují soubory cookie.

Tady,

1) Uživatel požaduje stránku, která ukládá cookies

2) Server nastaví soubor cookie na počítači uživatele

3) Další požadavky na stránku od uživatele vrátí název a hodnotu cookie

V tomto výukovém programu se naučíte

  • Proč a kdy používat soubory cookie?
  • Vytváření souborů cookie
  • Načítání hodnoty cookie
  • Smazat cookies
  • Co je to relace?
  • Proč a kdy používat relace?
  • Vytvoření relace
  • Zničení proměnných relace

Proč a kdy používat soubory cookie?

  • Http je protokol bez státní příslušnosti; cookies nám umožňují sledovat stav aplikace pomocí malých souborů uložených v počítači uživatele.

    Cesta, kam jsou soubory cookie uloženy, závisí na prohlížeči.

    Internet Explorer je obvykle ukládá do složky Temporal Internet Files.

  • Přizpůsobení uživatelského prostředí - toho lze dosáhnout tím, že uživatelům umožníte vybrat si své preference.

    Požadovaná stránka, která následuje, je přizpůsobena na základě nastavených předvoleb v souborech cookie.

  • Sledování stránek navštívených uživatelem

Vytváření souborů cookie

Podívejme se nyní na základní syntaxi použitou k vytvoření souboru cookie.

TADY,

  • Php „setcookie“ je funkce PHP používaná k vytvoření cookie.
  • „Cookie_name“ je název cookie, který server použije při načítání jeho hodnoty z proměnné pole $ _COOKIE. Je to povinné.
  • „Cookie_value“ je hodnota souboru cookie a jeho povinná hodnota
  • „[Expiry_time]“ je volitelné; lze jej použít k nastavení doby vypršení platnosti souboru cookie, například 1 hodiny. Čas se nastavuje pomocí funkcí PHP time () plus nebo minus o počet sekund větší než 0, tj. Time () + 3600 po dobu 1 hodiny.
  • „[Cookie_path]“ je volitelný; lze jej použít k nastavení cesty cookie na serveru. Přední lomítko „/“ znamená, že soubor cookie bude zpřístupněn v celé doméně. Podadresáře omezují přístup souborů cookie k subdoméně.
  • „[Doména]“ je volitelná, lze ji použít k definování hierarchie přístupu k souborům cookie, tj. Www.cookiedomain.com znamená celou doménu, zatímco www.sub.cookiedomain.com omezuje přístup k souborům cookie na www.sub.cookiedomain.com a její sub domén. Všimněte si, že je možné mít subdoménu subdomény, pokud celkový počet znaků nepřekročí 253 znaků.
  • „[Zabezpečené]“ je volitelné, výchozí hodnota je nepravdivá. Používá se k určení, zda je soubor cookie odesílán prostřednictvím protokolu https, pokud je nastaven na hodnotu true, nebo http, pokud je nastaven na hodnotu false.
  • „[Httponly]“ je volitelné. Pokud je nastavena na hodnotu true, nebudou k nim mít přístup pouze skriptovací jazyky na straně klienta, tj. JavaScript.

Poznámka: Funkce cookie sady php musí být provedena před otevírací značkou HTML.

Podívejme se nyní na příklad, který používá soubory cookie.

Vytvoříme základní program, který nám umožní ukládat uživatelské jméno do cookie, jehož platnost vyprší po deseti sekundách.

Níže uvedený kód ukazuje implementaci výše uvedeného příkladu „cookies.php“.

Výstup:

the cookie has been set for 60 seconds

Načítání hodnoty cookie

Vytvořte další soubor s názvem „cookies_read.php“ s následujícím kódem.

Výstup:

Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )

Poznámka: $ _COOKIE je PHP zabudované do super globální proměnné.

Obsahuje názvy a hodnoty všech nastavených cookies.

Počet hodnot, které

Pole $ _COOKIE může obsahovat závisí na velikosti paměti nastavené v php.ini.

Výchozí hodnota je 1 GB.

Testování naší aplikace.

Předpokládejme, že jste uložili soubory PHP do složky phptus.

  • Krok 1 - otevřete webový prohlížeč a zadejte adresu URL http: //localhost/phptuts/cookies_read.php

Poznámka: Bylo zobrazeno pouze prázdné pole

  • Krok 2 - Prohlížeč adresy URL http: //localhost/phptuts/cookies.php

  • Krok 3 - Přepněte zpět na první kartu a poté klikněte na tlačítko obnovení

Počkejte minutu a poté znovu klikněte na tlačítko obnovení. Jaké výsledky jste získali?

Smazat cookies

  • Pokud chcete cookie zničit před vypršením doby, nastavíte dobu vypršení platnosti na čas, který již uplynul.
  • Vytvořte nový soubor s názvem cookie_destroy.php s následujícím kódem
  • Při načítání hodnot cookie opakujte kroky 1 až 3 z výše uvedené části.
  • Otevřete adresu URL http: //localhost/phptuts/cookie_destroy.php
  • Přepnout na URL http: //localhost/phptuts/cookies_read.php jaké výsledky zobrazuje?

Co je to relace?

  • Relace je globální proměnná uložená na serveru.
  • Každé relaci je přiřazeno jedinečné ID, které se používá k načtení uložených hodnot.
  • Kdykoli je vytvořena relace, cookie obsahující jedinečné ID relace je uložena v počítači uživatele a vrácena s každým požadavkem na server. Pokud prohlížeč klienta nepodporuje soubory cookie, zobrazí se v adrese URL jedinečné ID relace php
  • Relace mají kapacitu ukládat relativně velká data ve srovnání s cookies.
  • Hodnoty relace jsou automaticky odstraněny, když je prohlížeč zavřen. Pokud chcete hodnoty uložit trvale, měli byste je uložit do databáze.
  • Stejně jako proměnná pole $ _COOKIE jsou proměnné relace uloženy v proměnné pole $ _SESSION. Stejně jako soubory cookie musí být relace zahájena před všemi značkami HTML.

Proč a kdy používat relace?

  • Chcete bezpečněji ukládat důležité informace, jako je ID uživatele, na server, kde se uživatelé se zlými úmysly nemohou s nimi vyrovnat.
  • Chcete předávat hodnoty z jedné stránky na druhou.
  • Chcete alternativu k souborům cookie v prohlížečích, které nepodporují soubory cookie.
  • Chcete uložit globální proměnné efektivněji a bezpečněji ve srovnání s jejich předáváním v adrese URL
  • Vyvíjíte aplikaci, jako je nákupní košík, který musí dočasně ukládat informace s kapacitou větší než 4 kB.

Vytvoření relace

Chcete-li vytvořit relaci, musíte nejprve zavolat funkci PHP session_start a poté uložit své hodnoty do proměnné pole $ _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á relace má jedinečné identifikační ID, které se používá ke sledování proměnných pro uživatele.
  • Před odesláním jakýchkoli značek HTML do prohlížeče je nutné spustit soubory cookie i relace.