Kirjautuminen

Haku

Tehtävät

Hakemisto: PHP: HTTP: setcookie

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.

setcookie ("TestCookie", "", time() - 3600);

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ä.

Tietoa sivustosta