Aki foglalkozott mr javascripttel, annak ismers lehet a stik (cookie) hasznlata. Mkdse ugyanaz, csak itt jval egyszerbb a megvalstsa. A cookie s a session jl hasznlhat ltogatk azonostsra, adatok tvitelhez a kvetkez oldalra - ezrt ezek a fejletteb PHP oldalak nlklzhetetlen kellkei. 
Mi a sti (cookie)? 
A sti egy viszonylag kis mennyisg adatsor, amit a bngsz ment a kliens szmtgpre egyszer szveges adatfjl formjban. A fjl ltrehozsa, kiolvassa s mdostsa automatikusan, a httrben trtnik s termszetesen az adott oldal bezrsakor is megmarad. Mivel a sti adatfjlja szorosan kapcsoldik az t ltrehoz weboldalhoz, az adott oldal ksbbi megltogatsakor rendelkezsre ll az adatfjl tartalma. A stik hasznlatt a ltogat bngszje biztonsgi belltsaival korltozhatja, vagy blokkolhatja. 
Mire j neknk ez? Segtsgvel a ltogat egyni belltsai (pl. kivlasztott oldaldesign) trolhatk egy ksbbi ltogats esetre. Hasznlatval a szerveren lthatk s akr webstatisztikban rgzthetk a ltogati szoksok (utols ltogats ideje, felkeresett oldalak...), de gyakran hasznljk a ltogat vdett oldalakra val belpse utn a bejelentkezett llapot megjegyzsre, adatok egyik oldalrl a kvetkez oldalra trtn tovbbtsra is. A vonatkoz szabvny szigor biztonsgi elrsokat tartalmaz, gy minden ltrehozott stit csak az t ltrehoz domainrl lehet elrni - a klnbz domainokrl letlttt oldalak soha nem frhetnek hozz egyms adataihoz, mg akkor sem, ha tbb bngszablak van egyszerre nyitva. A stik megmaradnak a bngsz bezrsa utn, st a gp lelltsval sem trldnek, amg a lejrati idejk le nem telt. 
Minden gp egy domainhoz maximum 20 stit trolhat, amelyek a kvetkezket tartalmazzk: 
- a sti neve 
 - rtke 
 - a lejrati idpont 
 - a sti szrmaztatsi helynek elrsi utvonala 
 - a kapcsolat biztonsgos voltnak jellse 
  
Egy sti adatfjl maximum 4kb nagysg lehet, ami kb. 4000 karaktert jelent - szval terjedelemben nem korltoznak nagyon. Egy sti adattartalma kb. gy nz ki: 
fjlnv:  Felhasznalo_neve@audit.median.hufjl helye:  c:\Document and Settings\Felhasznalo_neve\Cookies (Windows XP rendszeren)  median_count
81.182.190.181.310943119250000031469035604363000822
audit.median.hu/
1024
2759538432
30859208
1582018384
29659796
*
  
Hogyan rjk el a szerveren a kliensgpen trolt stit? A bngsz minden oldal krsekor elkldi az adott domainhoz a kliensgpen trolt sti adatfjl tartalmt. gy rheti el a szerveren fut PHP kd a neki sznt adatokat. A PHP-ben ezeket az adatokat a $_COOKIES tmb tartalmazza, ami - szupergloblis tmb lvn - mindenhonnan elrhet. Az j stik elhelyezsre, vagy azok mdostsra vonatkoz utastsok a HTTP fejlcben utaznak a szerverrl a kliens fel is. 
fel... 
A sti ltrehozsa 
A stiket ltrehozhatjuk a HTTP fejlcben, a PHP header() parancsval, de ezzel felesleges foglalkozni, mivel a php fejleszti erre a clra egy specifikus fggvnyt, a SetCookie() beptett fggvnyt bocstanak rendelkezsre. A fggvny egy ktelez s tovbbi opcionlis adatot vr: a sti neve, rtke, lejrata, elrsi tja, a hasznlatra jogosult tartomny, s egy szm ami a biztonsgos kapcsolatot jelzi (ha ez 0 akkor mindenkpp menni fog a munka a stikkel). A sti nevn kivl a fenti adatokat nem ktelez megadni. A sti lejratt UNIX idblyegben kell megadni (UNIX idblyeg az 1970. janur 1. 1:00 ta eltelt msodpercek szma). 
Sti elhelyezse a SetCookie() fggvnnyel:
  <?php
setcookie( "belephet", "login_nev", time() + 3600, "/", "thomas98.hu", 0);
?>
 
ahol a time() az aktulis idt hatrozza meg, amihez 3600 msodpercet hozzadva 1 ra rvnyessget adtunk meg a stinknek. A sti neve belephet, rtke pedig a belpskor megadott loginnv. 
Fontos: 
- A stikben csak skalris (string, integer, double, vagy boolean) adattpusokat lehet trolni. 
  
fel... 
A sti mdostsa, trlse 
Egy sti mdostshoz azt megnevezve berjuk a mdostott adatokat. 
A sti trlsekor (pl. ha a ltogat kilp a vdett tartalombl) a lejrati idt mdostjuk egy mr elmlt idpontra: <?php
setcookie( "belephet", "login_nev", time() - 600, "/", "thomas98.hu", 0);
?>
 
gy a sti megmarad ugyan, de a tartalma nem lesz tovbb elrhet. 
 
 Fontos: 
- Kdolskor nem felejtsk el, hogy a SetCookie() fggvnnyel csak a sti elhelyezsre adtunk utastst. A stit az aktulis oldalon nem, csak a kvetkez oldalon rhetjk el. 
 - A SetCookie() fggvny lefutsa eltt semmilyen kimenetet nem kldhetnk a kimenetre (HTML kdokat, st mg res bethelyet sem), mivel az els elkldtt kimenet eltt a PHP automatikusan ltrehozza a szksges fejlc adatokat. Ha errl megfeledkeznk, PHP hibazenet lesz a jutalmunk. 
  
  
Forrs: Thomas Web Mhely  |