Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 22 kwietnia 2026 10:54
  • Data zakończenia: 22 kwietnia 2026 11:04

Egzamin zdany!

Wynik: 22/40 punktów (55,0%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

W języku PHP, aby zaprezentować ciąg n znaków @, konieczne jest skorzystanie z funkcji

A. function znaki($znak,$i++){for($i=0;$i<$n;$i++)print($znak);}znaki(@,$n);
B. function znaki($znak,$n){for($i=0;$i<$n;$i++)print($znak);}znaki("@",$n);
C. function znaki($i){for($i=0;$i<$n;$i++)print("@");}znaki($i);
D. function znaki($znak,$i++){for($i=0;$i<$n;$i++)print($znak);}znaki($n);
Wszystkie inne przedstawione odpowiedzi nie są poprawne z kilku powodów. Pierwsza z analizowanych koncepcji nie definiuje funkcji w sposób zgodny z wymaganiami, ponieważ argumenty są niepoprawnie zdefiniowane, a pętla iteracyjna nie ma jasno określonej liczby powtórzeń. Co więcej, nie przekazuje ona znaku do wydrukowania w sposób, który umożliwiałby elastyczność. Kolejna odpowiedź nie uwzględnia przekazywania znaku, a zamiast tego skupia się jedynie na iteracjach, co skutkuje błędnym podejściem do zadania. Funkcja, która nie przyjmuje znaku jako argumentu, nie jest w stanie spełnić wymagań związanych z dynamicznym wyświetlaniem konkretnego znaku. W ostatniej niepoprawnej koncepcji, argumenty funkcji są błędnie przypisane, ponieważ nie ma dość logicznego powiązania pomiędzy nimi a zamierzonym celem funkcji, co prowadzi do niepoprawnego działania kodu. Tego rodzaju błędy w definicji i implementacji funkcji mogą prowadzić do nieczytelności oraz trudności w debugowaniu, co jest nie do zaakceptowania w profesjonalnym programowaniu.

Pytanie 2

Jakiego języka można użyć do obsługi połączenia z bazą danych MySQL podczas rozwijania aplikacji webowej?

A. HTML
B. XHTML
C. CSS
D. PHP
PHP jest językiem skryptowym, który jest szeroko stosowany do tworzenia dynamicznych aplikacji internetowych, a jego zdolność do interakcji z bazami danych, takimi jak MySQL, czyni go idealnym narzędziem do obsługi połączeń z bazą danych. PHP umożliwia programistom wysyłanie zapytań SQL do bazy danych, wykonywanie operacji CRUD (tworzenie, odczyt, aktualizacja, usuwanie) oraz przetwarzanie wyników, co jest kluczowe w nowoczesnym tworzeniu aplikacji webowych. Przykładowy kod PHP do nawiązania połączenia z bazą danych MySQL może wyglądać następująco: $conn = new mysqli('localhost', 'username', 'password', 'database');. W przypadku niepowodzenia połączenia, można użyć if ($conn->connect_error) { die('Connection failed: ' . $conn->connect_error); }. PHP wspiera również różne techniki zabezpieczeń, takie jak przygotowywanie zapytań, co znacząco zwiększa bezpieczeństwo aplikacji przed atakami typu SQL Injection. Dokumentacja PHP oraz standardy, takie jak PSR (PHP Standards Recommendations), dostarczają programistom niezbędnych wytycznych, aby tworzyć wydajne i bezpieczne aplikacje. Dzięki swojej elastyczności i wszechstronności, PHP stał się językiem pierwszego wyboru dla programistów zajmujących się tworzeniem aplikacji internetowych z interfejsem do baz danych.

Pytanie 3

W języku PHP nie można zrealizować

A. obróbki danych przechowywanych w bazach danych
B. przetwarzania danych z formularzy
C. zmiany dynamicznej zawartości strony HTML w przeglądarce
D. tworzenia dynamicznej treści strony
PHP, jako skryptowy język programowania po stronie serwera, nie jest w stanie dynamicznie zmieniać zawartości strony HTML w przeglądarce użytkownika po jej załadowaniu. Operacje, które wykonuje PHP, są realizowane na serwerze, a wyniki tych operacji przesyłane są jako statyczny HTML do przeglądarki. Oznacza to, że jakiekolwiek zmiany w treści strony muszą być przeprowadzane przed wysłaniem odpowiedzi do klienta. Dynamiczne zmiany w istniejącej zawartości HTML w przeglądarce są realizowane za pomocą JavaScriptu, który działa po stronie klienta. Na przykład, jeśli mamy formularz, który po wypełnieniu wymaga zmiany niektórej zawartości na stronie bez jej ponownego ładowania, to właśnie JavaScript, a nie PHP, będzie odpowiedzialny za te zmiany. PHP może generować zawartość w odpowiedzi na żądania, ale nie ma możliwości interakcji z już załadowanym DOM w przeglądarce. To ograniczenie wynika z architektury webowej, w której PHP i JavaScript pełnią różne role, co jest zgodne z ogólnymi standardami tworzenia aplikacji webowych, w tym modelu MVC (Model-View-Controller), gdzie PHP obsługuje model i widok, a JavaScript kontroler.

Pytanie 4

Ile razy zostanie wykonana pętla przedstawiona w języku PHP, zakładając, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?
for($i = 0; $i <= 10; $i++) { ...... }

A. 10 razy
B. Nieskończoność
C. 0 razy
D. 11 razy
Odpowiedzi 0, 10 oraz nieskończoność są niepoprawne z kilku powodów. Przyjęcie, że pętla wykona się 0 razy, jest błędne, ponieważ pętla for rozpoczyna swoje działanie od zainicjowania zmiennej $i na 0. Zgodnie z konstrukcją pętli, pierwsze sprawdzenie warunku $i <= 10 jest pozytywne, co implikuje, że blok kodu zostanie wykonany przynajmniej raz. W odniesieniu do odpowiedzi 10, zakłada ona, że pętla zakończy się, gdy $i osiągnie wartość 10, co jest mylące. W rzeczywistości, pętla wykonuje się 11 razy, ponieważ ostatnie wykonanie kodu następuje przy $i równym 10, a następnie następuje inkrementacja, co sprawia, że $i osiąga 11 i przerywa działanie pętli. Wreszcie, odpowiedź sugerująca nieskończoną ilość iteracji jest również błędna. Nieskończone pętle często wynikają z braku modyfikacji zmiennej sterującej, jednak w tym przypadku pętla for ma zdefiniowaną inkrementację, co zapewnia, że po pewnym czasie pętla zakończy swoje działanie, nie generując nieskończoności. Każda z tych błędnych odpowiedzi pokazuje różne nieporozumienia dotyczące działania pętli for oraz logiki programistycznej w PHP.

Pytanie 5

Funkcja napisana w PHP ma na celu

Ilustracja do pytania
A. nawiązanie połączenia z bazą danych
B. pobranie informacji z bazy danych
C. ustawienie hasła do bazy danych
D. zabezpieczenie bazy danych
Ustawienie hasła do bazy danych nie jest realizowane przez zapytanie SQL w PHP lecz przez konfigurację połączenia z bazą danych zwykle przy użyciu funkcji mysql_connect lub mysqli_connect gdzie hasło jest jednym z parametrów. Zabezpieczenie bazy danych nie polega na prostym zapytaniu lecz wymaga szerszego podejścia obejmującego kontrolę dostępu zarządzanie uprawnieniami szyfrowanie danych i ochronę przed atakami SQL Injection. Połączenie z bazą danych w PHP realizowane jest poprzez funkcje umożliwiające nawiązanie sesji z serwerem bazodanowym jak mysql_connect lub nowocześniejsze mysqli_connect oraz obiekty PDO które oferują bardziej zaawansowane mechanizmy zarządzania połączeniami. Często występującym błędem jest mylenie funkcji odpowiedzialnych za zarządzanie połączeniem z funkcjami wykonującymi operacje na danych. Mylenie tych dwóch aspektów pracy z bazą danych prowadzi do błędów w aplikacjach jak niewłaściwe zarządzanie zasobami lub podatność na ataki. Nowoczesne podejścia takie jak stosowanie ORM-ów jak Doctrine w PHP abstrahują wiele tych mechanizmów co upraszcza zarządzanie tymi aspektami w kodzie. Ważnym aspektem jest także stosowanie praktyk bezpieczeństwa takich jak walidacja i sanitizacja danych oraz używanie przygotowanych wyrażeń co jest kluczowe w ochronie danych i zapewnieniu prawidłowego działania aplikacji. Zrozumienie tych podstawowych elementów jest kluczowe w tworzeniu bezpiecznych i wydajnych aplikacji bazodanowych.

Pytanie 6

Do czego służy funkcja PHP o nazwie mysql_num_rows?

A. podawać liczbę wierszy, które są w wynikach zapytania
B. przyporządkować numery rekordom w bazie danych
C. oddawać następny rekord z wyników zapytania
D. zwracać rekord, którego numer został przekazany jako parametr funkcji
Funkcja mysql_num_rows w PHP jest kluczowym narzędziem do interakcji z bazami danych MySQL, umożliwiając programistom efektywne zarządzanie danymi. Jej głównym zadaniem jest zwrócenie liczby wierszy, które zostały zwrócone w wyniku zapytania SQL. Jest to niezwykle przydatne w sytuacjach, gdy chcemy ocenić, ile rekordów spełnia określone kryteria, co może być istotne na przykład w przypadku paginacji wyników lub dynamicznego dostosowywania interfejsu użytkownika w zależności od liczby dostępnych danych. Użycie tej funkcji polega na przesłaniu do niej wskaźnika na wynik zapytania, co pozwala na bezpośrednie uzyskanie liczby wierszy bez konieczności przeszukiwania danych. Przykładowo, po wykonaniu zapytania SELECT, aby uzyskać liczbę wierszy, wystarczy użyć: $result = mysql_query('SELECT * FROM tabela'); $liczba_wierszy = mysql_num_rows($result);. Funkcja ta jest zgodna z wytycznymi dotyczącymi standardów SQL i jest szeroko stosowana w aplikacjach webowych, które wymagają efektywnego przetwarzania danych. Należy jednak pamiętać, że mysql_num_rows jest częścią przestarzałego rozszerzenia MySQL, a programiści powinni rozważyć użycie mysqli lub PDO, które oferują lepszą obsługę i bezpieczeństwo.

Pytanie 7

$liczba = 10;
while($liczba<50){
   echo "$liczba";
   $liczba=$liczba+5;
}
Jakie liczby zostaną wyświetlone w wyniku działania tej pętli w języku PHP?

A. 0 5 10 15 20 25 30 35 40 45 50
B. 10 15 20 25 30 35 40 45 50
C. 0 5 10 15 20 25 30 35 40 45
D. 10 15 20 25 30 35 40 45
Wynik działania pętli w języku PHP jest poprawny, ponieważ zaczyna się od wartości 10, a następnie w każdej iteracji zwiększa tę wartość o 5, aż osiągnie 50, które nie jest wliczane do wypisywanych wyników. Wartości wypisywane w trakcie działania pętli to: 10, 15, 20, 25, 30, 35, 40, 45. Wartością graniczną jest 50, która przerywa działanie pętli. Taki mechanizm jest często stosowany w programowaniu, zwłaszcza w sytuacjach, gdzie musimy iteracyjnie przetwarzać dane w określonym zakresie. Dobrą praktyką jest również upewnienie się, że warunki pętli są jasno określone, co zapobiega niepożądanym wynikom, takim jak nieskończone pętle. W PHP używamy pętli takich jak 'while', 'for' i 'foreach', które są kluczowymi elementami w programowaniu i pozwalają na efektywne przetwarzanie danych.

Pytanie 8

W języku PHP, przy pracy z bazą MySQL, aby zakończyć sesję z bazą, należy wywołać

A. mysqli_commit()
B. mysqli_exit()
C. mysqli_rollback()
D. mysqli_close()
Odpowiedź mysqli_close() jest prawidłowa, ponieważ ta funkcja jest używana do zamknięcia połączenia z bazą danych MySQL w języku PHP. Po zakończeniu wszystkich operacji na bazie danych, zaleca się wywołanie tej funkcji, aby zwolnić zasoby systemowe oraz zamknąć połączenie, co jest zgodne z dobrymi praktykami programistycznymi. Użycie mysqli_close() jest istotne, ponieważ niezamknięte połączenia mogą prowadzić do wycieków pamięci i wyczerpania dostępnych zasobów, co z kolei może wpłynąć na wydajność aplikacji. W praktyce, jeśli mamy otwarte połączenie z bazą danych, po zakończeniu operacji, takich jak pobieranie lub wstawianie danych, używamy mysqli_close($connection), gdzie $connection to nasza zmienna reprezentująca połączenie. Oprócz tego, pamiętajmy, że dbanie o odpowiednie zarządzanie połączeniami ma kluczowe znaczenie dla bezpieczeństwa i stabilności naszych aplikacji.

Pytanie 9

Która komenda pozwala na przesłanie tekstu do przeglądarki?

A. exit
B. break
C. type
D. echo
Odpowiedź 'echo' jest poprawna, ponieważ ta instrukcja służy do generowania tekstu, który jest przesyłany do przeglądarki w kontekście skryptów PHP. Echo jest jedną z najprostszych i najczęściej używanych funkcji do wyświetlania danych na stronie internetowej, co jest kluczowym elementem w budowaniu dynamicznych aplikacji webowych. Przykład zastosowania: w prostym skrypcie PHP możemy użyć echo do wyświetlenia powitania użytkownika: <?php echo 'Witaj, użytkowniku!'; ?>. Dzięki temu, użytkownicy mogą interaktywnie odbierać informacje, co jest istotne dla doświadczenia użytkownika. W praktyce, zastosowanie echo ma również znaczenie w kontekście bezpieczeństwa aplikacji, ponieważ prawidłowe zarządzanie danymi wyjściowymi ochroni przed atakami typu XSS, gdyż pozwala na odpowiednie filtrowanie i kodowanie danych, które są wyświetlane przeglądarki. W branży zaleca się stosowanie echo w połączeniu z odpowiednimi standardami zabezpieczeń, aby zapewnić najwyższą jakość i bezpieczeństwo aplikacji webowych.

Pytanie 10

Która z podanych funkcji w języku PHP zwraca sumę połowy wartości a oraz połowy wartości b?

A. function licz($a,$b){return ($a/2+$b)/2; }
B. function licz($a,$b){return 2/$a+2/$b; }
C. function licz($a,$b){return $a/2+$b; }
D. function licz($a,$b){return $a/2+$b/2; }
Poprawna odpowiedź to funkcja, która zwraca sumę połowy wartości a oraz połowy wartości b. W przypadku wybranej odpowiedzi, funkcja 'licz($a, $b)' oblicza zarówno $a/2, jak i $b/2, a następnie sumuje te dwie wartości, co jest zgodne z wymaganym działaniem. Przykładowo, dla $a=4 i $b=6, obliczenia wyglądają następująco: (4/2) + (6/2) = 2 + 3 = 5. Tego rodzaju operacje są powszechnie stosowane w programowaniu, zwłaszcza w kontekście obliczeń matematycznych. Zrozumienie, jak dzielić wartości i następnie je sumować, jest kluczowe w wielu aplikacjach, które wymagają przetwarzania danych liczbowych, jak na przykład w analizach statystycznych czy w algorytmach optymalizacyjnych. Warto dążyć do pisania funkcji, które są nie tylko poprawne, ale również przejrzyste i łatwe do zrozumienia, co jest zgodne z najlepszymi praktykami w programowaniu, takimi jak zasada KISS (Keep It Simple, Stupid).

Pytanie 11

W skrypcie PHP należy stworzyć cookie o nazwie "owoce", które przyjmie wartość "jabłko". Cookie powinno być dostępne przez jedną godzinę od momentu jego utworzenia. W tym celu w skrypcie PHP trzeba zastosować funkcję:

A. setcookie("jabłko", "owoce", time()+3600);
B. cookie("jabłko", "owoce", 3600);
C. setcookie("owoce", "jabłko", time()+3600);
D. cookie("owoce", "jabłko", 3600);
Funkcja setcookie() jest standardowym narzędziem w PHP, używanym do tworzenia cookies. W przypadku tej odpowiedzi, używamy jej w poprawny sposób, definiując nazwę cookies jako 'owoce', wartość jako 'jabłko' oraz czas wygaśnięcia. Wywołanie time()+3600 oznacza, że cookie będzie ważne przez jedną godzinę od momentu jego utworzenia. Ważne jest, aby pamiętać, że setcookie() musi być wywołane przed jakimkolwiek kodem HTML, który jest wysyłany do przeglądarki. W praktyce, cookies mogą być używane do przechowywania informacji o użytkownikach, takich jak preferencje lub dane sesji. Na przykład, w przypadku aplikacji e-commerce, cookies mogą pomóc w śledzeniu produktów dodanych do koszyka przez użytkownika, co jest istotne dla poprawy doświadczeń zakupowych. Standardy dotyczące cookies wskazują również na konieczność zachowania ostrożności w zakresie prywatności i bezpieczeństwa, dlatego warto stosować flagi zabezpieczeń, takich jak HttpOnly i Secure, w zależności od kontekstu użycia.

Pytanie 12

Jaką funkcję w języku PHP należy wykorzystać, aby nawiązać połączenie z bazą danych o nazwie zwierzaki?

A. $polacz = sql_connect('localhost', 'root','','zwierzaki')
B. $polacz = mysqli_connect('localhost', 'root','','zwierzaki')
C. $polacz = db_connect('localhost', 'root','','zwierzaki')
D. $polacz = server_connect('localhost', 'root','','zwierzaki')
Odpowiedzi takie jak $polacz = db_connect('localhost', 'root','','zwierzaki'); oraz $polacz = sql_connect('localhost', 'root','','zwierzaki'); są niepoprawne, ponieważ nie istnieją takie funkcje w standardowym zestawie funkcji PHP. Użycie nieodpowiednich nazw funkcji może prowadzić do nieporozumień oraz błędów w kodzie, które mogą być trudne do zdiagnozowania, zwłaszcza dla nowicjuszy. Dodatkowo, funkcja db_connect sugeruje, że mogłaby być częścią jakiegoś frameworka lub biblioteki, co wprowadza w błąd, gdyż w standardowym PHP nie są one dostępne. Podobna sytuacja ma miejsce z sql_connect, która również nie jest częścią standardowej biblioteki PHP. Użycie tych funkcji w kodzie bez zaimplementowania ich definicji spowoduje błąd wykonania. Z kolei $polacz = server_connect('localhost', 'root','','zwierzaki'); również nie jest poprawną odpowiedzią, ponieważ server_connect nie jest zdefiniowaną funkcją w PHP. Kluczowym błędem, jaki można popełnić, jest poleganie na przestarzałych metodach lub funkcjach, które nie są już wspierane przez PHP, co może prowadzić do problemów z bezpieczeństwem i wydajnością aplikacji. Programiści powinni być świadomi aktualnych standardów i korzystać z obiektowych interfejsów, takich jak MySQLi lub PDO, które oferują większe bezpieczeństwo i elastyczność w zarządzaniu połączeniami z bazą danych.

Pytanie 13

Pętla while powinna działać tak długo, jak zmienna x ma wartości z przedziału obustronnie otwartego -2, 5). Zapis tego warunku w nagłówku pętli za pomocą języka PHP wygląda następująco

