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.

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.