KWALIFIKACJA INF3 - STYCZEŃ 2017

PYTANIE NR 32.
Funkcją języka PHP tworzącą ciasteczko jest
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
setcookie() to wbudowana funkcja PHP służąca do ustawiania ciasteczka po stronie serwera przez wysłanie nagłówka HTTP Set-Cookie. Pozostałe propozycje to nazwy nieistniejących funkcji, które mogą brzmieć intuicyjnie, ale nie występują w standardowym PHP.

Pełne wyjaśnienie:

Ciasteczko (cookie) to mała porcja danych zapisywana w przeglądarce użytkownika, która jest przesyłana do serwera przy kolejnych żądaniach (zgodnie z zasadami dla domeny/ścieżki). W PHP standardowym sposobem ustawienia ciasteczka jest funkcja setcookie(). Jej działanie polega na zainicjowaniu wysłania odpowiedniego nagłówka HTTP Set-Cookie, który informuje przeglądarkę, jaki klucz i wartość ma zapisać oraz z jakimi atrybutami.

W praktyce, oprócz samej nazwy i wartości, często ustawia się parametry takie jak czas wygaśnięcia (cookie sesyjne lub trwałe), ścieżkę i domenę (zasięg obowiązywania), a także atrybuty bezpieczeństwa (np. ograniczenie przesyłania tylko po HTTPS oraz blokadę dostępu z JavaScript). Istotne jest również to, że nagłówki HTTP muszą zostać wysłane przed treścią odpowiedzi, więc ustawianie ciasteczek powinno nastąpić przed generowaniem wyjścia do przeglądarki.

Odpowiedź "setcookie()" jest poprawna, bo jest to rzeczywista, udokumentowana funkcja PHP do tworzenia/ustawiania cookies. Natomiast "echocookie()", "addcookie()" oraz "createcookie()" to nazwy wyglądające wiarygodnie (sugerują wypisanie, dodanie lub utworzenie), ale nie są elementami standardowej biblioteki PHP. Takie dystraktory często wykorzystują podobieństwo językowe i skłaniają do wyboru "intuicyjnego" czasownika zamiast nazwy znanej z dokumentacji.

Wskazówka egzaminacyjna: jeśli pytanie dotyczy cookies w PHP, zapamiętaj parę: setcookie() do ustawiania oraz $_COOKIE do odczytu danych przesłanych przez przeglądarkę.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Ciasteczko to niewielka porcja danych zapisywana w przeglądarce, którą przeglądarka wysyła do serwera przy kolejnych żądaniach. Służy m.in. do zapamiętania preferencji użytkownika, identyfikatorów sesji lub ustawień aplikacji w obrębie danej domeny i ścieżki.
W standardowym PHP do ustawiania ciasteczek służy funkcja setcookie(). Powoduje ona wysłanie nagłówka HTTP Set-Cookie w odpowiedzi serwera, dzięki czemu przeglądarka zapisuje cookie zgodnie z podanymi parametrami.
Bo ciasteczko jest przekazywane w nagłówkach HTTP odpowiedzi. Nagłówki muszą zostać wysłane przed treścią (HTML/JSON). Jeśli skrypt wcześniej wypisze dane, przeglądarka dostanie już część odpowiedzi i serwer nie może poprawnie dodać nagłówka Set-Cookie.
Odczyt odbywa się z tablicy superglobalnej $_COOKIE, np. przez sprawdzenie, czy istnieje klucz o danej nazwie. Pamiętaj, że wartość cookie pojawi się dopiero w kolejnym żądaniu po jego ustawieniu (bo przeglądarka musi je najpierw zapisać).
Najczęściej ustawia się: czas wygaśnięcia (cookie sesyjne lub trwałe), path i domain (zasięg), oraz flagi bezpieczeństwa. Parametry te decydują, kiedy i do jakich adresów przeglądarka będzie dołączać cookie w nagłówku Cookie.
Secure oznacza, że przeglądarka prześle cookie tylko po połączeniu HTTPS. Dzięki temu dane z cookie nie "wyciekną" przy niezabezpieczonym HTTP. To ważne zwłaszcza dla identyfikatorów sesji i danych wpływających na uwierzytelnienie użytkownika.
HttpOnly ogranicza dostęp do cookie z poziomu JavaScript w przeglądarce. Zmniejsza to ryzyko kradzieży cookie przy atakach typu XSS. Cookie nadal jest wysyłane w żądaniach HTTP/HTTPS, ale skrypty w przeglądarce nie mogą go łatwo odczytać.
Nie. setcookie() wysyła nagłówek do przeglądarki, a przeglądarka zapisuje cookie i odsyła je dopiero w następnym żądaniu. Dlatego w tym samym żądaniu, w którym ustawiasz cookie, $_COOKIE może jeszcze nie zawierać nowej wartości.
Najczęstsze przyczyny to: wysłanie treści przed ustawieniem cookie (problem z nagłówkami), ustawienie nieprawidłowej domeny lub ścieżki, zbyt krótki czas życia, blokady przeglądarki (polityka prywatności), oraz brak HTTPS przy użyciu atrybutu Secure.
Ciasteczka są przechowywane w przeglądarce, a sesja jest mechanizmem po stronie serwera (zwykle identyfikowanym przez cookie z ID sesji). Na egzaminie zapamiętaj: ustawianie cookie to setcookie(), a praca z sesją to mechanizm oparty o identyfikator i dane po stronie serwera.
info

Statystycznie 72% uczniów zna prawidłową odpowiedź. średnio łatwe

W praktyce zawodowej kluczowe jest to, że setcookie() to wbudowana funkcja PHP służąca do ustawiania ciasteczka po stronie serwera przez wysłanie nagłówka HTTP Set-Cookie.

Źródła:

  • PHP Manual: setcookie — Sends a cookie, https://www.php.net/manual/en/function.setcookie.php - accessed 2026-03-01
  • PHP Manual: Cookies, https://www.php.net/manual/en/features.cookies.php - accessed 2026-03-01
  • RFC 6265: HTTP State Management Mechanism (Set-Cookie/Cookie header), https://www.rfc-editor.org/rfc/rfc6265 - accessed 2026-03-01

Materiały:

  • Dokumentacja PHP: funkcja setcookie() (manual PHP)
  • Dokumentacja PHP: superglobalna tablica $_COOKIE
  • Materiały o HTTP: nagłówki odpowiedzi i mechanizm Set-Cookie

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego