Mi a Cookie?
A cookie egy kicsi fájl, amelynek maximális mérete 4KB, amelyet a webszerver az ügyfélszámítógépen tárol.
A cookie beállítása után az összes ezt követő oldalkérés visszaadja a cookie nevét és értékét.
A süti csak abból a domainből olvasható el, ahonnan kiadták. Például a www.guru99.com tartományt használó cookie-készlet nem olvasható ki a karjer.guru99.com tartományból.
Az interneten található webhelyek többsége más domainek elemeit jeleníti meg, például a hirdetést. Az ezeket az elemeket kiszolgáló domainek saját sütiket is beállíthatnak. Ezeket harmadik fél sütiként ismerjük.
A felhasználó által létrehozott cookie-k csak számára láthatók. Más felhasználók nem láthatják az értékét.
A legtöbb webböngészőben lehetőség van a cookie-k, a harmadik féltől származó sütik vagy mindkettő letiltására.
Ebben az esetben a PHP úgy válaszol, hogy továbbítja a cookie tokent az URL-ben.
Az alábbi ábra szemlélteti a sütik működését.
Itt,
1) A felhasználó egy olyan oldalt kér, amely sütiket tárol
2) A szerver beállítja a cookie-t a felhasználó számítógépén
3) A felhasználó egyéb oldalkérései visszaadják a cookie nevét és értékét
Ebben az oktatóanyagban megtanulja-
- Miért és mikor kell használni a sütiket?
- Cookie-k készítése
- A Cookie érték lekérése
- Törölje a sütiket
- Mi az a munkamenet?
- Miért és mikor érdemes használni a Session-eket?
- Munkamenet létrehozása
- Munkamenet-változók megsemmisítése
Miért és mikor kell használni a sütiket?
-
A Http hontalan protokoll; A cookie-k lehetővé teszik számunkra, hogy a felhasználó számítógépén tárolt kis fájlok segítségével nyomon kövessük az alkalmazás állapotát.
A cookie-k tárolási útvonala a böngészőtől függ.
Az Internet Explorer általában az Temporal Internet Files mappában tárolja őket.
-
A felhasználói élmény személyre szabása - ez úgy érhető el, hogy lehetővé teszi a felhasználók számára, hogy kiválasszák preferenciáikat.
A követni kívánt oldal személyre szabott, a sütikben megadott beállítások alapján.
- A felhasználó által meglátogatott oldalak követése
Cookie-k készítése
Most nézzük meg a cookie készítéséhez használt alapvető szintaxist.
ITT,
- A php „setcookie” a sütik létrehozásához használt PHP funkció.
- A „cookie_name” annak a cookie-nak a neve, amelyet a szerver használni fog, amikor lekéri az értékét a $ _COOKIE tömb változóból. Ez kötelező.
- A „cookie_value” a cookie értéke és kötelező
- A „[lejárati idő]” opcionális; használható a süti lejárati idejének, például 1 órának a beállítására. Az idő beállítása a PHP time () funkciók segítségével plusz vagy mínusz 0 másodpercnél nagyobb másodpercek száma, azaz idő () + 3600 1 órán keresztül.
- A „[cookie_path]” opcionális; használható a kiszolgáló cookie elérési útjának beállítására. Az előrejelzett perjel „/” azt jelenti, hogy a süti elérhetővé válik a teljes tartományban. Az alkönyvtárak korlátozzák a cookie-k hozzáférését az aldomainhez.
- A „[domain]” opcionális, használható a cookie-hozzáférési hierarchia meghatározására, azaz a www.cookiedomain.com teljes tartományt jelent, míg a www.sub.cookiedomain.com a cookie-k hozzáférését a www.sub.cookiedomain.com oldalra és annak alcsoportjára korlátozza. domainek. Vegye figyelembe, hogy lehetséges egy aldomain aldomainje, amennyiben az összes karakter nem haladja meg a 253 karaktert.
- A „[biztonságos]” opcionális, az alapértelmezett érték hamis. Arra használják, hogy a cookie-t https-en keresztül küldjék-e, ha igazra van állítva, vagy http-re, ha hamisra van állítva.
- A „[Httponly]” opcionális. Ha igazra van állítva, akkor csak az ügyféloldali szkriptnyelvek, azaz a JavaScript nem férhet hozzá.
Megjegyzés: A php set cookie függvényt a HTML nyitó címke előtt kell végrehajtani.
Most nézzünk meg egy példát, amely sütiket használ.
Létrehozunk egy alapprogramot, amely lehetővé teszi számunkra, hogy a felhasználói nevet egy tíz másodperc múlva lejáró cookie-ban tároljuk.
Az alábbi kód a fenti „cookies.php” példa megvalósítását mutatja.
Kimenet:
the cookie has been set for 60 seconds
A Cookie érték lekérése
Hozzon létre egy másik „cookies_read.php” nevű fájlt a következő kóddal.
Kimenet:
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )
Megjegyzés: A $ _COOKIE egy szuper globális változóba épített PHP.
Ez tartalmazza az összes beállított sütik nevét és értékét.
Az értékek száma, amelyek
A $ _COOKIE tömb tartalmazhat a php.ini fájlban beállított memória méretét.
Az alapértelmezett érték 1 GB.
Alkalmazásunk tesztelése.
Tegyük fel, hogy a PHP fájlokat a phptus mappába mentette.
- 1. lépés - nyissa meg a böngészőt, és írja be az URL címet : http: //localhost/phptuts/cookies_read.php
Megjegyzés: Csak egy üres tömb jelenik meg
- 2. lépés - Böngésző a következő URL-re : http: //localhost/phptuts/cookies.php
- 3. lépés - Váltson vissza az első fülre, majd kattintson a Frissítés gombra
Várjon egy percet, majd kattintson ismét a Frissítés gombra. Milyen eredményeket ért el?
Törölje a sütiket
- Ha meg akarja semmisíteni a cookie-kat annak lejárati ideje előtt, akkor a lejárati időt egy már letelt időre állítja.
- Hozzon létre egy új, cookie_destroy.php nevű fájlt a következő kóddal
- Ismételje meg a fenti szakasz 1-3. Lépését a cookie-értékek lekérésével kapcsolatban.
- Nyissa meg az URL címet : http: //localhost/phptuts/cookie_destroy.php
- Váltás az URL-re : http: //localhost/phptuts/cookies_read.php milyen eredményeket jelenít meg?
Mi az a munkamenet?
- A munkamenet a szerveren tárolt globális változó.
- Minden munkamenethez egyedi azonosítót rendelünk, amelyet a tárolt értékek lekérésére használunk.
- Munkamenet létrehozásakor az egyedi munkamenet-azonosítót tartalmazó süti a felhasználó számítógépén tárolódik, és minden kéréssel visszakerül a szerverhez. Ha az ügyfélböngésző nem támogatja a cookie-kat, akkor az egyedi php session azonosító megjelenik az URL-ben
- A munkamenetek képesek viszonylag nagy adatok tárolására a sütikhez képest.
- A munkamenet értékei automatikusan törlődnek, amikor a böngésző bezárul. Ha véglegesen szeretné tárolni az értékeket, akkor tárolja azokat az adatbázisban.
- Csakúgy, mint a $ _COOKIE tömb változó, a munkamenet változókat is a $ _SESSION tömb változó tárolja. A sütikhez hasonlóan a munkamenetet minden HTML-címke előtt el kell kezdeni.
Miért és mikor érdemes használni a Session-eket?
- Fontos információkat, például a felhasználói azonosítót szeretne biztonságabban tárolni a szerveren, ahol a rosszindulatú felhasználók nem tudnak temperálni velük.
- Értékeket szeretne átadni egyik oldalról a másikra.
- A cookie-kat nem támogató böngészőkön kívánja használni a sütik alternatíváját.
- A globális változókat hatékonyan és biztonságosabb módon szeretné tárolni, összehasonlítva az URL-ben történő továbbítással
- Olyan alkalmazást fejleszt, mint egy bevásárlókocsi, amelynek ideiglenesen 4KB-nál nagyobb kapacitású információkat kell tárolnia.
Munkamenet létrehozása
Munkamenet létrehozásához először meg kell hívnia a PHP session_start függvényt, majd el kell mentenie értékeit a $ _SESSION tömb változóba.
Tegyük fel, hogy szeretnénk tudni, hányszor töltöttek be egy oldalt, ehhez használhatunk munkamenetet is.
Az alábbi kód megmutatja, hogyan lehet értékeket létrehozni és lekérni a munkamenetekből
Kimenet:
You are visitor number 1
Munkamenet-változók megsemmisítése
A session_destroy () függvény a teljes Php szekcióváltozó megsemmisítésére szolgál.
Ha csak egy munkamenet egyetlen elemét akarja megsemmisíteni, akkor használja az unset () függvényt.
Az alábbi kód szemlélteti a két módszer használatát.
A Session_destroy eltávolítja az összes munkamenetadatot, beleértve a munkamenethez társított sütiket is.
Az Unset csak az egyes munkamenet-változókat szabadítja fel.
Egyéb adatok sértetlenek maradnak.
Összegzés
- A sütik a felhasználó számítógépére mentett kis fájlok
- A sütik csak a kibocsátó domainről olvashatók el
- A sütiknek lehet lejárati ideje, ha nincs beállítva, akkor a cookie a böngésző bezárásakor lejár
- A munkamenetek olyanok, mint a szerveren tárolt globális változók
- Minden munkamenet egyedi azonosítót kap, amelyet a felhasználók változóinak követésére használnak.
- Mind a cookie-kat, mind a munkameneteket el kell indítani, mielőtt bármilyen HTML-címkét elküldenének a böngészőbe.