Arkusz INF.03 : 2024 - czerwiec - zad. 05 (php)
Oznaczenie: INF.03-05-24.06-SG Limit czasu: 150 minut
Zadanie egzaminacyjne
- UWAGA!
- Folder z rezultatami pracy oraz płytę należy opisać numerem zdającego, którym został podpisany arkusz, czyli numerem PESEL lub w przypadku jego braku numerem paszportu. Dalej w zadaniu numer ten jest nazwany numerem zdającego.
Wykonaj aplikację internetową komisu samochodowego, 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 ZIP o nazwie PlikiCz202405 zabezpieczone hasłem: S@moCHody^
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. Zaleca się, aby rozpakowane pliki graficzne znajdowały się w tym samym folderze co pliki źródłowe strony.
Operacje na bazie danych
Baza danych jest zgodna ze strukturą przedstawioną na Obrazie 1. Tabele są połączone relacją 1..n. Pole wyrozniony w bazie MySQL jest reprezentowane typem TINYINT(1) i przyjmuje wartość 1, gdy samochód jest wyróżniony oraz 0 w przeciwnym przypadku.
Obraz 1. Baza danych

Za pomocą narzędzia phpMyAdmin wykonaj operacje na bazie danych:
- Utwórz bazę danych o nazwie
kupauto, z zestawem polskich znaków (np.utf8_unicode_ci) - Do bazy zaimportuj tabele z pliku
baza.sqlz rozpakowanego archiwum - Wykonaj zrzut ekranu po imporcie. Zrzut zapisz w formacie
PNGi nazwijimport. 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
kupauto. Zapytania zapisz w plikukwerendy.txt. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacieJPEGi nadaj im nazwykw1,kw2,kw3,kw4. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań.- Zapytanie 1: wybierające jedynie
nazwymarek samochodów - Zapytanie 2: wybierające jedynie pola:
model,rocznik,przebieg,paliwo,cena,zdjeciedla samochodu oidrównym10 - Zapytanie 3: wybierające jedynie pole
nazwaz tabelimarkii odpowiadające jej pola:model,rocznik,cena,zdjeciez tabelisamochodyjedynie dla samochodówwyróżnionych. Zapytanie wybiera dokładnie4 wiersze. Należy posłużyć sięrelacją - Zapytanie 4: wybierające jedynie pola:
model,cena,zdjeciez tabelisamochodydla samochodów o nazwie markiAudi. Należy posłużyć sięrelacją
- Zapytanie 1: wybierające jedynie
Witryna internetowa
Obraz 2. Witryna internetowa

