Arkusz INF.03 : 2026 - styczeń - zad. 11 (php)
Oznaczenie: INF.03-11-26.01-SG Limit czasu: 150 minut
Zadanie egzaminacyjne
- UWAGA!
- Numer, którym został podpisany arkusz egzaminacyjny (PESEL lub w przypadku jego braku, numer paszportu) jest w zadaniu nazywany numerem zdającego.
Wykonaj aplikację internetową portalu kina, wykorzystując pakiet XAMPP oraz edytor zaznaczający składnię.
Aby wykonać zadanie, należy zalogować się na konto Egzamin bez hasła. Na pulpicie znajduje się archiwum zip o nazwie PlikiSt202611 zabezpieczone hasłem: @ktorzy+f1Lmy
Archiwum należy rozpakować.
Na pulpicie konta Egzamin należy utworzyć folder. Jako nazwy folderu należy użyć numeru zdającego. Po skończonej pracy wszystkie wyniki należy zapisać w tym folderze.
Operacje na bazie danych
Baza danych zawiera połączone relacją tabele przedstawione na Ilustracji 1. Tabela aktorzy zawiera rekordy opisujące aktorów oraz nazwę pliku awatara. Tabela filmy zawiera rekordy opisujące produkcje filmowe, pole czas_trwania zawiera długość filmu wyrażoną w minutach. Tabela filmy_aktorzy jest realizacją relacji n:m pomiędzy tabelami filmy i aktorzy.
Ilustracja 1. Baza danych
Za pomocą narzędzia phpMyAdmin wykonaj następujące operacje na bazie danych:
- Utwórz bazę danych o nazwie
kino, z zestawem polskich znaków (np.utf8_unicode_ci) - Z rozpakowanego archiwum zaimportuj do utworzonej bazy dane z pliku
kino.sql - Wykonaj zrzut ekranu po imporcie. Zapisz zrzut w formacie
PNGpod nazwąimport. Nie kadruj zrzutu. Powinien on obejmować cały ekran monitora, z widocznym paskiem zadań. Na zrzucie powinny być widoczne elementy wskazujące na poprawnie wykonany import tabel - Wykonaj
zapytania SQLdziałające na baziekino. Zapytania zapisz w plikukwerendy.txt. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacieJPEGi nadaj im nazwykw1,kw2,kw3,kw4,kw5. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań- Zapytanie 1: wybierające jedynie
identyfikator,tytuł,rok produkcjiorazczas trwania, dla filmów które trwają nie krócej niż100 minut - Zapytanie 2: wybierające jedynie
imię,nazwiskoinazwę pliku awataraaktora, którego identyfikator to3 - Zapytanie 3: wybierające wszystkie dane o aktorach, sortując je według
nazwiskaiimieniaalfabetycznie (rosnąco) - Zapytanie 4: wybierające jedynie
identyfikatory,tytułyorazrok produkcjifilmów, w których gra aktor z identyfikatorem3. Należy posłużyć sięrelacją - Zapytanie 5: wybierające
idaktora oraz zliczająceliczbę filmów, alias „liczba_filmow”, w których grał każdy aktor, pogrupowane ze względu naidentyfikator aktora
- Zapytanie 1: wybierające jedynie
Witryna internetowa
Ilustracja 2. Wygląd strony w pliku index.php, kursor znajduje się na drugim awatarze
Witryna internetowa składa się z plików index.php oraz aktor.php. Ich wygląd przedstawiono na ilustracjach 2 i 4.
Cechy wspólne dla obu plików:
- Zapisane w języku
HTML5 - Zadeklarowany
polskijęzyk zawartości witryny - Jawnie zastosowany właściwy standard kodowania polskich znaków
- Arkusz stylów w pliku o nazwie
styl.csswłaściwie połączony z kodem strony - Podział strony na bloki zrealizowany za pomocą
semantycznych znacznikówbloków językaHTML5tak, aby po uruchomieniu w przeglądarce układ bloków na stronie był zgodny zIlustracją 3
Ilustracja 3. Układ bloków

