A PHP les cookies es controlen per mitjà d’una funció, que ens serveix per tal de poder-les generar i guardar-les en el navegador de l’usuari. És la funció setcookie(), que rep varis paràmetres, entre ells, el nombre de la cookie, el valor i la caducitat. L’únic paràmetre que és obligatori és el primer, els restants són opcionals, però tot i això aquí us deixarem un llistat amb tots els possibles paràmetres i les seves explicacions:
NOM
Un string amb el nom que donarem a la cookie que volem guardar. Potser qualsevol que volguem.
VALOR
Una cadena de caràcters serà la que mostrarà el valor que tindrà la cookie.
CADUCITAT
És un timestamp amb el valor de la data en la qual la cookie caducarà. Normalment s’utilitza la funció time(), que genera el timestamp actual i en aquest s’hi suma el número de segons que es diu que duri la cookie. Per exemple, time() + (60*60*24*365) faria que la cookie durés un any en el sistema d’usuari.
RUTA
El camí o ruta on la cookie s’utilitzarà dins del domini. Per defecte, la cookie es podrà utilitzar en el directori on s’ha creat i els seus subdirectoris. Si indiquem “/” la cookie tindrà validesa dins de tot el domini.
DOMINI
És el subdomini on es podrà accedir a la cookie. Les cookies únicament es poden generar i utilitzar pel domini de la pàgina on està col·locat l’script, però podem fer-lo visible per a tots els subdominis del domini de la web per mitjà de “.midominio.com”.
SEGURETAT
És un booleà que, si és true, indica que la cookie només es pot transmetre per shttp.
NOMÉS HTTP
Aquest és un altre booleà que serveix per tal d’indicar que a la cookie només s’hi pot accedir per mitjà de les capçaleres de http, per tant no serviria per llenguatges script com Javascript. Aquest paràmetre es va afegir a PHP 5.2.0.
La function setcookie() de PHP genera i envia la cookie al navegador i retorna un booleà, si és true indica que es pot incloure en el navegador de l’usuari i si és false indica que no ha pogut col·locar-la en el sistema. Però aquest valor no indica que després el visitant l’accepti o no, doncs pot haver configurat el navegador per no acceptar cookies, fet que no es pot detectar per la function setcookie() directament.
Un exemple:
setcookie("la_meva_galeta", "valor"); setcookie("cookie2", "valor2", time() + 3600); setcookie("diferent_cookie", "valorfinal", time() + 3600, "/", ".midominio.com");
Atenció: per enviar una cookie al navegador s’ha de fer abans d’haver enviat les capçaleres de l’http, és a dir, abans d’haver escrit qualsevol text a la pàgina. Sinó, PHP podrà llençar un error de headers already sent (capçaleres ja enviades).