Arkusz INF.03 : 2025 - czerwiec - zad. 11 (php)
Oznaczenie: INF.03-11-25.06-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 sprzedaży opon samochodowych, wykorzystując edytor grafiki rastrowej, 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 7z o nazwie PlikiCz202511 zabezpieczone hasłem: #OpoNki&+
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 zamowienie zawiera informacje o kliencie (FK: id), jego zamówionych oponach (FK: nr_kat) i ich ilości
Ilustracja 1. Baza danych

Za pomocą narzędzia phpMyAdmin wykonaj następujące operacje na bazie danych:
- Utwórz bazę danych o nazwie
opony, z zestawem polskich znaków (np.utf8_polish_ci) - Z rozpakowanego archiwum zaimportuj tabele z pliku
opona.sqldo utworzonej bazy - 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 bazieopony. Zapytania zapisz w plikukwerendy.txt. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formaciePNGi nadaj im nazwykw1,kw2,kw3,kw4. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań- Zapytanie 1: wybierające pierwsze
10 rekordówznajtańszymioponami (wszystkie pola) - Zapytanie 2: wybierające jedynie
producenta,model,sezonicenęopony o numerze katalogowym9 - Zapytanie 3: wybierające jedynie
identyfikatorzamówienia iilośćoraz odpowiadające immodelicenęopony. Wybierany jest tylko jedenlosowyrekord. Należy zastosowaćrelację - Zapytanie 4: aktualizujące
cenęoponletnichobniżając ją o25%
- Zapytanie 1: wybierające pierwsze
Witryna internetowa
Ilustracja 2. Wygląd witryny internetowej. Stan cen przed wykonaniem zapytania 4, strona jest odświeżana dane w sekcji 2 mogą ulegać zmianie

Cechy grafiki opona.png:
- Wykonana na podstawie grafiki
opona.jpgi zapisana w formaciePNG - Tło
przezroczyste - Przeskalowana z zachowaniem proporcji do wysokości
250 px
Cechy witryny:
- Składa się ze strony o nazwie
opony.php - Zapisana w języku
HTML5 - Zadeklarowany
polskijęzyk zawartości witryny - Jawnie zastosowany właściwy standard kodowania polskich znaków
- Tytuł strony „OPONY”
- Arkusz stylów w pliku o nazwie
styl.cssprawidłowo 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 - Zawartość bloku głównego: blok boczny, sekcja 1 i sekcja 2
- Zawartość bloku bocznego:
- Efekt działania
skryptu 1 - Paragraf z odnośnikiem o treści „więcej ofert” prowadzący do strony
https://opona.pl/
- Efekt działania
- Zawartość sekcji 1:
- Grafika
opona.pngz tekstem alternatywnym o treści: „Opona” - Nagłówek
drugiegostopnia o treści: „Opona dnia” - Efekt działania
skryptu 2
- Grafika
- Zawartość sekcji 2:
- Nagłówek
drugiegostopnia o treści: „Najnowsze zamówienie” - Efekt działania
skryptu 3
- Nagłówek
- Zawartość stopki:
paragrafo treści „Stronę wykonał: ”, dalej wstawionynumer zdającego
Ilustracja 3. Układ bloków

Styl CSS witryny internetowej
Styl CSS zdefiniowany jest w całości w zewnętrznym pliku o nazwie styl.css. Cechy formatowania CSS, działające na stronie:
- Domyślnie dla wszystkich selektorów: krój czcionki
Trebuchet MS, w przypadku brakusans-serif - Dla bloku bocznego: kolor tła
#C5CAE9, szerokość40%, wysokość600 px, paski przewijania tylko w przypadku przepełnienia bloku - Dla obu sekcji: szerokość
60%, wysokość300 px - Dodatkowo kolor tła sekcji 1:
#9FA8DA, sekcji 2:#7986CB - Dla bloku stopki: kolor tła
#283593,białykolor czcionki, marginesy wewnętrzne20 px - Dla klasy CSS opona, przypisanej do bloków generowanych w skrypcie 1: kolor tła
#9FA8DA, marginesy zewnętrzne40 px, obramowanie liniąkropkowanąo szerokości2 pxi kolorze#283593, zaokrąglenie rogów30 px - Dla selektora obrazu: opływanie tekstem
po prawej stronie(obraz jest po lewej stronie), marginesy wewnętrzne20 px - Dla selektora nagłówka drugiego stopnia: wyrównanie tekstu
do środka, marginesy zewnętrzne0 px, marginesy wewnętrzne15 px - Dla selektora nagłówka trzeciego stopnia: kolor tła
#7986CB,białykolor czcionki, rozmiar czcionki140%
- UWAGA!
- Styl CSS obrazu oraz nagłówka drugiego i trzeciego stopnia należy zdefiniować wyłącznie przy pomocy selektora tego znacznika. 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
- Strona jest odświeżana co
10 sekund - Skrypty łączą się z serwerem bazodanowym na
localhost, użytkownikrootbez hasła, baza danych o nazwieopony - Na końcu zamykane jest połączenie z bazą
Skrypt 1 (znaki <> oznaczają pola z bazy)
- Wysyła do bazy danych
zapytanie 1 - Dla każdego zwróconego zapytaniem rekordu wyświetla blok z przypisaną klasą CSS opona, w którym znajdują się:
- W przypadku opony letniej obraz
lato.png, w przypadku zimowej obrazzima.png, w przypadku uniwersalnej obrazuniwer.png - Nagłówek
czwartegostopnia o treści „Opona: <producent> <model>” - Nagłówek
trzeciegostopnia o treści „Cena: <cena>”
- W przypadku opony letniej obraz
Skrypt 2 (znaki <> oznaczają pola z bazy)
- Wysyła do bazy
zapytanie 2 - Wyświetla w nagłówku
drugiegostopnia treść „<producent> model <model>” - W kolejnym nagłówku
drugiegostopnia treść „Sezon: <sezon>” - W kolejnym nagłówku
drugiegostopnia treść „Tylko <cena> zł!”
Skrypt 3 (znaki <> oznaczają pola z bazy)
- Wysyła do bazy
zapytanie 3 - Wyświetla w nagłówku
drugiegostopnia treść „<id_zam> <ilosc> sztuki modelu <model>” - W kolejnym nagłówku
drugiegostopnia treść „Wartość zamówienia <wartość> zł”, gdzie <wartość> oznacza wyliczonąwartośćna podstawie zwróconych z bazyilościiceny
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 |
RAND() SQL function

Basic guide on using header('refresh') in PHP

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 |
- 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: import.png, kw1.png, kw2.png, kw3.png, kw4.png, kwerendy.txt, lato.png, opona.png, opony.php, przeglądarka.txt, styl.css, uniwer.png, zima.png, 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
- skrypt 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!