A. ($x > -2) || ($x > 5)
B. ($x < -2) || ($x > 5)
C. ($x == -2) && ($x < 5)
D. ($x > -2) && ($x < 5)
Niepoprawne odpowiedzi opierają się na błędnej interpretacji warunków, które powinny być zastosowane w pętli while. Pierwsza z błędnych opcji, ($x == -2) && ($x < 5), sugeruje, że pętla mogłaby działać tylko, gdy x jest równe -2 oraz mniejsze od 5. Oznacza to, że pętla w ogóle nie zostałaby wykonana, ponieważ -2 nie jest w przedziale otwartym. Z kolei ($x < -2) || ($x > 5) jest zupełnie odwrotnym warunkiem, który uruchamia pętlę, gdy x jest poza interesującym nas zakresem, co jest sprzeczne z założeniem. Ostatnia błędna opcja, ($x > -2) || ($x > 5), wskazuje na nieporozumienie, ponieważ pętla mogłaby być wykonywana nie tylko dla wartości mieszczących się w przedziale (-2, 5), ale również dla każdej wartości większej od 5, co nie jest zgodne z założeniem. Typowym błędem myślowym jest mylenie operatorów logicznych oraz ich zastosowań w warunkach, co prowadzi do niewłaściwych lub niespójnych wyników. W kontekście programowania, szczególnie ważne jest zrozumienie koncepcji otwartych i zamkniętych przedziałów oraz umiejętność ich poprawnego definiowania w warunkach logicznych, co ma kluczowe znaczenie w wielu algorytmach i strukturach kontrolnych.