- Zawartość bloku nagłówkowego 1: nagłówek
drugiegostopnia zawierający odnośnik do plikuindex.phpo treści „KinoTEKA” - Zawartość bloku nagłówkowego 2: paragraf o treści „W naszej bazie znajdują się najlepsi aktorzy”. Tekst ten jest zapisany w znaczniku semantycznym oznaczającym tekst
uwypuklony, formatowany domyślnie jakopochylony - Zawartość stopki: paragraf o treści „Autor: ”, dalej wstawiony
numer zdającego. Numer zdającego jest zapisany w znaczniku semantycznym oznaczającym tekstważny, formatowany domyślnie jakopogrubiony
Cechy dotyczące pliku index.php:
- Tytuł strony widoczny na karcie przeglądarki: „Lista aktorów | KinoTEKA”
- Zawartość bloku głównego:
- Nagłówek
pierwszegostopnia o treści: „Najlepsi aktorzy tylko w naszym kinie” - Blok wszystkich aktorów wypełniony
skryptem 1
- Nagłówek
Cechy dotyczące pliku aktor.php:
- Tytuł strony widoczny na karcie przeglądarki: „Informacje o aktorze | KinoTEKA”'
- Zawartość bloku głównego:
- Blok wszystkich aktorów wypełniony
skryptem 2 - Efekt działania
skryptu 3
- Blok wszystkich aktorów wypełniony
Styl CSS witryny internetowej
Styl CSS zdefiniowany jest w całości w zewnętrznym w pliku o nazwie styl.css. Cechy formatowania CSS, działające na stronie:
- Domyślne formatowanie wszystkich selektorów: krój czcionki
Gill Sans MT, a w przypadku jej brakuCalibri - Dla selektora ciała strony: szerokość
90%, marginesy zewnętrzne górny i dolny0, lewy i prawy automatycznie wyliczone przez przeglądarkę - Dla bloku nagłówkowego 1: szerokość
40% - Dla bloku nagłówkowego 2: szerokość
60%oraz wyrównanie tekstudo prawej strony - Dla bloku wszystkich aktorów: marginesy zewnętrzne górny i dolny
0, lewy i prawy automatyczne - Dla bloku pojedynczego aktora na stronie index.php, generowanego skryptem 1: szerokość
15 em, tekstwyśrodkowany, bloki są wyświetlaneobok siebie - Dla bloku pojedynczego aktora na stronie aktor.php, generowanego skryptem 2: szerokość
25 em, tekstwyśrodkowany - Dla selektora obrazu: szerokość
90%, zaokrąglenie obramowania50% - Dla selektora paragrafu znajdującego się w bloku pojedynczego aktora: rozmiar czcionki
125% - Dla selektora odnośnika: kolor czcionki
czarny, brak podkreślenia - Gdy kursor znajdzie się na odnośniku: kolor czcionki
#E30613
- UWAGA!
- Styl CSS ciała strony, obrazu, paragrafu oraz odnośnika należy zdefiniować wyłącznie przy pomocy selektorów odpowiadających tym znacznikom. Jest to uwarunkowane projektem późniejszej rozbudowy witryny.
Skrypt połączenia z bazą
W Tabeli 1 zamieszczono wybrane funkcje PHP do obsługi bazy danych. Wymagania dotyczące skryptów:
- Napisane w języku PHP
- Należy stosować znaczące nazewnictwo zmiennych i funkcji w języku polskim lub angielskim
- Łączą się z serwerem bazodanowym na
localhost, użytkownikrootbez hasła, baza danych o nazwiekino - Na końcu skrypt zamyka połączenie z bazą
- UWAGA!
- Zapis za pomocą nawiasów <> oznacza dane pobrane z bazy danych, np.
oznacza daną pobraną z kolumny imie tabeli aktorzy
Skrypt 1, na stronie index.php:
- Wysyła do bazy danych
zapytanie 3 - Dla każdego wiersza zwróconego z bazy tworzy blok pojedynczego aktora zawierający:
- Obraz, którego źródłem jest plik podany w kolumnie
plik_awatara, z tekstem alternatywnym oraz atrybutemtitlez wartością „<IMIE> <NAZWISKO>” (Ilustracja 2,awatar 2) - Paragraf zawierający tekst „<IMIE> <NAZWISKO>”
- Obraz, którego źródłem jest plik podany w kolumnie
- Wygenerowany blok pojedynczego aktora jest odnośnikiem do pliku aktor.php?id=<ID_AKTORA>
Skrypt 2, na stronie aktor.php:
- Korzysta z pola
idprzesłanego do plikumetodą GET - Wysyła do bazy danych
zapytanie 2zmodyfikowane w ten sposób, aby uzyskiwać informacje o aktorze z identyfikatorem równym poluidpobranymmetodą GET - Dla zwróconego z bazy wiersza tworzy blok pojedynczego aktora zawierający:
- Obraz, którego źródłem jest plik podany w kolumnie
plik_awatara, z tekstem alternatywnym oraz atrybutemtitlez wartością „<IMIE> <NAZWISKO>” - Nagłówek
pierwszegostopnia zawierający tekst „<IMIE> <NAZWISKO>”
- Obraz, którego źródłem jest plik podany w kolumnie
Skrypt 3, na stronie aktor.php:
- Korzysta z pola
idprzesłanego do plikumetodą GET - Wysyła do bazy danych
zapytanie 4zmodyfikowane w taki sposób, że pobiera wyniki dotyczące aktora z identyfikatorem równym poluidpobranymmetodą GET - Jeśli liczba rekordów uzyskanych zapytaniem wynosi
0, wyświetlany jest napis „<IMIE> nie znajduje się na listach obsady znanych nam produkcji.”, gdzie <IMIE> jest imieniem aktora pobranym wskrypcie 2 - W przeciwnym wypadku wyświetlany jest napis „<IMIE> znajduje się na listach obsady <X> znanych nam produkcji.”, gdzie <IMIE> jest imieniem aktora pobranym w
skrypcie 2, a <X> oznacza liczbę rekordów uzyskanychzapytaniem 4
Ilustracja 4. Wygląd strony aktor.php dla aktora o identyfikatorze 10

