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ů:
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:
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.