Pytanie 14

Które stwierdzenie najlepiej opisuje klasę Owoc zdefiniowaną w języku PHP i przedstawioną na listingu?

class Owoc {
    public $nazwa;
    private $kolor;
    function set_nazwa($nazwa) {
        $this->nazwa = $nazwa;
    }
}
A. Zawiera dwa pola i jedną metodę, a pole kolor ma zasięg widzialności ograniczony wyłącznie do metod klasy.
B. Zawiera jedno pole i dwie metody, z których jedna ma ograniczony zasięg prywatny.
C. Zawiera dwa pola i jedną metodę, a pole nazwa ma zasięg widzialności ograniczony wyłącznie do metod klasy.
D. Zawiera dwa pola oraz jeden konstruktor, oba pola mają zasięg widzialności ograniczony wyłącznie do metod klasy.
Wiele z błędnych odpowiedzi opiera się na niewłaściwej interpretacji widoczności pól oraz liczby metod w klasie. Klasa Owoc ma jedno publiczne pole o nazwie nazwa oraz jedno prywatne pole kolor, co oznacza, że tylko metody wewnątrz klasy mogą uzyskiwać dostęp do pola kolor. Pierwsza odpowiedź sugeruje, że klasa ma jedno pole i dwie metody, co jest niezgodne z rzeczywistością, ponieważ nie zdefiniowano drugiej metody. Z kolei odpowiedzi wskazujące na istnienie konstruktora są również błędne, ponieważ klasa Owoc nie definiuje żadnego konstruktora, co oznacza, że PHP automatycznie generuje domyślny konstruktor, ale nie jest on jawnie widoczny w kodzie. Istotnym błędem jest również założenie, że pole nazwa ma ograniczoną widoczność, co nie jest prawdziwe, gdyż jest ono publiczne i dostępne z zewnątrz klasy. Takie nieprawidłowe wnioski mogą wynikać z braku zrozumienia podstawowych zasad programowania obiektowego oraz widoczności w PHP, co jest kluczowe dla poprawnego projektowania aplikacji. W szczególności, umiejętność rozróżnienia między różnymi poziomami widoczności (publiczne, prywatne, chronione) jest niezbędna dla efektywnego korzystania z obiektów i klas w tym języku.

Pytanie 15

Która z definicji tablicy asocjacyjnej w PHP jest składniowo poprawna?

