Visszalép

PHP COOKIE

Teszteléshez a következő fájlokat, létre kell hozni:
cookie.php
cookie_01.php
cookie_02.php
cookie_03.php
cookie_04.php
Melyik PHP fájl mit tartalmazzon, leírások a linkekre kattintva, minden oldalon megtalálhatók.


Első belépéskor, nincs értékelhető adat (érték), mivel ekkor jön létre a cookie. (Ez az első látogatása, vagy a Nincs kiértékelhető érték, jelenik meg.)
Kiértékelhető értéke legyen, oldalról ki kell lépni, majd újból ide, vagy másik oldalra kell belépni.
Tesztelésre, használjuk a következő linkeket.

COOKIE 01.Teszt értéke = Ez az első látogatása.
COOKIE 02.Teszt értéke = Nincs kiértékelhető érték.
COOKIE 03.Teszt értéke = Nincs kiértékelhető érték.


  1. A cookie-t az előtt kell létrehozni, mielőtt minden más <html> kimenetet kezdeményeznénk.
  2. Létrehozásakor, a cookie (süti) nevén kívül, semmi más paramétert sem kötelező, megadni.
  3. A cookie-k a domain-hez kötodnek, és kizárólag saját tartalmuk tekintetében képesek.
  4. Szintaxisa: setcookie(name,value,expire,path,domain,secure)
    • name: A cookie egyedi azonosítója, azaz, a neve. (Például: 'fekete_rigo' vagy 'felhasznalo' vagy sorszámozzuk 'A01' 'A02' stb.)
    • value: A cookie-ben tárolandó érték. (Pédául: Szó vagy szöveg=Jól tud fütyülni. Vagy számok, időpontok= 1814-04-23)
      Értéke, a name, azaz, neve alapján (Például: 'fekete_rigo') érhető el, így: $_COOKIE ['fekete_rigo'] vagy $HTTP_COOKIE_VARS ['fekete_rigo'].
    • expire: A cookie lejárati ideje, melyet időbélyeg formátumban határozunk meg.
      Használjuk a time() függvényt, mellyel lekérdezhetjük a pillanatnyi időt és ehhez hozzáadva írjuk, hogy meddig szeretnénk életben tartani a sütit.
      Példák a cookie lejárati idejére:
      1 perc = time()+60
      30 nap = time () 3600 * 24 * 30
      Ha ez a paraméter nincs beállítva, a cookie lejár, ha vége a munkamenetnek (ha a böngésző bezárul).
    • path: Azon mappa/fájl útvonala, mely az elérhetőség helyét jeleníti meg.
      Ha "/"-t határozunk meg, akkor a megadott webhely, minden oldalán elérhető a sütink.
      Ha az értéke "/ test /", akkor a cookie csak a teszt könyvtárban, és minden teszt alkönyvtárában lesz elérhető.
      Alapértelmezett értéke, az aktuális könyvtár, melyben a cookie-t létrehozták.
    • domain: A cookie mely domain névvel jelölt területen legyen aktív, azaz, mely tartomány lesz jogosult a süti fogadására.
      Például:
      Webhely cím esetén így: www.valami.hu.
      Csak a létrehozó férjen hozzá, akkor így: $_SERVER['SERVER_NAME'].
    • secure: Egy egész szám.
      Azt mutatja, hogy a süti milyen kapcsolaton keresztül közlekedhet.
      Ha 0-val jelöljük, akkor a nem biztonságos kapcsolatot is engedélyeztük.

A cookie érték, automatikusan URL-be lesz kódolva, ha elküldjük a cookie-t (és automatikusan dekódolódik, amikor megkapjuk.).
Ha nem akarjuk ezt, akkor helyette setrawcookie () függvényt kel használni.
A sütiket maga a webszerver hozza létre a böngésző segítségével a felhasználó gépén, ahol azok egy elkülönített könyvtárban kerülnek tárolásra.
A sütik önmagukban nem tudják megállapítani, hogy adott számítógépet, milyen nemű és nevű felhasználó kezeli. Ezért, csak a látogató által kezelt számítógép felismerésére alkalmasak, felhasználó azonosítására nem képesek.
Számos jogi és etikai kérdést vet fel az internetes cookie-k alkalmazása, ugyanis személyes adatnak tekintendő, mivel a szélesebb körben ismertnél (IP cím), pontosabb azonosítására ad lehetoséget, a felhasználóról.