Przygotowanie grafiki:
- Grafikę
ToyotaYaris.jpg, wypakowaną z archiwum, należy przeskalować z zachowaniem proporcji do szerokości, dokładnie500 px
Cechy witryny:
- Składa się ze strony o nazwie
KupAuto.phpzapisanej w językuHTML5 - Zastosowany język witryny
polski - Jawnie zastosowany właściwy standard kodowania polskich znaków
- Tytuł strony widoczny na karcie przeglądarki: „Komis aut”
- Arkusz stylów w pliku o nazwie
styl.cssprawidłowo połączony z kodem strony - Podział strony na bloki:
baner, trzy blokigłówneumiejscowione jeden pod drugim, na dole blokstopki. Podział zrealizowany wyłącznie za pomocąsemantycznych znacznikówsekcji językaHTML5tak, aby po uruchomieniu w przeglądarce wygląd układu bloków był zgodny zObrazem 2 - Zawartość banera: nagłówek
pierwszegostopnia o treści „KupAuto! Internetowy Komis Samochodowy”. Fraza „KupAuto!” jest zapisana za pomocą znacznika semantycznego oznaczającegouwydatnieniei zapisywanego czcionkąpochyłą - Zawartość pierwszego bloku głównego: efekt działania
Skryptu 1 - Zawartość drugiego bloku głównego:
- Nagłówek
drugiegostopnia o treści „Oferty Wyróżnione” - Efekt działania
Skryptu 2
- Nagłówek
- Zawartość trzeciego bloku głównego:
- Nagłówek
drugiegostopnia o treści „Wybierz markę” - Formularz wysyłający dane metodą
bezpieczną, zawierający elementy:- Listę rozwijalną wypełnioną
Skryptem 3 - Przycisk o treści: „Wyszukaj”
- Listę rozwijalną wypełnioną
- Efekt działania
Skryptu 4
- Nagłówek
- Zawartość stopki:
- Paragraf (akapit) o treści: „Stronę wykonał: ”, dalej wstawiony
numer zdającego - Paragraf z odnośnikiem o treści „Znajdź nas także”, prowadzącym do strony
http://firmy.pl/komis
- Paragraf (akapit) o treści: „Stronę wykonał: ”, dalej wstawiony
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ślne formatowanie wszystkich selektorów: krój czcionki
Roboto, w przypadku jej braku -Serif - Dla banera: kolor tła
Crimson,białykolor czcionki, wyrównanie tekstudo środka, odległości pomiędzy literami5 px, odległości pomiędzy słowami30 px, marginesy wewnętrzne10 px - Dla pierwszego bloku głównego: kolor tła
MistyRose, wysokość300 px, marginesy wewnętrzne10 px, zewnętrzne górny i dolny10 px, lewy i prawy50 px, obramowanie liniąciągłąo szerokości1 pxi kolorzeCrimson - Dla obrazu jedynie z pierwszego bloku głównego: oblewanie tekstem
po prawejstronie (obraz jest po lewej stronie) wysokość100% - Dla bloków z ofertami generowanych skryptem w drugim i trzecim bloku głównym: kolor tła
Snow, wysokość450 px, szerokość21%, marginesy zewnętrzne1%, wyrównanie tekstudo środka, obramowanie liniąciągłąo szerokości1 pxi kolorzeCrimson - Dla stopki: kolor tła
Crimson,białykolor czcionki - Dla selektora obrazu: maksymalna szerokość
100% - Dla selektora nagłówka czwartego stopnia: rozmiar czcionki
180%, wyrównanie tekstudo środka, kolor czcionkiCrimson - Dla odnośnika:
białykolor czcionki
- UWAGA!
- Styl CSS obrazu i nagłówka czwartego 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 podano wybór funkcji PHP do obsługi bazy danych. Wymagania dotyczące skryptów:
- Napisane w języku PHP
- Należy stosować znaczące nazewnictwo wszystkich zmiennych lub funkcji
- Skrypty łączą się z serwerem bazodanowym na
localhost, użytkownikrootbez hasła, baza danych o nazwiekupauto - Skrypt 1
- Wysyła do bazy danych
zapytanie 2 - W pierwszym bloku głównym wyświetla dane pobrane z bazy danych, w następujący sposób:
- Obraz, którego źródłem jest pole
zdjecie, a tekstem alternatywnym „oferta dnia” - Nagłówek
czwartegostopnia o treści „Oferta Dnia: Toyota ”, następnie pole model - Paragraf o treści „Rocznik: <rocznik>, przebieg: <przebieg>, rodzaj paliwa: <paliwo>”, gdzie pola w nawiasach <> są pobrane z bazy danych
- Nagłówek
czwartegostopnia o treści „Cena: ” następnie polecena
- Obraz, którego źródłem jest pole
- Wysyła do bazy danych
- Skrypt 2
- Wysyła do bazy danych
zapytanie 3 - W drugim bloku głównym wyświetla dane pobrane z bazy danych, w następujący sposób: Każdy zwrócony wiersz jest wyświetlony w osobnym bloku, co razem daje
czterybloki. Bloki są wyświetlone obok siebie w jednej linii. W każdym bloku znajduje się:- Obraz, którego nazwą pliku źródłowego jest pole
zdjecie, a tekstem alternatywnym polemodel - Nagłówek
czwartegostopnia z nazwą marki i modelem, pobranymi z bazy - Paragraf o treści „Rocznik: ”, następnie pole
rocznik - Nagłówek
czwartegostopnia o treści „Cena: ” następnie polecena
- Obraz, którego nazwą pliku źródłowego jest pole
- Wysyła do bazy danych
- Skrypt 3
- Wysyła do bazy danych
zapytanie 1 - Zwrócone zapytaniem nazwy marek samochodów są wyświetlone jako elementy
listy rozwijalnej
- Wysyła do bazy danych
- Skrypt 4
- Po zatwierdzeniu formularza tylko, gdy użytkownik wybrał element listy rozwijalnej wysyła do bazy danych zmodyfikowane
zapytanie 4, w ten sposób, że jest w nim sprawdzana nazwa marki wybrana w liście - Każdy zwrócony wiersz jest wyświetlony w osobnym bloku. Bloki są wyświetlone obok siebie. W każdym bloku znajduje się:
- Obraz, którego nazwą pliku źródłowego jest pole
zdjecie, a tekstem alternatywnym polemodel - Nagłówek
czwartegostopnia z nazwą marki i modelem, pobranymi z bazy danych - Nagłówek
czwartegostopnia o treści „Cena: ” następnie polecena
- Obraz, którego nazwą pliku źródłowego jest pole
- Po zatwierdzeniu formularza tylko, gdy użytkownik wybrał element listy rozwijalnej wysyła do bazy danych zmodyfikowane
- Na końcu jest zamykane połączenie z serwerem
Obraz 3. Działanie skryptu 4 dla elementu „Opel” wybranego w liście rozwijalnej

- 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: AudiA3.jpg, AudiA8.jpg, import.png, KupAuto.php, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kwerendy.txt, OpelAstra.jpg, OpelCorsa.jpg, OpelVectra.jpg, przeglądarka.txt, styl.css, ToyotaCorolla.jpg, ToyotaRav.jpg, ToyotaYaris.jpg, 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 będzie podlegać 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 MySQLi 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 |

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!