A. $wiek = array({"Anna", "35"}, {"Ewa", "37"}, {"Oliwia", "43"});
B. $wiek = array("Anna"=35, "Ewa"=37, "Oliwia"=43);
C. $wiek = array("Anna"=>"35", "Ewa"=>"37", "Oliwia"=>"43");
D. $wiek = array([Anna, 35], [Ewa, 37], [Oliwia, 43]);
Definicja tablicy asocjacyjnej w języku PHP, przedstawiona jako $wiek = array("Anna"=>"35", "Ewa"=>"37", "Oliwia"=>"43");, jest poprawna składniowo. Tablice asocjacyjne to struktury danych, które pozwalają na przechowywanie wartości w parach klucz-wartość. Kluczami mogą być stringi lub liczby, a wartości mogą być różnego typu. Użycie operatora => jest kluczowe, ponieważ wskazuje, że dla danego klucza (np. "Anna") przypisana jest konkretna wartość (np. "35"). W praktyce tablice asocjacyjne są niezwykle użyteczne w wielu sytuacjach, takich jak przetwarzanie danych z formularzy, gdzie klucze odpowiadają nazwom pól, a wartości to wprowadzone przez użytkownika dane. Dzięki tablicom asocjacyjnym można z łatwością uzyskiwać dostęp do wartości, analizować je i manipulować, co czyni je standardowym narzędziem w programowaniu w PHP i praktycznym podejściem w tworzeniu aplikacji webowych.

Pytanie 16

Język PHP zapewnia wsparcie dla

A. obiektów przeglądarki
B. zdarzeń związanych z myszą
C. sesji i ciastek
D. klawiszy klawiatury
PHP, jako język skryptowy po stronie serwera, oferuje wsparcie dla zarządzania sesjami oraz ciasteczkami, co jest kluczowe w kontekście tworzenia aplikacji internetowych. Sesje w PHP umożliwiają przechowywanie danych użytkownika pomiędzy różnymi żądaniami HTTP, co jest istotne w przypadku potrzeb utrzymania stanu aplikacji, np. podczas logowania. Dzięki funkcjom takim jak session_start() można łatwo rozpocząć nową sesję lub wznowić istniejącą. Ciasteczka, z kolei, pozwalają na przechowywanie danych po stronie klienta, co umożliwia personalizację doświadczeń użytkowników na stronie. Przykładem może być zapisywanie preferencji użytkownika, takich jak język interfejsu. Dobre praktyki w zakresie obsługi sesji i ciasteczek obejmują stosowanie bezpiecznych identyfikatorów sesji, ograniczanie czasu życia ciasteczek, a także ich szyfrowanie, co chroni przed atakami typu session hijacking. W ten sposób PHP gwarantuje, że aplikacje są nie tylko funkcjonalne, ale także bezpieczne.

Pytanie 17

W języku PHP wyniki zapytania z bazy danych zostały pobrane przy użyciu polecenia mysql_query(). Aby uzyskać dane w postaci wierszy z tej zwróconej kwerendy, należy użyć polecenia:

A. mysql_fetch_lengths()
B. mysql_fetch_row()
C. mysql_field_len()
D. mysql_list_fields()
Niepoprawne odpowiedzi pokazują, że wiele osób ma problem z funkcjami, które są dostępne w starym rozszerzeniu MySQL w PHP. Na przykład, funkcja mysql_field_len() to nie to, co potrzebujesz do pobierania danych w wierszach – ona tylko zwraca długość danego pola w zestawie wyników. A mysql_fetch_lengths() z kolei zwraca długość danych w danym wierszu, co też nie rozwiązuje sprawy, bo nie dostajesz samej zawartości. Funkcja mysql_list_fields() służy do zwracania informacji o polach w zestawie wyników, co jednak nie ma związku z przetwarzaniem danych. Często popełnia się błąd w odróżnianiu funkcji dotyczących struktury danych od tych, które naprawdę zwracają dane. W programowaniu w PHP ważne jest, by wybierać odpowiednie funkcje w zależności od tego, co chcesz osiągnąć. Ludzie mogą się mylić myśląc, że funkcje związane ze strukturą i długością są tak samo przydatne jak te, które zwracają dane. Niestety, kończy się to dość kiepskim kodem, który nie działa jak należy. Dlatego warto znać różnice między tymi funkcjami, bo to naprawdę ma znaczenie przy pracy z PHP i przy wynikach zapytań do baz danych.

Pytanie 18

W aplikacji PHP, która zarządza bazą danych, aby uzyskać numer błędu oraz jego opis po dokonaniu jakiejkolwiek operacji, jakie funkcje powinny być wykorzystane?

A. tylko funkcję mysqli_error
B. funkcje mysqli_error i mysqli_connect_errno
C. funkcje mysqli_error i mysqli_errno
D. funkcje mysqli_error i mysqli_error_number
Wybór funkcji mysqli_error i mysqli_connect_errno nie jest właściwy, ponieważ mysqli_connect_errno jest funkcją przeznaczoną do uzyskiwania numeru błędu połączenia z bazą danych, a nie błędu SQL. Użycie tej funkcji w kontekście operacji na bazie danych prowadzi do mylnego wniosku, że jej zastosowanie jest uniwersalne dla wszystkich błędów. W rzeczywistości, mysqli_connect_errno powinno być stosowane głównie podczas nawiązywania połączenia, natomiast dla błędów związanych z zapytaniami SQL właściwe są inne funkcje. Z kolei wskazanie tylko na funkcję mysqli_error nie jest wystarczające, ponieważ sama dostarcza jedynie opisu błędu, a nie jego numeru, co ogranicza możliwości analizy i diagnostyki. Użytkownicy często popełniają błąd myślowy, zakładając, że pojedyncza funkcja może spełnić wszystkie potrzeby związane z obsługą błędów. W prawidłowym procesie zarządzania błędami w programowaniu, kluczowe jest użycie zestawu funkcji, które dostarczają zarówno opisy, jak i kody błędów, co pozwala na bardziej wszechstronną reakcję na różne sytuacje awaryjne. Ignorowanie tej zasady może prowadzić do nieefektywnego debugowania i długotrwałych problemów w działaniu aplikacji.

Pytanie 19

Jaką rolę pełni funkcja PHP o nazwie mysql_num_rows()?

A. zwraca ilość wierszy znajdujących się w rezultacie zapytania
B. numeruje rekordy w bazie danych
C. zwraca rekord o numerze podanym w argumencie funkcji
D. zwraca następny rekord z wynikami zapytania
Wybór odpowiedzi, że funkcja mysql_num_rows() zwraca rekord, którego numer podany został w parametrze funkcji, jest błędny, ponieważ nie odzwierciedla rzeczywistego działania tej funkcji. mysql_num_rows() nie ma możliwości indeksowania rekordów ani bezpośredniego ich zwracania; jej jedyną rolą jest zliczanie wierszy w zestawie wyników z zapytania SQL. Kolejny wybór sugerujący, że funkcja ponumerowuje rekordy w bazie danych, uwidacznia nieporozumienie dotyczące operacji na bazach danych. W rzeczywistości, numeracja rekordów jest zadaniem, które powinno być rozwiązywane na poziomie aplikacji, a nie na poziomie bazy danych. Również odpowiedź mówiąca, że funkcja zwraca kolejny rekord z wynikami zapytania, wprowadza w błąd, ponieważ mysql_num_rows() nie jest przeznaczona do nawigacji po wynikach; nie zwraca konkretnego rekordu, lecz jedynie liczbę dostępnych wierszy. Typowy błąd myślowy przy takich odpowiedziach polega na pomyleniu funkcji do zliczania z funkcjami, które manipulują lub przetwarzają dane. Rozumienie funkcji i ich właściwości jest kluczowe dla efektywnego programowania w PHP oraz dla optymalizacji interakcji z bazami danych.

Pytanie 20

Warunek zapisany w PHP wyświetli liczbę, jeśli

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. jest ona parzysta
B. jest ona liczbą pierwszą
C. wynik dzielenia liczby przez 2 wynosi 0
D. jest ona dodatnia
Warunek zapisany w języku PHP używa operatora modulo (%) do sprawdzenia, czy dana liczba jest parzysta. Operator modulo zwraca resztę z dzielenia liczby przez inną liczbę co w przypadku parzystości oznacza że reszta z dzielenia liczby przez 2 wynosi 0. W praktyce wykorzystuje się to do sprawdzenia czy liczba jest podzielna przez 2 bez reszty co jest definicją liczby parzystej. W kodowaniu warunki te są przydatne w algorytmach które wymagają działania na liczbach parzystych lub nieparzystych jak np. filtrowanie danych czy sortowanie. Dobre praktyki programistyczne sugerują wykorzystywanie tego typu operacji w przypadku gdy istnieje potrzeba optymalizacji warunków logicznych w kodzie. Umiejętność rozpoznawania i implementacji takich wzorców kodowania jest kluczowa dla pisania efektywnego i czytelnego kodu. Dzięki temu łatwiej można zarządzać dużymi zbiorami danych i operować na nich w sposób zautomatyzowany co jest podstawą w dzisiejszych aplikacjach webowych.

Pytanie 21

W której superglobalnej tablicy w PHP należy przechowywać informacje dotyczące logowania użytkownika w sposób gwarantujący ich bezpieczeństwo?

A. $_COOKIE
B. $_SERVER
C. $_FILES
D. $_SESSION
Wybór $_COOKIE do przechowywania danych logowania to kiepski pomysł z kilku powodów. Ciasteczka są trzymane po stronie klienta, co znaczy, że mogą być łatwo dostępne dla innych, a to stwarza poważne zagrożenie dla bezpieczeństwa. Na przykład, hakerzy mogą wykraść ciasteczka przez różne techniki, takie jak XSS, co mogłoby prowadzić do nieautoryzowanego dostępu do kont. Poza tym, ciasteczka mają ograniczoną pojemność i użytkownik może je modyfikować, co czyni je nieodpowiednim miejscem na wrażliwe dane. Używanie $_FILES także jest nietrafione, bo ta tablica służy do obsługi plików przesyłanych przez użytkowników, a nie zarządzania sesjami. $_SERVER to z kolei tablica, która ma informacje o serwerze oraz zapytaniach, ale nie nadaje się do trzymania danych użytkowników. Typowym błędem przy wyborze $_COOKIE czy $_SERVER jest to, że nie rozumie się ich funkcji, co może prowadzić do niebezpiecznych sytuacji. Żeby dobrze zabezpieczyć dane logowania, najlepiej korzystać z sesji, bo są zaprojektowane właśnie do tego i oferują znacznie lepszą ochronę.

Pytanie 22

Interpreter PHP zgłosi błąd i nie zrealizuje kodu, jeśli programista:

