A cookie-król

A cookie-kat általában arra használjuk, hogy valamilyen adatot tároljunk a felhasználó gépén. Lehet ez jelszó, egy név, vagy bármi más. Már javascripttel is készíthetünk „süti”-ket, de én ezt nem részletezem, mert szerintem azzal kevesebb lehetőségünk van.

PHP-ben sütik küldésére két függvény is rendelkezésünkre áll: a setcookie() és a setrawcookie(). Az utóbbi annyiban különbözik az előzőtől, hogy utóbbi nem kódolja le a cookie értékét.

A cookiekat mindenképp az előtt kell beállítanunk a kliensnek, mielőtt bármilyen kimenetet vagy fejrészt (header: például.: <html><head>) küldenénk a böngészőnek. Ha a függvény végrehajtása valamilyen okból (például le vannak tiltva a cookie-k a kliens böngészőjében) nem sikerül, akkor az hamis (FALSE) értékkel tér vissza. Sikeres küldés esetén igaz (TRUE) értéket kapunk.
Ha a fejrészt előbb meghatároztuk, mint a cookie-t küldtük, akkor ezt a hibaüzenetet kapjuk:

hibaüzenet

Warning: Cannot modify header information – headers already sent by (output started at /pelda.php:2) in /pelda.php on line 3

Tehát ha késleltetni szeretnénk a kimeneteket, akkor használhatjuk az ob_start() és az ob_end_flush() függvényt.

Most, hogy ezzel megvagyunk beállíthatjuk a setcookie() függvényt, aminek a szintaxisa így néz ki:

szintaxis

<?php
setcookie ( cookie neve [, cookie értéke [, cookie érvényessége [, cookie útvonala a szerveren [, cookie domainje [, biztonság]]]]]);
?>

Ahol:
cookie neve – Ez az egyetlen kötelező argumentum, a többi opcionális. Ezt használjuk majd adataink visszanyeréséhez.
cookie értéke – Ez az adat fog tárolódni a kliens számítógépén. Ezt kapjuk majd vissza ha betöltjük a cookie-t.
cookie érvényessége – Az az időpont amíg a cookie a kliens gépen tárolódik. Az időpontot Unix formátumban kell megadni. Legegyszerűbb a time() függvényhez hozzáadni a lejárathoz szükséges másodpercek számát. Például a time()+60*60*24*10 a cookie érvényességét 10 napra állítja. Ha nem állítunk be semmit akkor a session végéig marad érvényes (böngésző bezárása).
cookie útvonala a szerveren – Ha ‘/’-ra állítjuk, akkor a cookie az egész szerveren elérhető marad. Ha ‘/test/’-re, akkor a test könyvtár, és annak összes alkönyvtárában lesz elérhető. Ha nem adunk meg semmit, akkor abban a könyvtárban lesz érvényes, ahol a cookie-t beállítottuk.
cookie domainje – Az a domain, ahonnan a cookie elérhető. Ha azt akarjuk, hogy egy pelda.com összes al-domain-jén elérhető legyen, akkor állítsuk ‘.pelda.com’-ra. Ez nem feltétlenül szükséges, de sok böngésző így működik. A www.pelda.com, csak a www-s domain-ról lesz elérhető.
biztonság – Ha 1, akkor a cookie csak biztonságos HTTPS kapcsolaton keresztül juthat el a böngészőhöz (ha létezik egy ilyen kapcsolat). Alapértelmezett 0.

Ezzel beállítottuk a cookie-nkat.

Az értékét csak onnan nyerhetjük vissza, ahonnan beállítottuk, vagy amit megadtunk az argumentumokban. Ha ez teljesül, akkor a cookie értékét a következő módon írathatjuk ki:

kód

<?php
echo „$_COOKIE[‘cookienév’]”;
?>

//Ha nem szeretnénk kiíratni, átírhatjuk egy változóba:

<?php
$cookievalue = $_COOKIE[‘cookienév’];
?>

Ezzel aztán már azt csinálunk amit akarunk.

Szerző: Balo

Hugyecz Görgy (Harder)
20+ éve munkám és hobbim is az online világhoz köt. Az utóbbi 10+ évben leginkább keresőopimalizálás (SEO) témában tevékenykedem, mellette pedig Google Ads és Facebook PPC fronton is segítem ügyfeleimet. Korábban 10+ évig webgrafika, sitebuild, weboldal készítés témakörben mozogtam.

2 HOZZÁSZÓLÁS

  1. Én szeretném kérdezni hogy tudom megoldani cooki ban azt hogy ha egy felhasználó pl egy hír részt becsuk egy gombbal akkor az ha frissíti az oldalt vagy bezárja a böngészőjét és újra megnyissa akkor amit bezárt az bezárva is maradjon?

    előre is köszi a helpet

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét