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üzenetWarning: 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

Harder

Harder

Profil

Korábbi hozzászólások (2)

A régi blogon érkezett hozzászólások archívuma. Új hozzászólást már nem lehet írni.

  1. Lacabacsiwww.sorozat.eu

    É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

  2. Krees

    Ez most életmentő volt, köszi :)

Van hozzáfűznivalód? Írj nekem közvetlenül.

Kapcsolat