A. będzie pisać kod bez zastosowania wcięć
B. nie umieści średnika po wyrażeniu w instrukcji if, gdy po nim występuje sekcja else
C. będzie definiował zmienne w obrębie warunku
D. pobierze dane z formularza, w którym pole input pozostało puste
W przypadku instrukcji warunkowej if w PHP, każdy blok kodu, który jest wykonywany w przypadku prawdziwego warunku, powinien być poprawnie zakończony średnikiem, z wyjątkiem konstrukcji, które są wstawiane bezpośrednio w ramy instrukcji, jak else. Jeżeli programista nie postawi średnika po wyrażeniu if, a następnie użyje sekcji else, to interpreter PHP zgłosi błąd składniowy. Jest to istotne, ponieważ każda linia kodu w PHP, która wykonuje jakąkolwiek operację, musi być zakończona średnikiem, co jest standardową praktyką w językach programowania. Przykład poprawnej konstrukcji: if ($warunek) { // kod } else { // kod }. W przypadku braku średnika może to prowadzić do nieprzewidzianych błędów w kodzie, co z kolei wpłynie na stabilność aplikacji. Przestrzeganie takich zasad jest kluczowe dla osiągnięcia dobrej jakości kodu oraz jego łatwości w utrzymaniu.

Pytanie 23

Jaki jest cel funkcji napisanej w PHP?

function fun1($liczba)
{
  if($liczba % 2 == 0)
    return 1;

  return 0;
}
A. Zwrócenie wartości 0, gdy liczba jest parzysta
B. Wypisanie liczby parzystej
C. Zwrócenie wartości 1, gdy liczba jest parzysta
D. Wypisanie liczby nieparzystej
Analizując błędne odpowiedzi, należy skupić się na różnicy między funkcją zwracającą wartość a funkcją wypisującą wynik. Wypisanie liczby parzystej sugerowałoby użycie funkcji echo lub print, co w kodzie nie występuje. Funkcja zwraca wartość za pomocą instrukcji return, co jest istotnym rozróżnieniem w kontekście projektowania funkcji. Wypisanie liczby nieparzystej również nie jest zgodne z treścią funkcji, ponieważ nie ma instrukcji ani warunku, który wskazywałby na takie działanie. Funkcja została zaprojektowana do zwracania wartości logicznej (w tym przypadku liczbowej 1 lub 0), które w dalszej części programu mogą być używane do podejmowania decyzji. Typowym błędem jest niezrozumienie różnicy między wypisywaniem a zwracaniem wartości oraz błędna interpretacja operatora modulo, który w tym przypadku jest kluczowy do zrozumienia działania funkcji. Brakującym elementem w niepoprawnych odpowiedziach jest również właściwe odczytanie instrukcji return i jej wpływu na przepływ sterowania w programie, co często prowadzi do nieporozumień w analizie kodu.

Pytanie 24

Jaki wynik daje poniższy kod PHP?

$dane = array ('imie' => 'Anna', 'nazwisko' => 'Nowak', 'wiek' => 21);
A. definiuje tablicę z trzema wartościami
B. jest niepoprawny, nieznany operator =>
C. określa tablicę zawierającą sześć wartości
D. jest błędny, ponieważ indeksami tablicy mogą być wyłącznie liczby całkowite
Ten kod w PHP pokazuje, jak zdefiniować tablicę asocjacyjną z trzema elementami. To fajna sprawa, bo tablice asocjacyjne pozwalają na użycie kluczy, które nie muszą być tylko liczbami, a mogą być także opisowe, jak w tym przypadku. Klucze to 'imie', 'nazwisko' oraz 'wiek', a ich wartości to odpowiednio 'Anna', 'Nowak' i 21. Operator '=>' służy do przypisywania wartości do klucza - to dość typowa konstrukcja, bo ułatwia organizację danych. Podoba mi się, że tablice asocjacyjne w PHP są przydatne w różnych sytuacjach, na przykład do przechowywania danych użytkowników czy różnych ustawień. W sumie, ważne, żeby dbać o typy danych przypisywanych do kluczy, bo dzięki temu później łatwiej będzie się z nimi pracować. PHP ma dużo funkcji do pracy z tablicami, jak sortowanie czy iteracja, więc na pewno warto to znać.

Pytanie 25

W języku PHP symbol "//" oznacza

A. początek komentarza jednoliniowego
B. operator dzielenia całkowitego
C. początek skryptu
D. operator alernatywy
W PHP znak "//" oznacza początek komentarza jednoliniowego. Komentarze są niezwykle ważnym elementem kodu, ponieważ pozwalają programistom na dodawanie objaśnień i notatek, które nie są wykonywane przez interpreter. Dzięki temu kod staje się bardziej czytelny i łatwiejszy w utrzymaniu, zwłaszcza w projektach zespołowych czy przy dłuższych skryptach. Na przykład, można użyć komentarza, aby wyjaśnić, jak działa dana funkcjonalność lub dlaczego podjęto określoną decyzję projektową. Ponadto, stosowanie komentarzy zgodnie z dobrymi praktykami zwiększa jakość dokumentacji projektu oraz ułatwia przyszłym programistom (lub samemu autorowi) zrozumienie logiki kodu. Warto również zauważyć, że w PHP istnieją inne sposoby komentowania, takie jak "#" dla komentarzy jednoliniowych oraz "/* ... */" dla komentarzy wieloliniowych. Użycie komentarzy w kodzie źródłowym jest istotnym aspektem programowania, promującym najlepsze praktyki związane z czytelnością i zarządzaniem projektami.

Pytanie 26

Skrypt na stronę WWW stworzony w języku PHP

A. jest wykonywany po stronie serwera
B. jest przetwarzany w taki sam sposób jak JavaScript
C. może działać bez wsparcia serwera WWW
D. jest realizowany po stronie klienta
Kod PHP jest przetwarzany po stronie serwera, co oznacza, że wszystkie instrukcje napisane w tym języku są wykonywane na serwerze, a nie na komputerze klienta. Kiedy użytkownik żąda strony internetowej, serwer WWW interpretuje kod PHP, generuje odpowiedni HTML i wysyła go do przeglądarki. Dzięki temu możliwe jest dynamiczne tworzenie treści, uzależnionej od danych wejściowych użytkownika czy zawartości bazy danych. Przykładowo, w aplikacjach internetowych takich jak systemy zarządzania treścią (CMS) czy platformy e-commerce, PHP pozwala na generowanie różnorodnych widoków i interakcji w oparciu o aktualne informacje. Kluczowym aspektem dobrej praktyki w programowaniu w PHP jest separacja logiki aplikacji od warstwy prezentacji, co wspiera łatwiejsze zarządzanie kodem i jego utrzymanie. Warto również zaznaczyć, że PHP współpracuje z różnymi systemami baz danych, co umożliwia przechowywanie i przetwarzanie dużych ilości danych. Na przykład, w typowej aplikacji webowej można wykorzystać PHP do komunikacji z bazą MySQL, co pozwala na dynamiczne ładowanie treści w odpowiedzi na interakcje użytkownika.

Pytanie 27

Wskaż funkcję PHP, która umożliwia zapisanie odczytanej zawartości pliku do zmiennej, która reprezentuje ciąg znaków?

A. file_get_contents()
B. fwrite()
C. get_file()
D. eof()
Odpowiedzi takie jak fwrite(), eof() oraz get_file() nie są prawidłowe w kontekście odczytu zawartości pliku do zmiennej. fwrite() jest funkcją przeznaczoną do zapisywania danych do pliku, co oznacza, że zamiast odczytu, jej zastosowanie polega na wprowadzaniu danych do plików, co jest odwrotne do potrzebnego działania. eof() natomiast sprawdza, czy osiągnięto koniec pliku, ale nie ma związku z odczytem zawartości pliku do zmiennej; jest to funkcja używana w kontekście strumieni plikowych. Wreszcie, get_file() nie jest standardową funkcją PHP i nie istnieje w dokumentacji PHP. Tego rodzaju błędy mogą wynikać z nieporozumienia dotyczącego funkcji i ich zastosowania w PHP. Ważne jest, aby przy wyborze funkcji kierować się ich specyfiką i przeznaczeniem. Właściwa wiedza na temat dostępnych funkcji oraz ich właściwego użycia jest kluczowa w programowaniu, aby uniknąć błędów logicznych i technicznych w kodzie.

Pytanie 28

Który z poniższych skryptów pokazuje bieżącą datę oraz czas w formacie 2024-04-14 13:45:19?

A. <?php date("Y-m-d G:i:s"); ?>
B. <?php echo date("Y-m-d G:i:s"); ?>
C. <?php echo date("Ymd Gis"); ?>
D. <?php date("Y-m-d”) + time("G:i:s"); ?>
W pierwszej odpowiedzi użycie date oraz time jest niepoprawne, ponieważ funkcja time w PHP nie przyjmuje parametrów i zwraca znacznik czasu Unix, który nie formatuje czasu w sposób czytelny dla użytkownika. Próba dodawania tych dwóch funkcji powoduje błąd składniowy, ponieważ nie można łączyć wyników funkcji za pomocą operatora + w ten sposób. Druga odpowiedź używa funkcji echo poprawnie, ale formatowanie daty i czasu jest błędne. W tej odpowiedzi brakuje łączników pomiędzy elementami daty i czasu, co powoduje nieczytelny wynik, taki jak 20190923 105816. Ponadto, nie zastosowano dwukropków pomiędzy godziną minutami i sekundami, co jest kluczowe dla zrozumienia przez użytkownika. Trzecia odpowiedź zawiera poprawne formatowanie daty i czasu, ale nie używa funkcji echo, co oznacza, że wynik nie zostanie wyświetlony użytkownikowi. W PHP funkcja date musi być połączona z echo lub print, aby jej wynik był widoczny na stronie. Typowy błąd myślowy polega na nierozróżnieniu między formatowaniem a wyświetlaniem danych, co jest kluczowe w programowaniu webowym. Zrozumienie tych zasad jest fundamentalne dla tworzenia dynamicznych i interaktywnych aplikacji.

Pytanie 29

Na temat zmiennej predefiniowanej $_POST w języku PHP możemy stwierdzić, że

A. zawiera dane przesłane do skryptu z formularza
B. jest repliką tablicy $_COOKIE
C. zawiera informacje bezpośrednio przesłane do skryptu z ciasteczka
D. jest rozwiniętą wersją tablicy $_SESSION
Zmienna predefiniowana $_POST w języku PHP jest kluczowym elementem, który umożliwia przesyłanie danych z formularzy HTML do skryptu PHP. Gdy użytkownik wypełnia formularz i wysyła go, wszystkie dane z tego formularza są dostępne w tablicy asocjacyjnej $_POST, co pozwala na łatwe przetwarzanie danych w backendzie. Przykładowo, jeśli formularz zawiera pola takie jak 'imię' i 'email', po wysłaniu skrypt PHP może uzyskać te wartości poprzez $_POST['imię'] oraz $_POST['email']. To podejście jest zgodne z najlepszymi praktykami w programowaniu webowym, gdzie oddziela się logikę prezentacji od logiki przetwarzania danych. Ponadto, korzystając z $_POST, programiści mogą bezpiecznie odbierać dane bez obaw o ich modyfikację przez użytkownika, ponieważ nie są one widoczne w adresie URL, jak w przypadku metody GET. Warto również zauważyć, że korzystając z $_POST, można przesyłać różnorodne dane, w tym tekst, pliki i inne formaty, co czyni tę metodę niezwykle wszechstronną.

Pytanie 30

Fragment kodu w języku PHP ma następującą postać: Zakładając, że zmienne: a, b, c przechowują wartości numeryczne, wynikiem działania warunku będzie wypisanie liczby

if ($a > $b && $a > $c)   echo $a;
else if ($b > $c)   echo $b;
else   echo $c;
A. najmniejszej.
B. największej.
C. nieparzystej.
D. parzystej.
Wybór innej odpowiedzi niż 'największa' sugeruje, że nie do końca rozumiesz logikę warunków logicznych w kodzie PHP. Fragment kodu na zdjęciu analizuje wartości trzech zmiennych i wypisuje największą z nich, nie mając nic wspólnego z tym, czy liczba jest parzysta czy nieparzysta. Tego typu warunki byłyby realizowane przy użyciu operatorów matematycznych, takich jak modulo (%). Również wybór 'najmniejsza' jako odpowiedzi sugeruje niezrozumienie, ponieważ kod wyraźnie porównuje zmienne i wypisuje największą, a nie najmniejszą. Jest to częsty błąd, powodowany przez niezrozumienie zasady działania warunków w językach programowania. Zrozumienie, jak porównywane są zmienne i jakie są rezultaty tych porównań, jest kluczowe dla efektywnego tworzenia kodu i rozwiązywania problemów programistycznych.

Pytanie 31

W przedstawionym kodzie PHP w miejscu kropek powinno zostać umieszczone polecenie

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++)
{
  $wiersz = ……………………………….;
  echo "$wiersz[0] $wiersz[1]";
}
A. mysqli_num_fields($zapytanie);
B. mysqli_fetch_row($zapytanie);
C. mysqli_free_result($zapytanie);
D. mysqli_query($zapytanie);
W kontekście przedstawionego kodu PHP, prawidłowe uzupełnienie wiersza poleceń to użycie funkcji mysqli_fetch_row($zapytanie). Funkcja ta pobiera jeden wiersz z zestawu wyników zapytania jako tablicę indeksowaną numerycznie. Jest to istotny krok w procesie przetwarzania danych z bazy danych, ponieważ po wykonaniu zapytania SQL, dane muszą być odpowiednio odczytane, aby można je było wykorzystać w aplikacji. Przykładowo, po wykonaniu zapytania, możemy mieć wiele wierszy danych, a mysqli_fetch_row pozwala na iteracyjne pobieranie każdego z nich. W praktyce, stosując tę funkcję w pętli, możemy w prosty sposób zbudować listę lub tabelę, wyświetlając imię i nazwisko każdego użytkownika. Warto również pamiętać, że przy pracy z bazami danych ważne jest, aby uważnie monitorować proces pobierania danych, by uniknąć problemów z pamięcią, a także aby zwolnić zasoby po zakończeniu operacji. W związku z tym, standardową praktyką jest również stosowanie mysqli_free_result($zapytanie) po zakończeniu pracy z danymi, co pozwala na efektywne zarządzanie pamięcią.

Pytanie 32

O zmiennej predefiniowanej

$_POST 
w języku PHP można stwierdzić, że
A. zawiera dane bezpośrednio dostarczone do skryptu z ciasteczka
B. jest rozwiniętą wersją tablicy $_SESSION
C. zawiera dane przesłane do skryptu za pośrednictwem formularza
D. jest odwzorowaniem tablicy $_COOKIE
Odpowiedź, że zmienna predefiniowana $_POST zawiera dane przesłane do skryptu z formularza, jest w pełni poprawna. W języku PHP, $_POST to jedna z superglobalnych tablic, która umożliwia dostęp do danych przesyłanych metodą POST. Metoda ta jest powszechnie stosowana w formularzach HTML, gdzie użytkownik może wprowadzać dane, które następnie są wysyłane do serwera. Na przykład, formularz kontaktowy, w którym użytkownik wprowadza swoje imię i adres e-mail, może być przetwarzany za pomocą $_POST, co pozwala na łatwą i bezpieczną obsługę danych. Dobrą praktyką jest również walidacja danych przed ich użyciem, aby zminimalizować ryzyko ataków, takich jak SQL Injection czy XSS. Dzięki zastosowaniu $_POST, programiści mogą przechwytywać i przetwarzać dane użytkowników w bardziej zaawansowany sposób, co pozwala na dynamiczne generowanie treści i interakcję z użytkownikami.

Pytanie 33

W języku PHP do zmiennej a przypisano tekst, w którym wielokrotnie występuje słowo Kowalski. W celu zamiany wszystkich wystąpień słowa Kowalski na słowo Nowak w zmiennej a, należy użyć polecenia

A. $a = str_replace('Kowalski', 'Nowak', $a);
B. $a = str_rep('Kowalski', 'Nowak', $a);
C. $a = str_replace('Nowak', 'Kowalski');
D. $a = str_replace('Nowak', 'Kowalski', $a);
Odpowiedź $a = str_replace('Kowalski', 'Nowak', $a); jest na pewno dobra! Używasz funkcji str_replace, która w PHP jest mega przydatna do zamiany tekstu. W tym przypadku, pierwsza część to słowo, które chcesz zmienić ('Kowalski'), druga to nowy tekst, którym je zastępujesz ('Nowak'), a trzecia to zmienna, na której pracujesz. Funkcja zwraca nowy tekst, gdzie wszystkie 'Kowalski' stały się 'Nowakami'. To super rozwiązanie, bo str_replace działa na wszystkich przypadkach podanego słowa, co sprawia, że jest naprawdę użyteczna w przetwarzaniu tekstów. Na przykład, jak a zawiera 'Kowalski, Kowalski i Kowalski', to po tym poleceniu dostaniesz 'Nowak, Nowak i Nowak'. Użycie tej funkcji to świetna praktyka w programowaniu, bo pisanie przejrzystego i efektywnego kodu to podstawa.

Pytanie 34

Określ wynik działania załączonego kodu PHP, przy założeniu, że zmienna tab jest tablicą.

$tab = explode(", ", "jelenie,sarny,dziki,lisy,borsuki");
echo $tab[1]." ".$tab[2];
A. lisy borsuki
B. dziki lisy
C. sarny dziki
D. jelenie sarny
Zgadza się, Twoja odpowiedź jest właściwa. W tym kodzie PHP używamy funkcji 'explode()', żeby zamienić ciąg znaków na tablicę, używając przecinków do rozdzielenia. Potem, dwa elementy z tej tablicy, czyli drugi i trzeci, są wypisywane. Wynik tego kodu będzie różny w zależności od tego, co mamy w tablicy 'tab'. Dla tego przykładu, poprawna odpowiedź to 'sarny dziki'. Możemy przypuszczać, że po użyciu 'explode()' tablica wygląda tak: ['jakiś_element', 'sarny', 'dziki', ...]. To naprawdę przydatna funkcjonalność, zwłaszcza kiedy musimy przetwarzać dane od użytkownika lub z pliku. Funkcję 'explode()' często spotykamy w PHP, gdy bawi się z ciągami, i to dobry sposób na ich manipulację.

Pytanie 35

Gdy zmienna $x przechowuje dowolną dodatnią liczbę naturalną, poniższy kod źródłowy PHP ma na celu wyświetlenie:

$licznik = 0;
while ($licznik != $x) 
{
    echo $licznik;
    $licznik++;
}
A. kolejne liczby od x do 0
B. liczby wprowadzane z klawiatury, aż do momentu wprowadzenia wartości x
C. kolejne liczby od 0 do x-1
D. przypadkowe liczby z zakresu (0, x)
Analizując niepoprawne odpowiedzi, można zauważyć kilka błędnych założeń. Pierwsze z nich zakłada, że kod ma za zadanie wyświetlać liczby wczytywane z klawiatury, aż wczytana zostanie wartość x. Nie jest to poprawne, ponieważ nie ma tu żadnej interakcji z użytkownikiem - wszystko odbywa się automatycznie na podstawie zadeklarowanej wartości x. Druga błędna odpowiedź sugeruje, że liczby są wyświetlane od x do 0, co jest nieprawidłowe, ponieważ pętla zaczyna od 0 i kończy na x-1. Trzecia niepoprawna odpowiedź sugeruje, że kod generuje losowe liczby z przedziału (0, x). Nie jest to prawda, ponieważ nie ma tu żadnego mechanizmu generowania liczb losowych. To błędne przypuszczenie wynika prawdopodobnie z niewłaściwego zrozumienia mechanizmu pętli i operacji na zmiennych. Wszystkie te błędne odpowiedzi pokazują, jak ważne jest prawidłowe rozumienie podstawowych konstrukcji języka programowania i mechanizmów sterowania przepływem danych.

Pytanie 36

Na podstawie przydzielenia wartości do zmiennych w języku PHP można zauważyć, że

$zmienna1 = 15;
$zmienna2 = "15";
$zmienna3 = (string) $zmienna1;
A. wszystkie zmienne mają ten sam typ.
B. zmienna1 i zmienna2 mają ten sam typ.
C. zmienna2 i zmienna3 mają ten sam typ.
D. zmienna1 i zmienna3 mają ten sam typ.
Dobrze widzisz, że $zmienna2 i $zmienna3 mają ten sam typ. Obie przechowują wartości jako stringi, co jest spoko. $zmienna2 to łańcuch z "15", a $zmienna3 to wynik rzutowania $zmienna1 (która jest liczbą całkowitą) na string. W PHP takie rzutowanie to normalna sprawa i nie zmienia wartości, tylko jej format. W praktyce, jeżeli dobrze rozumiesz typy danych, to ułatwia Ci to życie w programowaniu. Różne typy mogą wpływać na to, jak działają operacje i jak dane są przechowywane. Warto więc pamiętać, żeby w kodzie jasno definiować typy zmiennych i używać rzutowania tam, gdzie trzeba, bo to pomaga unikać błędów. Jak się w to wczujesz, to łatwiej będzie Ci ogarniać pamięć i optymalizować kod, zwłaszcza w większych projektach.

Pytanie 37

Program stworzony w języku PHP ma na celu wyliczenie średniej pozytywnych ocen ucznia w zakresie od 2 do 6. Warunek doboru ocen w pętli obliczającej średnią powinien być oparty na wyrażeniu logicznym

A. $ocena >= 2 or $ocena <= 6
B. $ocena > 2 or $ocena < 6
C. $ocena >= 2 and $ocena <= 6
D. $ocena > 2 and $ocena < 6
Odpowiedź $ocena >= 2 and $ocena <= 6 jest poprawna, ponieważ dokładnie określa zakres ocen, które mają być uwzględniane w obliczeniach średniej. Użycie operatora logicznego 'and' zapewnia, że tylko oceny mieszczące się w podanym przedziale, włączając 2 i 6, będą brane pod uwagę. To podejście jest zgodne z zasadami programowania, które zalecają jasne definiowanie warunków w pętlach, aby uniknąć niejednoznaczności. Na przykład, w praktycznych zastosowaniach edukacyjnych, w których oceny są przetwarzane, takie wyrażenie logiczne zapewnia, że nie zostaną uwzględnione oceny poniżej 2 czy powyżej 6, co mogłoby zniekształcić wyniki. Dodatkowo, stosowanie operatorów porównania, takich jak >= i <=, jest najlepszą praktyką w programowaniu, gdyż zwiększa czytelność kodu i minimalizuje ryzyko błędów. W kontekście PHP, można wykorzystać ten warunek w pętli foreach, aby iterować przez tablicę ocen i sumować tylko te, które spełniają kryteria, co przyczyni się do uzyskania poprawnej średniej.

Pytanie 38

Poniższy fragment kodu PHP funkcjonuje poprawnie i ma na celu wyświetlenie na stronie internetowej informacji pobranych kwerendą z bazy danych. Ile pól zostanie wyświetlonych na stronie?

$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++) 
{
    $wiersz = mysqli_fetch_row($zapytanie); 
    echo "<p>Klient: $wiersz[0] $wiersz[1], adres: $wiersz[2] </p>";
}
A. Z dwóch pól
B. Z czterech pól
C. Z jednego pola
D. Z trzech pól
Wybranie niepoprawnych odpowiedzi, takich jak 'z jednego pola' czy 'z dwóch pól', może wynikać z niepoprawnego zrozumienia struktury danych zwracanych przez funkcję mysqli_fetch_row. Odpowiedzi te sugerują, że użytkownik może nie dostrzegać, że funkcja ta zwraca wszystkie kolumny z wiersza jako elementy tablicy, co ma kluczowe znaczenie w kontekście przetwarzania wyników zapytań. Odpowiedzi wskazujące na jedno lub dwa pola mogą prowadzić do błędnych wniosków, ponieważ ignorują one pełny zakres danych, które są dostępne w każdym wierszu. W praktyce, często umieszcza się w bazie danych więcej informacji, a każda kolumna odpowiada innemu atrybutowi obiektu, na przykład klienta. Dlatego jeśli zapytanie SQL zwraca trzy kolumny, to oczekiwanym wynikiem powinno być właśnie wyświetlenie tych trzech, co podkreśla istotność precyzyjnego formułowania zapytań i poprawnego odczytywania wyników. Zrozumienie struktury danych jest kluczowe dla poprawnego odczytu wyników i ich późniejszego wykorzystania, co potwierdzają standardy związane z programowaniem w PHP oraz obsługą baz danych.

