Funktio asettaa evästeitä.
boolean setcookie ( string nimi [, string arvo [, int vanhentumispaiva [, string polku [, string domain [, boolean int turvallinen]]]]])
setcookie() lähettää evästeen käyttäjälle HTTP-headereissa. setcookie() palauttaa onnistuessaan TRUE. Jos esimerkiksi muuta sisältöä (vaikkapa <HTML>-tagi) on lähetetty ennen komentoa, se palauttaa arvon FALSE.
Ainoastaan nimi on pakollinen parametri, eväste poistuu jos arvoa ei ole määritetty tai se on tyhjä. Vanhetumispäivän on oltava UNIX-aikaleima, jonka saa PHP:llä time() tai mktime() funktioilla. Viimeinen parametri ilmaisee vaaditaanko keksin lähettämiseen HTTPS-yhteyttä, jos vaaditaan, laita siihen 1, muuten 0.
Evästeessä ei voida lähettää taulukoita, jos haluat kuitenkin lähettää taulukon, aja se ensin serialize() funktion läpi.
Keksin voi asettaa esimerkiksi seuraavasti:
setcookie ("Testievaste", "Testi"); // peruseväste setcookie ("Testievaste", "Testi", time()+3600); // eväste vanhenee tunnin kuluttua setcookie ("Testievaste", "Testi", time()+3600, "/~matti.meikalainen/", ".lut.fi", 1); // eväste vanhenee tunnin kuluttua, vaatii suojattua yhteyttä, lähetetään jos palvelimen toimialue on lut.fi ja kansio ~matti.meikalainen
Eväste voidaan poistaa asettamalla arvo tyhjäksi ja määrittämällä se vanhentuneeksi.
Evästeet voidaan lukea seuraavilla tavoilla:
print $Testievaste; // toimii, jos register_globals on päällä print $_COOKIE["Testievaste"]; // toimii versiossa 4.10 tai uudemmissa print $HTTP_COOKIE_VARS["Testievaste"]; // toimii kaikissa PHP:n versioissa
HUOM! Jos käytössä on PHP-tulkista versio 4.10 tai uudempi, tulee evästeet lukea käyttäen taulukkoa $_COOKIE (paitsi jos käytetään register_globalsia, joka voi olla tietoturvariski, jos skripti on tehty huonosti). Taulukko $HTTP_COOKIE_VARS on mukana yhteensopivuussyistä.