setcookie

(PHP 3, PHP 4 >= 4.0.0)

setcookie -- Poslat cookie

Popis

int setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

setcookie() definuje cookie, kter² se po╣le spolu s hlaviΦkami. Cookies se musφ odeslat jako prvnφ ze v╣ech HTTP hlaviΦek (to je omezenφ cookies, ne PHP). Volßnφ tΘto funkce musφte tudφ╛ umφstit p°ed <html> Φi <head> tagy.

V╣echny argumenty krom∞ argumentu name jsou nepovinnΘ. Pokud je p°φtomn² pouze argument name, u klienta se sma╛e cookie tohoto jmΘna. Kter²koliv argument m∙╛ete takΘ nahradit prßzdn²m °et∞zcem (""), Φφm╛ tento argument p°eskoΦφte. Argumenty expire a secure jsou celoΦφselnΘ a nedajφ se p°eskoΦit prßzdn²m °et∞zcem. Mφsto toho pou╛ijte nulu (0). Argument expire je b∞╛nΘ UnixovΘ celoΦφselnΘ vyjßd°enφ Φasu, jak je vracφ funkce time() Φi mktime(). Argument secure indikuje, ╛e by se tento cookie m∞l p°enß╣et pouze po zabezpeΦenΘm HTTPS spojenφ.

B∞╛nΘ zßdrhele:

  • Cookies jsou p°φstupnΘ a╛ p°i dal╣φm naΦtenφ strßnky, na kterΘ p°φstupnΘ b²t majφ.

  • Cookies se musφ mazat se stejn²mi parametry, se kter²mi byly odeslßny.

V PHP 3 se vφcenßsobnß volßnφ setcookie() v jednom skriptu provedou v opaΦnΘm po°adφ. Pokud se pokou╣φte smazat jeden cookie p°e odeslßnφm jinΘho, m∞li byste umφstit vlo╛enφ p°ed smazßnφ. V PHP 4 se vφcenßsobnß volßnφ setcookie() provedou v tom po°adφ, jak jsou volßna.

N∞kolik p°φklad∙, jak posφlat cookies:

P°φklad 1. Ukßzky odeslßnφ cookies pomocφ setcookie()

setcookie ("TestCookie", "Zku╣ebnφ hodnota");
setcookie ("TestCookie", $value,time()+3600);  /* vypr╣φ za hodinu */
setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);

Nßsledujφ p°φklady mazßnφ cookies z p°edchozφ ukßzky:

P°φklad 2. Ukßzky mazßnφ cookies pomocφ setcookie()

setcookie ("TestCookie");
// nastavφ dobu vypr╣enφ na Φas p°ed hodinou
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
P°i mazßnφ cookie byste se m∞li ujistit, ╛e je doba vypr╣enφ v minulosti, Φφm╛ se v browseru zapne mechanismus odstran∞nφ cookie.

V╣imn∞te si, ╛e hodnotovß Φßst cookie se p°i odeslßnφ cookie automaticky url-zak≤duje, a p°i p°ijetφ se automaticky dek≤duje a p°i°adφ prom∞nnΘ stejnΘho jmΘna, jako je jmΘno cookie. Pokud chcete vid∞t obsah na╣eho zku╣ebnφho cookie, pou╛ijte n∞kter² z nßsledujφcφch p°φklad∙:

echo $TestCookie;
echo $HTTP_COOKIE_VARS["TestCookie"];

Cookies obsahujφcφ pole m∙╛ete takΘ odeslat tak, ╛e za nßzev cookie napφ╣ete hranatΘ zßvorky. ┌Φinkem tohoto je odeslßnφ tolika cookies, kolik mß va╣e pole prvk∙, ale kdy╛ vß╣ skript tyto cookies p°ijme, hodnoty se umφstφ v poli stejnΘho jmΘna, jako jsou va╣e cookies:

setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");
if (isset ($cookie)) {
    while (list ($name, $value) = each ($cookie)) {
        echo "$name == $value<br>\n";
    }
}

Vφce informacφ o cookies viz specifikace cookies na http://www.netscape.com/newsref/std/cookie_spec.html.

Microsoft Internet Explorer 4 se Service Packem 1 zpracovßvß chybn∞ cookies, kterΘ majφ nastaven² argument path.

Netscape Communicator 4.05 a Microsoft Internet Explorer 3.x z°ejm∞ nezpracujφ cookies sprßvn∞, pokud nejsou nastaveny argumenty path a time.