Pytanie 39

Kiedy dane z formularza są przesyłane w sposób jawny jako parametry w adresie URL, w skrypcie PHP można je odczytać za pomocą tablicy

A. $_GET
B. $_POST
C. $_COOKIE
D. $_SESSION
Odpowiedzi 2, 3 i 4 są niepoprawne w kontekście przesyłania danych przez adres URL. Odpowiedź 2, odnosząca się do tablicy $_POST, jest używana do odbierania danych przesyłanych z formularzy za pomocą metody POST. W przeciwieństwie do GET, POST nie ujawnia danych w adresie URL, co czyni go bardziej odpowiednim dla przesyłania wrażliwych informacji, takich jak hasła. Użytkownicy często mylą te dwie metody, co może prowadzić do nieprawidłowego stosowania metod w sytuacjach, które powinny być odpowiednio zabezpieczone. Odpowiedzi 3 i 4 odnoszą się do tablic $_COOKIE i $_SESSION, które służą do zarządzania danymi sesji i przechowywania danych na urządzeniu klienta. $_COOKIE jest używane do przechowywania małych ilości danych na komputerze użytkownika, które mogą być wykorzystane w kolejnych wizytach, natomiast $_SESSION przechowuje dane sesyjne po stronie serwera, umożliwiając śledzenie stanu użytkownika podczas przeglądania aplikacji. Pomimo, że wszystkie te tablice są ważnymi narzędziami w PHP, żadna z nich nie jest odpowiednia w kontekście przesyłania danych przez URL, co jest kluczowe dla zrozumienia różnic między metodami przesyłania danych i ich bezpieczeństwem.

