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
.