Cookie
Cookie mundëson ruajtjen e të dhënave që duhet të persistojnë ndërmjet faqeve (skriptave) të ndryshme.
Metodat POST dhe GET nuk janë praktike për ruajtjen e të dhënave persistuese, meqë për bartjen e vlerave kërkojnë linqe me query string (në rastin e GET), apo ndërtimin e formularëve (në rastin e POST), gjë që shton shkallën e ndërlikueshmërisë së aplikacionit e me këtë edhe mundësitë për gabime.
Cookie i ruan vlerat që duhet të persistojnë në fajlla specialë që menaxhohen nga browseri.
Sintaksa:
1 bool setcookie ( string $name
2 [, string $value
3 [, int $expire = 0
4 [, string $path
5 [, string $domain
6 [, bool $secure = false [, bool $httponly = false ]]]]]] )
Shembull
1 setcookie('company', 'Apple');
Në këtë shembull bazik, ‘company’ është anëtar i vargut $_COOKIE, me vlerën ‘Apple’. Kur kalojmë në një skriptë tjetër të aplikacionit, këtë vlerë do ta shfaqim me:
1 <?php
2 echo $_COOKIE['company'];
3 ?>
Natyrisht, në praktikë, si vlerë do të përdoret një variabël, si psh:
1 setcookie('company', $company_name);
ku vlera e atij variabli është përcaktuar më heret, psh. është lexuar nga formulari, databaza apo burime të tjera.
Jetëgjatësia e cookie
Si parametër i tretë është jetëgjatësia e cookie, ku si vlerë shënohet UNIX timestamp i kohës kur cookie duhet të skadojë. Kjo më së lehti mund të shënohet si time() + numri i sekondave. Psh. nëse dëshirojmë që cookie të “jetojë” 7 ditë, shënojmë:
1 setcookie('company', 'Apple', time() + 7*24*60*60);
me çka çastit aktual i shtohen 604800 sekonda, pra aq sa ka një javë.
Pra, brenda kësaj periudhe, skripta jonë do të ketë çasje vlerës së indeksit/çelësit ‘company’ dhe ajo do ta japë vlerën ‘Apple’, por me kalimin e këtij afati, cookie do të fshihet dhe me të edhe vlera e ruajtur.
setcookie() kthen vlerën TRUE nëse ka sukses në krijimin e cookie-t, ndërsa FALSE në të kundërtën.
Një cookie do të fshihet nëse si parametër të jetëgjatësisë shënojmë vlerë më të vogël se koha aktuale, psh time()-3600 e bën cookie-n 1 orë të vjetër dhe me këtë shkakton fshirjen e tij.
Nëse jepet vlera 0, cookie do të “jetojë” vetëm deri në fund të sesionit, pra do të fshihet me mbylljen e browserit.
Aspekti i jetëgjatësisë së cookie-t varet edhe nga opsionet e zgjedhura në browser.
Path
Parametri i katërt paraqet shtegun ku cookie do të jetë disponabël. Vlera e nënkuptuar, pra kur nuk shënohet ky parametër fare, është direktoriumi ku gjendet skripta e cila e ka krijuar cookie-n. Në këtë rast, skriptat në direktoriumet tjera nuk do të jenë në gjendje ta lexojnë vlerën e cookie-t.
Nëse si vlerë shënohet /, atëherë vlera e cookie-t mund të lexohet brenda gjithë domainit.
Nëse si vlerë shënohet emri i një direktoriumi, si psh /admin/, vlera e cookie do të jetë në dispozicion të atij direktoriumi dhe të gjitha niveleve të nëndirektoriumeve brenda saj.
Domain
Parametri i pestë është domaini ku vlen ky cookie, me çka atë e “lidhim” për një domain të caktuar.
Secure
Indikon që cookie mund të dërgohet vetëm nëse ndërmjet browserit dhe serverit është vendosur SSL koneksion, pra nëse lidhja është e enkriptuar.
httponly
Kufizon përdorimin e cookie vetëm brenda HTTP protokolit, duke pamundësuar aksesin në të nga JavaScript. Me këtë në masë të konsiderueshme rritet siguria e cookie, meqë kështu mund të parandalohet një numër i XSS sulmeve (cross-site scripting). Për ta aktivizuar këtë mundësi, shënohet vlera TRUE.