Pytanie 40

Na podstawie przedstawionego kodu PHP wskaż ile wynosi czas ważności ustawionego ciasteczka?

A. 1 godzina.
B. 24 godziny.
C. 24 doby.
D. 1 minuta.
Ten fragment kodu PHP jest dobrym przykładem, jak łatwo pomylić się przy interpretowaniu czasu życia ciasteczka. Wiele osób widząc wartość '24' w nazwie albo w wartości ciasteczka automatycznie kojarzy to z 24 godzinami czy 24 dobami. Tymczasem w ogóle nie ma to znaczenia dla czasu ważności. O tym, jak długo cookie będzie żyło, decyduje wyłącznie trzeci parametr funkcji setcookie(), czyli tutaj: time() + 60. Funkcja time() zwraca aktualny czas w sekundach, a liczba 60 to po prostu 60 sekund. Nie ma tu żadnej „magii” powiązanej z liczbą 24. Częsty błąd polega na tym, że ktoś myśli kategoriami: godziny, dni, a nie sekund. W PHP czas wygaśnięcia w setcookie musi być podany jako konkretny znacznik czasowy UNIX, więc programista musi sam przeliczyć sobie minuty czy godziny na sekundy. Jeśli ktoś pomyśli, że 60 to np. 60 minut, to w praktyce pomyli się dokładnie 60 razy. Podobnie założenie, że skoro wartość ciasteczka to '24', to ciasteczko będzie ważne 24 godziny lub 24 doby, wynika z mieszania znaczenia logicznego danych z mechanizmem technicznym ich przechowywania. Wartość '24' to po prostu tekst przechowywany w cookie, bez żadnego automatycznego powiązania z czasem. Z mojego doświadczenia takie pomyłki biorą się też z porównywania do innych technologii, gdzie czas ustawia się np. w minutach. W PHP (i generalnie w mechanizmie UNIX time) wszystko liczymy w sekundach. Dlatego dobre praktyki mówią, żeby zawsze jawnie pisać wyrażenia typu 60 * 60 (godzina), 60 * 60 * 24 (doba), zamiast samego „3600” czy „86400”, bo to od razu sugeruje, o jaką jednostkę chodzi i ogranicza ryzyko złej interpretacji. Jeżeli programista nie rozumie tej konwencji, będzie projektował mechanizmy sesji, logowania czy koszyków zakupów z błędnymi czasami życia ciasteczek, co może prowadzić do irytujących sytuacji dla użytkownika, a nawet do problemów z bezpieczeństwem (np. zbyt długie przechowywanie wrażliwych informacji). Dlatego tak ważne jest, żeby przy każdym użyciu setcookie() świadomie przeliczać czas na sekundy i nie sugerować się nazwą ani wartością samego ciasteczka.