if (!isset($_COOKIE["ciastko"])) $zm = 1; else $zm = intval($_COOKIE["ciastko"]) + 1; setcookie("ciastko", $zm); Efektem wielokrotnego wykonania kodu...
if (!isset($_COOKIE["ciastko"])) $zm = 1; else $zm = intval($_COOKIE["ciastko"]) + 1; setcookie("ciastko", $zm);Efektem wielokrotnego wykonania kodu PHP jest
A. zapisanie do ciasteczka wartości 1 za każdym odświeżeniem witryny.
B. zliczanie liczby odwiedzin strony.
C. zapisanie danych do ciasteczka jedynie przy pierwszym uruchomieniu strony.
D. wyświetlenie ciasteczka z zapisaną zmienną.
Pytanie z egzaminu CKE, styczeń 2022 (arkusz EE.09-SG-22.01).
Poprawna odpowiedź to: zliczanie liczby odwiedzin strony. Kod sprawdza, czy istnieje ciasteczko o nazwie 'ciastko'. Jeśli go nie ma, zmienna $zm otrzymuje wartość 1. Jeśli ciasteczko już istnieje, jego wartość jest pobierana z tablicy $_COOKIE, zamieniana na liczbę całkowitą funkcją intval() i zwiększana o 1. Następnie setcookie('ciastko', $zm) zapisuje nową wartość ciasteczka, która przy następnym żądaniu strony będzie dostępna w $_COOKIE. Do zapamiętania: isset($_COOKIE['nazwa']) sprawdza istnienie ciasteczka, a setcookie('nazwa', wartość) wysyła do przeglądarki polecenie jego zapisania. Taki mechanizm stosuje się np. do prostego licznika odwiedzin jednego użytkownika. Typowa pułapka: setcookie() nie wyświetla danych na stronie.
W tym kodzie nie ma instrukcji odpowiedzialnej za wypisanie czegokolwiek na ekranie, więc „wyświetlenie ciasteczka z zapisaną zmienną” nie opisuje działania programu. Do wyświetlania użyto by np. echo lub print. „Zapisanie danych do ciasteczka jedynie przy pierwszym uruchomieniu strony” również nie pasuje, ponieważ funkcja setcookie('ciastko', $zm) jest wykonywana po każdym przejściu przez instrukcję warunkową. Przy pierwszym wejściu zapisywana jest wartość 1, a przy następnych nowa, zwiększona wartość. „Zapisanie do ciasteczka wartości 1 za każdym odświeżeniem witryny” byłoby prawdziwe tylko wtedy, gdy ciasteczko za każdym razem nie istniało albo nie było odczytywane. Tutaj, po zapisaniu ciasteczka, następne żądanie strony odczytuje jego dotychczasową wartość z $_COOKIE. Poprawna odpowiedź to: zliczanie liczby odwiedzin strony. Typowy błąd polega na pomyleniu samego ustawienia ciasteczka z jego wyświetleniem albo na nieuwzględnieniu, że wartość ciasteczka jest wykorzystywana przy kolejnym odświeżeniu.