Arkusz INF.03 : 2025 - styczeń - zad. 07 (php)
Oznaczenie: INF.03-07-25.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ą wyszukiwarki polskich miast, 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 PlikiSt202507 zabezpieczone hasłem: @PolSki3Miast@
Archiwum należy rozpakować.
Na pulpicie konta Egzamin należy utworzyć folder. Jako nazwy folderu należy użyć numeru zdającego. Rozpakowane pliki należy umieścić w tym folderze. Po skończonej pracy wszystkie wyniki należy zapisać w tym folderze.
Operacje na bazie danych
Baza danych zawiera dwie tabele przedstawione na Ilustracji 1.
Ilustracja 1. Baza danych

Za pomocą narzędzia phpMyAdmin wykonaj następujące operacje na bazie danych:
- Utwórz bazę danych o nazwie
wykaz, z zestawem polskich znaków (np.utf8_unicode_ci) - Do utworzonej bazy zaimportuj tabele z pliku
wykaz.sqlz rozpakowanego archiwum - 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 SQL działające na bazie wykaz. Zapytania zapisz w pliku
kwerendy.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 jedynie
nazwy województw, wszystkie litery w nazwach województw są zamienione namałe - Zapytanie 2: obliczające
liczbę miastdla którychid_wojewodztwajest równejeden - Zapytanie 3: wybierające jedynie
nazwy miastzaczynające się od cząstki „Lu” i odpowiadające im nazwy województw, posortowanealfabetycznieponazwie miasta. Należy posłużyć sięrelacją - Zapytanie 4: wybierające jedynie
nazwy województwi odpowiadającą imliczbę miast, które się w nich znajdują. Kolumna z liczbą miast powinna mieć nadanyalias„Liczba miast”. Należy posłużyć sięrelacją
- Zapytanie 1: wybierające jedynie
Grafika
Przygotowanie pliku z banerem strony (Ilustracja 2):
- Plik
mapa_polski.jpgnależy wykadrować tak, że widoczna jest jedynie górna część mapy o wysokości270 px - Nazwa pliku wynikowego
baner.jpg
Przygotowanie faviconu (Ilustracja 3 – ramka nie jest częścią obrazu):
- Wysokość i szerokość
192 px - Tło
przezroczyste - Obraz wypełnia litera
Mkoloruczerwonegozapisana dowolną czcionkąszeryfową - Litera
Mwypełnia cały obraz, przynajmniej w jednej z osi (pionowej lub poziomej) - Nazwa
fav.png
Ilustracja 2. Grafika baner.jpg

Ilustracja 3. Favicon

Witryna internetowa
Ilustracja 4. Wygląd witryny internetowej