Tabela 1. Wybór funkcji języka PHP do obsługi bazy MySQL i MariaDB
| Funkcje bilioteki mysqli | Zwracana wartość |
|---|---|
| mysqli_connect(serwer, uzytkownik, haslo, nazwa_bazy) | id połączenia lub FALSE, gdy niepowodzenie |
| mysqli_select_db(id_polaczenia, nazwa_bazy) | TRUE / FALSE, w zależności od stanu operacji |
| mysqli_error(id_polaczenia) | Tekst komunikatu błędu |
| mysqli_close(id_polaczenia) | TRUE / FALSE, w zależności od stanu operacji |
| mysqli_query(id_polaczenia, zapytanie) | Wynik zapytania |
| mysqli_fetch_row(wynik_zapytania) | Tablica numeryczna odpowiadająca wierszowi zapytania |
| mysqli_fetch_array(wynik_zapytania) | Tablica zawierająca kolejny wiersz z podanych w wyniku zapytania lub FALSE, jeżeli nie ma więcej wierszy w wyniku zapytania |
| mysqli_num_rows(wynik_zapytania) | Liczba wierszy w podanym zapytaniu |
| mysqli_num_fields (wynik_zapytania) | Liczba kolumn w podanym zapytaniu |
| isset($zmienna) | Sprawdzenie, czy $zmienna istnieje |
Tabela 2. Semantic Elements in HTML
| Tag | Description |
|---|---|
| <article> | Defines independent, self-contained content |
| <aside> | Defines content aside from the page content |
| <details> | Defines additional details that the user can view or hide |
| <figcaption> | Defines a caption for a <figure> element |
| <figure> | Specifies self-contained content, like illustrations, diagrams, photos, code listings, etc. |
| <footer> | Defines a footer for a document or section |
| <header> | Specifies a header for a document or section |
| <main> | Specifies the main content of a document |
| <mark> | Defines marked/highlighted text |
| <nav> | Defines navigation links |
| <section> | Defines a section in a document |
| <summary> | Defines a visible heading for a <details> element |
| <time> | Defines a date/time |
Tabela 3. Metoda GET i odnośniki
|
Najpopularniejszy dla metody GET sposób przekazywania parametrów w adresie URL do danego zasobu: index.php?lang=pl¶m1=2 Przesyłane parametry znajdują się w tablicy globalnej $_GET |
- UWAGA!
- Po zakończeniu pracy utwórz plik tekstowy o nazwie przeglądarka.txt. Zapisz w nim nazwę przeglądarki internetowej, w której weryfikowana była poprawność działania witryny. Umieść go w folderze z numerem zdającego.
- Nagraj płytę z rezultatami pracy. W folderze z numerem zdającego powinny znajdować się pliki: aktor.php, import.png, index.php, kwerendy.txt, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kw5.jpg, przeglądarka.txt, styl.css, pliki z awatarami, ewentualnie inne przygotowane pliki. Po nagraniu płyty sprawdź poprawność jej odczytu. Opisz płytę numerem zdającego i pozostaw zapakowaną w pudełku na stanowisku wraz z arkuszem egzaminacyjnym.
Czas przeznaczony na wykonanie zadania wynosi 150 minut.
Ocenie podlegać będzie 5 rezultatów:
- operacje na bazie danych
- zawartość witryny internetowej
- działanie witryny internetowej
- styl CSS witryny internetowej
- skrypty połączenia z bazą.

Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!
Kody zniżkowe - kup taniej
Mamy fajne rabaty dla widzów naszego kanału YouTube - otóż można zamówić dwa tomy książek "Wprowadzenie do bezpieczeństwa IT" (15% taniej) oraz książkę "Twierdza Linux. Bezpieczeństwo dla dociekliwych" (10% taniej) - użyjcie odpowiedniego kodu, wpisując go w specjalne pole w koszyku:
KOD: pasja
Dostajesz rabat -15%
KOD: pasja
Dostajesz rabat -15%
KOD: pasja-linux
Dostajesz rabat -10%
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Proszę, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!