A Cookie-k (sütik) a Netscape által kifejlesztett technológia, amely arra irányult, hogy az ugyanarról a domainről származó, egymás után többször meghívott weboldalak között weboldalak között adatcserét tegyen lehetővé. Programozói szempontból ez azt jelentette, hogy az egyes weboldalak állapotát le lehetett menteni így a weblap állapottartóvá vált.
A sütik tárolása mindig a böngészőn történik. A különböző böngészők más és más módon tárolják a sütik tartalmát, de összességében elmondható, hogy
egy weboldalról származó sütik mérete legfeljebb 4 kbyte lehet,
az adatok nyílt szövegként tárolódnak, azokat a weboldalon futó javascript kódok olvasni tudják,
a sütik a weboldal hívásakor a böngészőből nyílt módon (ha a protokoll nyílt) automatikusan kerülnek át a weboldalra a böngésző kérésének fejlécében (header),
ha a szerver oldalon futó kód (pl. PHP kód) sütit akar elküldeni a böngészőnek, akkor azt mindenféle egyéb output kiküldése előtt kell elküldenie.
A PHP-ban a sütik kezelésére az alábbi lehetőségek vannak
$_COOKIE[] - szuperglobális tömb, azaz a PHP kód bármelyik pontján az értékek olvashatók.
Egy cookie létrehozása
setcookie(
string $name, // A cookie neve
string $value = "", // A cookie értéke
int $expires_or_options = 0, // A cookie lejáratának ideje - ha nincsen megadva vagy 0,
// akkor a böngésző bezárásáig érvényes
string $path = "", // A domain melyik könyvtárából és alkönyvtáraiból
// származó oldalon legyen elérhető a cookie
string $domain = "", // A domain, ahonnan elérhető lehet
bool $secure = false, // Csak HTTPS protokollon keresztül lehet átvinni
bool $httponly = false // Csak HTTP protokollon lehet átküldeni
): bool
A Cookie-ban akár kisebb tömböket is lehet tárolni.
Ha a cookie-ban speciális karakterekből álló szöveget akarunk tárolni, azt urlencoding segítségével elkódolja az oldal kiküldés előtt.
A lejárat ideje tulajdonképpen egy időpontot jelöl. Ez egy UNIX időbélyeg, amely a UNIX világ kezdőidőpontja óta eltelt másodperceket adja vissza szám formájában. Használható az mktime() php függvény és a time() függvény is:
setcooke("nev", ertek, mktime() +86400); // Egy nap múlva jár le 60*60*24 = 86400
setcooke("nev", ertek, time() +60*60*24*30); // 30 nap múlva jár le a cookie
A setcookie utasítást mindenféle print, echo stb... kiírás előtt lehet csak kiadni!
Egy Cookie olvasása
print $_COOKIE["nev"];
Ezzel a Cookie tömb paramétereit lehet lekérdezni.