Cechy witryny:
- Składa się ze strony o nazwie
index.php - Zapisana w języku
HTML5 - Zadeklarowany
polskijęzyk zawartości witryny - Jawnie zastosowany właściwy standard kodowania polskich znaków
- Tytuł strony widoczny na karcie przeglądarki: „Wyszukiwarka miast”
- Arkusz stylów w pliku o nazwie
style.cssprawidłowo połączony z kodem strony - Favicon o nazwie
fav.pngwidoczny na karcie przeglądarki - Podział strony na bloki: kontener
zawartości, a w nim bloknagłówkowy, poniżej dwa blokilewejeden pod drugim i obok blokprawy. Podział zrealizowany za pomocąsemantycznych znacznikówsekcji językaHTML5tak, aby po uruchomieniu w przeglądarce wygląd układu bloków był zgodny zIlustracją 4. - Zawartość bloku nagłówkowego: obraz z pliku
baner.jpgz tekstem alternatywnym „Polska” - Zawartość bloku lewego-górnego:
- Nagłówek
czwartegostopnia o treści „Podaj początek nazwy miasta” - Formularz wysyłający dane do tego samego pliku metodą
bezpieczną, o polach- Pole edycyjne
- Przycisk „Szukaj” wysyłający dane formularza do skryptu
- Nagłówek
- Zawartość bloku prawego:
- Nagłówek
pierwszegostopnia o treści „Wyniki wyszukiwania miast z uwzględnieniem filtra:” - Efekt działania skryptu
- Nagłówek
- Zawartość bloku lewego-dolnego:
- Paragraf (akapit) zawierający napis „Egzamin INF.03”
- Paragraf z napisem „Autor: ”, dalej wstawiony
numer zdającego
Styl CSS witryny internetowej
Styl CSS zdefiniowany jest w całości w zewnętrznym pliku o nazwie style.css. Cechy formatowania CSS działające na stronie:
- Domyślne dla wszystkich selektorów: krój czcionki
Helvetica - Dla ciała strony: kolor tła
LightSalmon, wyrównanie tekstudo środka - Dla bloku lewego-górnego: szerokość
30%, wysokość400 px - Dla bloku lewego-dolnego: kolor tła
DarkSalmon, szerokość30%, wysokość100 px - Dla bloku prawego: kolor tła
DarkSalmon, szerokość70%, wysokość500 px, paski przewijania widoczne tylko w przypadku, gdy zawartość nie mieści się - Dla selektora obrazu: szerokość
100% - Jedynie dla paragrafu ze skryptu wyświetlającego tekst filtra (na
Ilustracji 5przykładowym tekstem filtra jest „Po”): czcionka pochylona o rozmiarze200%, marginesy wewnętrzne10 px - Gdy kursor myszy znajdzie się na paragrafie filtra jego kolor czcionki zmienia się na
GhostWhite - Dla selektora tabeli i selektora komórek tabeli (bez nagłówkowych): obramowanie linią
kropkowanąo grubości1 pxi kolorzeMaroon - Dodatkowo dla selektora tabeli: szerokość
70%, marginesy zewnętrzne automatycznie wyliczane przez przeglądarkę
- UWAGA!
- Styl CSS obrazu, tabeli i komórki tabeli należy zdefiniować wyłącznie przy pomocy selektora tych znaczników. Jest to uwarunkowane projektem późniejszej rozbudowy witryny.
Skrypt połączenia z bazą
W Tabeli 1 zamieszczono wybrane funkcje języka PHP. Wymagania dotyczące skryptu:
- Napisany w języku PHP
- Należy stosować znaczące nazewnictwo zmiennych i funkcji w języku polskim lub angielskim
- Łączy się z serwerem bazodanowym na
localhost, użytkownikrootbez hasła, baza danych o nazwiewykaz - Skrypt sprawdza czy z formularza zostały wysłane dane i jeżeli tak to wykonuje czynności:
- Wyświetla w paragrafie wyszukiwany filtr, który został przesłany z formularza
- Wysyła do bazy danych zmodyfikowane
zapytanie 3, w ten sposób że wybierane są miasta rozpoczynające się od cząstki przesłanej przez formularz - Tworzy tabelę z wierszem składającym się z komórek nagłówkowych: “Miasto”, “Województwo”
- Wyświetla zwrócone miasta i województwa w osobnych wierszach tabeli – patrz
Ilustracja 5
- Na końcu zamykane jest połączenie z serwerem
Ilustracja 5. Działanie skryptu, w polu edycyjnym formularza zapisano „Po”

- 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.
- UWAGA!
- Nagraj płytę z rezultatami pracy. W folderze z numerem zdającego, powinny znajdować się pliki: baner.jpg, fav.png, import.png, index.php, kw1.png, kw2.png, kw3.png, kw4.png, kwerendy.txt, przeglądarka.txt, style.css, 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ą.
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: Wybrane funkcje na napisach w MariaDB
| Funkcja | Opis |
|---|---|
| LOWER | function converts a string to lower-case. |
| UPPER | function converts a string to upper-case. |
| LCASE | function converts a string to lower-case. |
| UCASE | function converts a string to upper-case. |

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!