Példák a cookie, azaz, sütik létrehozására:
Létrehozáskor a süti nevén kívül, semmi más paramétert sem kötelező átadnunk.
Hogy milyen adatot tároljon, azt a későbbiekben is meghatározhatjuk.

  1. Kezdésnek ennyi meghatározás is, elég. (név, érték, időbélyeg)
    • setcookie("fekete_rigo", "Jól tud fütyülni", time()+60);

  2. Teljes meghatározása. (név, érték, lejárati idő, elérhető minden mappa és fájl, ezen a címen, nem biztonságos kapcsolat is engedélyezett)
    • setcookie("felhasznalo", "Zsuzsika", time()+60, "/", "http://www.valami.hu", 0);

  3. Csak a létrehozó férjen hozzá, akkor így:
    • $tartomany=$_SERVER['SERVER_NAME'];
      setcookie("felhasznalo", "Zsuzsika", time()+60, "/", "$tartomany", 0);

  4. A sütinek valami értelme is legyen, nem előre bevitt adatokkal kell a sütit megtölteni. (Pédául: Űrlapról érkező adattal. A $nev változónak adandó értéket kell, egy form segítségével elküldeni a sütinek.)
    • $nev=$_POST['latogato_neve'];
      setcookie("felhasznalo", $nev, time()+60);

  5. A session beiktatásával, egy felhasználó nyomon követésére is használhatjuk, amíg adott webhelyen böngészik.
    • setcookie("session_id", "12345", 0);
    A session olyan süti, ami csak addig él, amíg a böngésző meg van nyitva.
    Ezt a sütit, 0 élettartamra történő beállításával érhetjük el.

  6. Süti törlése. Sütinek új értéket, azaz, üres értéket adunk, lejárt dátummal:
    • setcookie("felhasználó", "", time()-60,"/", "$tartomany", 0);

  7. A cookie-t, beállíthatjuk tömb (array) formátumba is. Ebben az esetben, ugyanazon néven, egymástól elkülönülő adatot is, tárolhat.
    • setcookie ("hasznos_madar [kod]","24r3c32d");
    • setcookie ("hasznos_madar [teljes_neve]","Fekete Rigó");
    • setcookie ("hasznos_madar [elohelye]","Zöld Erdő");
    • setcookie ("hasznos_madar [temakor]","Bemutató");

1. példa.
Meghatározások előtt, nem lehet html kimenet.

Küldjünk egy egyszerű teszt süti példát.

<?php
//  // Állítsuk be az értéket:
$value = "Ez az én cookie teszt példám";

//  COOKIE létrehozása. 
setcookie("Teszt_Cookie",$value);
?>

<html>
<body>
...
...
</body>
</html> 

Miután a cookie be van állítva, a cookie értékét letöltést követően, különböző módon kérdezhetjük le:

<html>
<body>

<?php
// Kiíratjuk a cookie-t "name" neve alapján.
echo $_COOKIE["Test_Cookie"];       // Egyszerűen így.
echo "<br />";
echo $HTTP_COOKIE_VARS["Test_Cookie"];   // Vagy így.
echo "<br />";

// Kiíratjuk az összes létező cookie-t, a print_r() fügvénnyel.
print_r($_COOKIE);
?>

</body>
</html>

Kimenet eredménye a fenti lekérdezési kódoknál, a következő lesz:
							Ez az én cookie teszt példám
							Ez az én cookie teszt példám
							Array 
							( 
							  [TestCookie] => Ez az én cookie teszt példám
							)

 

COOKIE törlése a lejárati idő beállításával, dátum / idő a múltban:

<?php
// Állítsunk be üres értéket, és a lejárati időt, egy órával előbbre.
setcookie ("Test_Cookie", "", time() - 3600);
?>

<html>
<body>
...
... 
</body>
</html>

 

Példa, COOKIE tömb létrehozására:

<?php
setcookie("cookie[cukrasz01]","egy süti");
setcookie("cookie[cukrasz02]","kettő süti");
setcookie("cookie[cukrasz03]","három süti");
// Fenti meghatárpzások előtt, nem lehet html kimenet.

// Első teszt alkalmával: Frissítsük az oldalt, vagy ki kell lépni, majd újból belépni.
// Írja ki a cookie-kat, az oldal újbóli betöltése után.
if (isset($_COOKIE["cookie"]))
  {
  foreach ($_COOKIE["cookie"] as $neve => $value)
    {
    echo "$neve = $value 
"; } } ?> <html> <body>
Fenti program eredménye: (Első teszt alkalmával: Frissítsük az oldalt, vagy ki kell lépni, majd újból belépni.)

 

 


Cookie és adatvédelemről bővebben, a következő oldalon olvashatunk:
http://www.adatvedelmiszakerto.hu/2010/10/cookie-es-adatvedelem-felhasznalok-nyomokovetese-az-interneten/


PHP COOKIE