A webfejlesztés során elengedhetetlen, hogy a felhasználók számára kényelmes és dinamikus élményeket biztosítsunk. Ehhez a PHP-ban található szuperglobális változók, mint a $_COOKIE
és $_SESSION
, kulcsfontosságú szerepet játszanak. Ezen változók segítségével könnyedén tárolhatunk adatokat a felhasználók böngészőjében (cookie-k), illetve a szerveren (session), így lehetővé téve például a felhasználói beállítások megjegyzését vagy a bejelentkezési állapot követését. Ebben a cikkben bemutatjuk, hogyan használhatjuk ezeket a szuperglobálisokat, és mikor melyiket érdemes alkalmazni.
Mi az a COOKIE és SESSION változó?
A $_COOKIE
és $_SESSION
változók mindkettő a PHP szuperglobális változói közé tartoznak, de más-más célra szolgálnak.
- COOKIE: A cookie-k olyan kis adatcsomagok, amelyeket a szerver küld a felhasználó böngészőjébe, és amelyek a böngészőben tárolódnak. A cookie-k lehetőséget biztosítanak arra, hogy a felhasználó által preferált adatokat hosszabb időn keresztül megőrizzük, például a felhasználói beállításokat vagy a felhasználó azonosítóját. A cookie-k időtartama meghatározott, és a böngésző bezárásakor is megmaradnak, amennyiben azokat nem töröljük.
- SESSION: A session az adatokat a szerveren tárolja, és a felhasználó böngészőjében csupán egy egyedi azonosítót (session ID) tartalmaz. A session lehetővé teszi, hogy az alkalmazás az adatokat a felhasználó böngészőjének újratöltése vagy a weboldal navigációja során is megtartsa, de a session élettartama korlátozott, és az élettartam lejártával a session adatok törlődnek.
COOKIE használata PHP-ban
A cookie-k nagyon hasznosak, ha az adatok hosszabb ideig történő tárolására van szükség, például amikor a felhasználó bejelentkezik, és a rendszernek meg kell jegyeznie a bejelentkezési állapotot a következő látogatáskor.
PHP-ban a cookie létrehozása a setcookie()
függvénnyel történik. Nézzünk meg egy példát:
<?php // Cookie beállítása setcookie("felhasznalo_nev", "JohnDoe", time() + 3600, "/"); // 1 óra múlva lejár echo "A cookie létrehozva!"; ?>
A fenti kódban egy „felhasznalo_nev” nevű cookie-t hozunk létre, amely 1 óráig tárolja a „JohnDoe” értéket. A cookie a weboldal gyökerében lesz elérhető, mivel a /
az elérési útvonal.
A cookie értékét a $_COOKIE
szuperglobális változóval érhetjük el:
<?php // Cookie olvasása if(isset($_COOKIE["felhasznalo_nev"])) { echo "A cookie értéke: " . $_COOKIE["felhasznalo_nev"]; } else { echo "A cookie nem található."; } ?>
Ez a kód ellenőrzi, hogy létezik-e a „felhasznalo_nev” cookie, és ha igen, kiírja annak értékét. Ha a cookie nem létezik, akkor egy üzenetet jelenít meg.
SESSION használata PHP-ban
A session segítségével a szerver oldalon tárolhatunk adatokat, így azok a felhasználó böngészőjén keresztül nem láthatóak. A session ideális például bejelentkezési állapotok, kosár tartalma, vagy egyéb felhasználói információk tárolására.
A session használatához először el kell indítanunk a session-t a session_start()
függvénnyel:
<?php // Session indítása session_start(); // Adatok tárolása a session-ben $_SESSION["felhasznalo_nev"] = "JohnDoe"; echo "A session adat létrehozva!"; ?>
Ebben a példában egy „felhasznalo_nev” kulcsot adunk a session-hoz, amely tartalmazza a „JohnDoe” értéket. A session élettartama addig tart, amíg a felhasználó böngészőjét bezárja, vagy a session lejár.
A session változókhoz a $_SESSION
szuperglobális változóval férhetünk hozzá:
<?php // Session adat elérése session_start(); if(isset($_SESSION["felhasznalo_nev"])) { echo "A session értéke: " . $_SESSION["felhasznalo_nev"]; } else { echo "A session nem található."; } ?>
Ez a kód kiírja a session-ban tárolt „felhasznalo_nev” értéket, ha létezik. Ha a session adat nem található, akkor egy másik üzenetet jelenít meg.
Video: PHP COOKIE és SESSION használata
A PHP COOKIE és SESSION szuperglobális változókról szóló részletes bemutatót a következő videóban nézheted meg:
Összegzés
A COOKIE és SESSION szuperglobális változók a PHP-ban lehetővé teszik, hogy adatokat tároljunk a felhasználó böngészőjében vagy a szerveren. A cookie-k ideálisak hosszabb távú adatkezeléshez, míg a session lehetővé teszi a dinamikus és biztonságos adatkezelést, amely nem látható a felhasználó számára. A megfelelő változó használata a feladat típusától és biztonsági igényeitől függ. Ha többet szeretnél megtudni a PHP szuperglobális változókról, nézd meg a fenti videót!