home 2024. április 16., Csongor napja
Online előfizetés
A PHP-sütik (cookies)
Erdsoft
2019.08.15.
LXXIV. évf. 32. szám
A PHP-sütik (cookies)

Előző két cikkünkben már egy kicsit nehezebb leckék voltak soron. Megismerkedhettél a szessziókkal, és megtanulhattad használni a date funkciót. Most, hogy már bonyolultabb weboldalakat is létre tudsz hozni, olyan dolgokra is gondolnod kell, mint amilyenek a sütik, azaz a cookies.

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):

  1. name: Ez a sütid neve. Fontos, hogy ne felejtsd el, mert később is szükséged lesz rá, amikor le szeretnéd kérni!
  2. value: Ez az az érték, amely a sütiben van elmentve. Gyakori értékek például a felhasználónév (string) és az utolsó látogatás ideje (date).
  3. expiration: Ez az a dátum, amikor a süti lejár és törlődik. Ha nem állítod be a lejárati dátumot, a süti úgy lesz kezelve, mint egy szessziós süti, és törlődik, amikor a böngészőt újraindítják.

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!

 


 

Nyereményjáték

Rovatunk elsődleges célja, hogy közelebbről is bemutassa a legismertebb webtechnológiákat. Azok között az olvasók között, akik minden héten követik rovatunkat, azaz velünk tanulják a programozás alapjait és kitöltik a feladatsort, a sorozat végén egy laptopot sorsolunk ki.

A játék heti kérdése:
Mit kell megadnunk a setcookie funkció „path” paraméterének, hogy a süti a teljes weboldalon elérhető legyen?
1. „/” jelet
2. „\” jelet
3. Egy üres stringet
 
A választ a tanulok@erdsoft.com e-mail-címre kell elküldeni, a tárgysorba pedig a következőt kell beírni: HÉTNAP-TANULOK. Sok szerencsét!
 
 

 

Néhány szó rólunk:

Az ErdSoft (www.erdsoft.com) 2011-ben alakult meg. Csapatunkat a fiatalos lendület, a szakértelem, a folyamatos tanulás és tapasztalatgyűjtés jellemzi. Ügyfeleinknek igyekszünk teljes körű szolgáltatást nyújtani — bátran fordulhatnak hozzánk, legyen szó webfejlesztésről, alkalmazásokról, SEO-optimalizálásról, grafikai tervezésről, marketingről vagy szövegírásról. Csapatunk sikerét mi sem bizonyítja jobban, mint a több száz elkészült weboldal és a számos elégedett ügyfél Szerbiában, Magyarországon és az Egyesült Királyságban.

Hozzászólások
Hozzászólások
0
Hozzászólás küldése
1000 karakter áll rendelkezésére
A megjegyzésekben kifejtett vélemények a hozzászólások szerzőinek magánvéleményei, és nem tükrözik az internetes portál véleményét. A megjegyzéseket moderáljuk és jóváhagyjuk az általános szerződési feltételeknek megfelelően.
Támogatóink
Az oldal sütiket használ, hogy személyre szabjuk a tartalmakat és reklámokat, hogy működjenek a közösségi média funkciók, valamint hogy elemezzük a weboldal forgalmát. Bővebben a "Beállítások" gombra kattintva olvashat.
Az oldal sütiket használ, hogy személyre szabja az oldalon megjelenő tartalmat és reklámokat..