A sütik már régóta jelen vannak az interneten. Azért lettek létrehozva, hogy lehetővé tegyék a webmester számára, hogy információkat őrizzen a felhasználó számítógépén a felhasználóval és annak az oldalon tett látogatásával kapcsolatban.
Az első években a laikus nyilvánosság félt a sütik használatától, mert rendkívül rizikósnak tartotta őket. Napjainkban azonban már szinte mindenki böngészőjében engedélyezve vannak a sütik, részben azért, mert ennél sokkal nagyobb veszélyek is leselkednek ránk a neten, részben pedig azért, mert az összes „megbízható” weboldal is használ sütiket.
Mai leckénkben bemutatjuk a sütik mentésének és lekérésének alapjait, majd elmagyarázzuk azokat a lehetőségeket, amelyeket a sütik kínálnak.
Mi a süti?
A sütit gyakran használjuk a felhasználó azonosítására. A süti egy kis fájl, melyet a szerver a felhasználó számítógépébe illeszt. Minden alkalommal, amikor a gép a böngésző segítségével lekéri a weboldalt, a lekéréssel együtt elküldi a sütit is. A PHP segítségével létrehozhatjuk és le is kérhetjük a sütik értékét. A süti létrehozására a setcookie() funkciót használjuk.
Az első PHP-sütid létrehozása
Amikor süti létrehozására készülsz a setcookie funkció segítségével, három paramétert kell meghatároznod. Ezek a paraméterek a setcookie(name, value, expiration):
Az egyetlen nélkülözhetetlen paraméter a name, de a másik két paraméter alkalmazását is ajánljuk. Ezek mellett más paraméterek is vannak. Ezeket felsoroljuk, de mai leckénkben nem térünk ki rájuk bővebben: setcookie(name, value, expire, path, domain, secure, httponly).
Példánkban létrehozunk egy sütit, mely elmenti a felhasználó utolsó látogatását. Ez akkor hasznos, ha le szeretnénk mérni, milyen gyakran látogatja a felhasználó a weboldalunkat. Azokat, akik több mint két hónapja nem jártak a honlapon, nem szeretnénk bevonni az elemzésbe, ezért a süti lejárati idejét két hónappal előre állítjuk.
PHP-kód:
<?php
// számoljunk 60 napot előre
// jelenlegi idő + másodpercek * percek * órák * napok
$in_two_months = time() + (60 * 60 * 24 * 60);
setcookie('last_visit', date('G:i - m/d/y'), $in_two_months);
?>
Ne aggódj, ha a kicsit bonyolultabb, dátummal kapcsolatos dolgokat nem érted. Pillanatnyilag csak az a fontos, hogy megtanuld, hogyan állíthatod be a sütit a három fontos argumentum meghatározásával: név (name), érték (value) és lejárati idő (expiration date).
A friss süti lekérése
Ha a süti nem járt le, lekérhetjük a felhasználó számítógépéről a könnyen megjegyezhető nevű $_COOKIE asszociatív tömbbel. Az elmentett süti neve kulcsfontosságú, ezért is kértünk meg rá, hogy jól jegyezd meg. A süti nevével tudjuk lekérni az elmentett sütiértékeket.
PHP-kód:
<?php
if (isset($_COOKIE['last_visit'])) {
$visit = $_COOKIE['last_visit'];
echo 'Utolsó látogatásod időpontja - ' . $visit;
}
else {
echo 'Állott sütijeid vannak!';
}
?>
Megjelenítés a böngészőben:
Utolsó látogatásod időpontja - 11:48 - 02/28/08
Végezetül nézzünk meg egy kicsit bonyolultabb példát is! Létrehozunk egy sütit, melynek a neve „user”, értéke pedig „John Doe”. A süti lejárati ideje 30 nap (86400 * 30). A „/” azt jelenti, hogy a süti a teljes weboldalon elérhető (más esetben itt beállíthatjuk a kívánt direktóriumot).
A $_COOKIE segítségével lekérjük a „user” süti értékét, és az isset() funkció segítségével ellenőrizzük, hogy a süti be van-e állítva.
PHP-kód:
<?php
$cookie_name = 'user';
$cookie_value = 'John Doe';
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), '/'); // 86400 = 1 day
?>
<html>
<body>
<?php
if (!isset($_COOKIE[$cookie_name])) {
echo 'Cookie named "' . $cookie_name . '" is not set!';
}
else {
echo 'Cookie "' . $cookie_name . '" is set!<br />';
echo 'Value is: ' . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Fontos megjegyezni, hogy a setcookie() funkciónak a <html> tag ELÉ kell kerülnie. Azt is lényeges kiemelni, hogy a süti értéke automatikus URL-kódoláson esik át a küldés során, a fogadás során pedig dekódolva lesz.
Korábban is biztosan sokat hallottál a sütikről, most azonban már azt is tudod, hogyan használhatod őket a saját weboldaladon. A sütik használatával kapcsolatban még annyit jegyeznénk meg, hogy a GDPR-rendeletben egy róluk szóló rész is található, ezért mielőtt egy, a felhasználók számára is elérhető weboldalon alkalmaznád őket, mindenképp olvass utána a témának, vagy konzultálj egy szakértővel!
Jó gyakorlást!