Opis
int
setcookie
( string nazwa [, string wartość [, int data_ważności [, string
ścieżka [, string domena [, int bezpieczne]]]]])
setcookie(
)
określa
ciasteczko
(ang
.
cookie
)
do
wysłania
z
nagłówkami
HTTP
.
Ciasteczko
musi
być
wysłane
zanim
jakiekolwiek
inne
nagłówki
zostaną
wysłane
(
to
jest
ograniczenie
ciasteczek
,
nie
PHP
)
.
To
wymaga
od
ciebie
umieszczenia
wywołań
tej
funkcji
przed
znacznikami
html
czy
head
.
Wszystkie
argumenty
poza
nazwa
są
opcjonalne
.
Jeśli
tylko
argument
nazwa
jest
obecny
,
ciasteczko
o
takie
nazwie
zostanie
usunięte
z
klienta
.
Możesz
też
opuścić
argumenty
za
pomocą
pustego
łańcucha
(
"
"
)
.
Argumenty
data_ważności
i
bezpieczne
są
liczbami
całkowitymi
i
nie
można
ich
opuścić
wstawiając
pusty
łańcuch
.
Zamiast
niego
użyj
liczby
zero
(
0
)
.
Argument
data_ważności
jest
regularnym
uniksowym
znacznikiem
czasu
,
takim
jak
zwracany
przez
funkcje
time(
)
lub
mktime
(
)
.
Argument
bezpieczne
oznacza
,
że
ciasteczko
może
być
przekazywane
tylko
poprzez
bezpieczne
połączenie
HTTPS
.
Wysłane
ciasteczko
jest
dostępne
już
przy
następnym
załadowaniu
strony
w
tablicy
$_COOKIE
.
W
wersjach
PHP
do
4.1.0
była
to
tablica
$HTTP_COOKIE_VARS
.
Częste
pułapki
:
-
Ciasteczka
nie
będą
widziane
do
następnego
przeładowania
strony
dla
której
mają
być
widoczne
.
-
Ciasteczko
może
być
usunięte
tylko
z
tymi
parametrami
,
z
jakimi
je
ustawiono
.
W
PHP
3
,
wielokrotne
wywołania
setcookie(
)
w
jednym
skrypcie
wykonywane
były
w
odwrotnej
kolejności
.
Jeśli
chcesz
usunąć
jedno
ciastko
przed
wprowadzeniem
kolejnego
,
powinieneś
umieścić
wprowadzenie
nowego
przed
usunęciem
starego
.
W
PHP
4
,
wielokrotne
wywołania
setcookie(
)
wykonywane
są
we
właściwej
kolejności
.
Parę
przykładów
-
jak
wysyłać
ciasteczka
:
Przykład
1
.
setcookie(
)
wysyła
przykładowe
ciasteczka
setcookie
(
"TestCookie"
,
$value)
;
setcookie
("TestCookie"
,
$value,time()+3600)
;
/
*
traci
ważność
za
godzinę
*
/
setcookie
("TestCookie"
,
$value,time()+3600
,
"
/
~rasmus
/
"
,
".utoronto.ca"
,
1)
;
|
|
Aby
skasować
ciasteczko
,
należy
ustawić
datę
ważności
na
datę
w
przeszłości
,
co
uruchomi
w
przeglądarce
mechanizm
kasowania
ciasteczek
.
A
teraz
,
jak
usunąć
ciasteczka
z
poprzedniego
przykładu
:
Przykład
2
.
Kasowanie
ciasteczek
/
/
ustaw
datę
ważności
na
godzinę
wstecz
setcookie
(
"TestCookie"
,
""
,
time(
)
-
3600)
;
setcookie
("TestCookie"
,
""
,
time(
)
-
3600
,
"
/
~rasmus
/
"
,
".utoronto.ca"
,
1)
;
|
|
Proszę
zwrócić
uwagę
,
że
zawartość
ciasteczka
jest
automatycznie
kodowana
do
formatu
URL
przy
wysyłaniu
,
a
po
odebraniu
automatycznie
dekodowana
i
przypisywana
do
zmiennej
o
tej
samej
nazwie
co
ciasteczko
.
Aby
poznać
zawartość
przykładowego
ciasteczka
ze
skryptu
,
należy
zastosować
poniższy
przykład
:
Można
też
tworzyć
tablice
złożone
z
ciasteczek
za
pomocą
zapisu
tablicowego
w
nazwie
ciasteczka
.
Powoduje
to
utworzenie
tylu
ciasteczek
,
ile
jest
elemetów
tablicy
,
a
po
otrzymaniu
takiego
ciasteczka
,
jego
wartości
umieszczane
są
w
tablicy
o
nazwie
takiej
jak
ciasteczko
.
Więcej
informacji
na
temat
ciasteczek
znajduje
się
w
specyfikacji
Netscape
'
a
,
na
stronie
http
:
/
/www.netscape.com
/
newsref
/
std
/
cookie_spec.html
.
Microsoft
Internet
Explorer
4
z
zainstalowanym
Service
Pack
1
nie
radzi
sobie
poprawnie
z
ciasteczkami
,
które
mają
ustawiony
parametr
ścieżka
.
Netscape
Communicator
4.05
i
Microsoft
Internet
Explorer
3.x
niepoprawnie
obsługują
ciasteczka
,
w
których
ścieżka
i
data_ważności
nie
są
ustawione
.