Arkusz INF.03 : 2025 - styczeń - zad. 05 (php)
Oznaczenie: INF.03-05-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ą obsługującą firmę szkoleniową, 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 PlikiSt202505 zabezpieczone hasłem: SzkoL3Nia%
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
Do wykonania operacji na bazie należy wykorzystać przedstawione na Ilustracji 1 tabele. Poszczególne tabele tworzą relacje jeden do wielu zgodnie z obrazem.
Ilustracja 1. Baza danych

Za pomocą narzędzia phpMyAdmin wykonaj następujące operacje na bazie danych:
- Utwórz bazę danych o nazwie
firma, z zestawem polskich znaków (np.utf8_unicode_ci) - Do utworzonej bazy zaimportuj tabele z pliku
firma.sqlz rozpakowanego archiwum - Wykonaj zrzut ekranu po imporcie. Zapisz zrzut w formacie
JPEGpod nazwąimport. 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 firma. 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
datyitematy szkoleńposortowanerosnącowedługdaty szkolenia - Zapytanie 2: wybierające jedynie
datyitematy szkoleńoraz odpowiadające imnazwiskaiimionatrenerów. Należy posłużyć sięrelacją - Zapytanie 3: wybierające dla każdego trenera jedynie jego
imięinazwiskooraz zliczająceliczbę jego szkoleń. Należy posłużyć sięrelacją - Zapytanie 4: zmieniające w tabeli
zapisynazwę kolumnyId_klientanaId_sluchacza
- Zapytanie 1: wybierające jedynie
Grafika
Na potrzeby strony należy przygotować grafikę z banerem o nazwie baner.jpg i cechach:
- Szerokość grafiki
1000 px, wysokość150 px - Tło baneru w formie gradientu od
czarnegokoloru z lewej dobiałegoprzy prawej krawędzi banera (Uwaga: wybrane kolory do gradientu mogą różnić się odcieniem, nasyceniem itp.) - Na pierwszym planie po lewej stronie umieszczona grafika z pliku
kod.jpg. Grafika jest skalowana – widoczne dokładniedwiesekcjecaseoraz jest transformowana jak naIlustracji 2, tworząc efekt perspektywy - Na pierwszym planie po prawej stronie umieszczony napis o treści „Firma szkoleniowa” w kolorze
czarnym
Witryna internetowa
Ilustracja 2. Wygląd strony głównej index.html

Cechy witryny:
- Składa się z dwóch stron o nazwach
index.htmliszkolenia.php
Cechy wspólne dla obu stron:
- Zapisane 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: „Firma szkoleniowa”
- Arkusz stylów w pliku o nazwie
style.cssprawidłowo połączony z kodem strony - Strona składa się z kontenera, a w nim podział na bloki:
nagłówkowy, poniżej obok siebiemenuigłówny, na dolestopka. Podział zrealizowany za pomocąsemantycznych znacznikówsekcji językaHTML5tak, aby po uruchomieniu w przeglądarce wygląd układu bloków był zgodny zIlustracją 2 - Zawartość bloku nagłówkowego: obraz z pliku
baner.jpgz tekstem alternatywnym „Szkolenia” - Zawartość bloku menu:
- Lista
punktowana(nieuporządkowana) z dwoma elementami: odnośnik do plikuindex.htmlo treści „Strona główna” i odnośnik do plikuszkolenia.phpo treści „Szkolenia”
- Lista
- Zawartość bloku stopki:
- Nagłówek
drugiegostopnia zawierający napis „Firma szkoleniowa, ul. Główna 1, 23-456 Warszawa” - Akapit (paragraf) zawierający napis „Autor: ”, dalej wstawiony
numer zdającego
- Nagłówek
- Zawartość bloku głównego dla strony
index.html:- Nagłówek
pierwszegostopnia o treści „Zapraszamy do udziału w szkoleniach z branży IT”. Łamanie wiersza po słowie „udziału” oraz po słowie „szkoleniach”
- Nagłówek
- Zawartość bloku głównego dla strony
szkolenia.php:- Efekt działania skryptu
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:
- Dla kontenera głównego strony: kolor tła
#FB8E02 - Domyślnie dla wszystkich selektorów: krój czcionki
Tahoma - Dla kontenera głównego strony: kolor tła
#FB8E02 - Dla bloku menu: kolor tła
#232323, szerokość20%, wysokość450 px - Dla bloku głównego: kolor tła
#AEC6E6, szerokość80%, wysokość450 px, paski przewijania zawsze widoczne - Dla bloku stopki: marginesy wewnętrzne
2 px, wyrównanie tekstudo prawejstrony - Dla obrazu: szerokość
100% - Dla selektora nagłówka pierwszego stopnia: marginesy wewnętrzne
50 px, kolor czcionkiMaroon - Dla listy punktowanej: brak symboli punktorów
- Dla selektora elementu listy: kolor tła
#FB8E02, szerokość95%, marginesy wewnętrzne5 px, margines zewnętrzny – górny10 px - Dla selektora odnośnika: brak podkreślenia, kolor czcionki
#232323, rozmiar czcionki110%. - Gdy kursor myszy znajdzie się na elemencie listy, jego tło zmienia się na
#B36501
- UWAGA!
- Styl CSS nagłówka pierwszego stopnia, elementu listy i odnośnika 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 skryptu:
- Napisany w języku PHP, działa na stronie
szkolenia.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 nazwiefirma - Wysyła do bazy danych
zapytanie 1 - Zwrócone zapytaniem
dataitemat szkoleniasą oddzielonespacjąi wyświetlane jeden pod drugim w osobnych paragrafach w bloku głównym –Ilustracja 3 - Dodatkowo zwrócone zapytaniem wiersze są zapisywane jako osobne linie w pliku tekstowym o nazwie
harmonogram.txt - Na końcu działania skrypt zamyka połączenie z serwerem
Ilustracja 3. Fragment strony szkolenia.php z widocznym działaniem skryptu

- 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, import.jpg, index.html, kw1.png, kw2.png, kw3.png, kw4.png, kwerendy.txt, przeglądarka.txt, style.css, szkolenia.php, 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 |

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!