Arkusz INF.03 : 2025 - styczeń - zad. 03 (php)
Oznaczenie: INF.03-03-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 hobbystyczną aplikację internetową o kalendarzu, 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 PlikiSt202503 zabezpieczone hasłem: k@L3ndarz
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 tabelę imieniny przedstawioną na Ilustracji 1. Data zapisana jest w formacie mm-dd, np. data 7 listopada zapisana jest jako 11-07.
Ilustracja 1. Baza danych

Za pomocą narzędzia phpMyAdmin wykonaj następujące operacje na bazie danych:
- Utwórz bazę danych o nazwie
kalendarz, z zestawem polskich znaków (np.utf8_unicode_ci) - Do utworzonej bazy zaimportuj tabele z pliku
baza.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
kalendarz. 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 z tabeli
imieninyjedyniedaty, w których są imieninyKarola - Zapytanie 2: wybierające jedynie
imionaosób, które obchodzą imieniny4 maja - Zapytanie 3: obliczające, ile jest
dat, w których imieniny obchodzi osoba, którejimięzawiera cząstkęmir(np. Miron, Dobromir, Sędzimira) - Zapytanie 4: dodające do tabeli
imieninypolezyczeniatypunapisowego, które pomieści500 znaków
- Zapytanie 1: wybierające z tabeli
- Wyeksportuj dane z tabeli
imieninydo pliku w formacieCSVi nadaj mu nazwęimieniny
Grafika
Przygotowanie animacji o nazwie kalendarz.gif:
- Na animację składają się pliki, kolejno: kalendarz01.png, kalendarz02.png, kalendarz03.png, kalendarz04.png, kalendarz05.png, kalendarz06.png, kalendarz07.png, kalendarz08.png, kalendarz09.png, kalendarz10.png, kalendarz11.png i kalendarz12.png
- Nie należy zmieniać właściwości grafik:
przezroczystościi wymiarów500 x 500 px - Każdy obraz jest pokazywany w animacji przez
350 ms, jedna klatka na warstwę. Udokumentuj ustawienie parametru za pomocą zrzutu ekranu o nazwieparametry_animacji.png. Zrzut musi obejmować cały obszar ekranu z widocznym paskiem zadań
Witryna internetowa
Ilustracja 2. Wygląd witryny internetowej w dniu 2023.05.25, wybrano w formularzu datę 2024.01.24

Cechy witryny:
- Składa się ze strony o nazwie
kalendarz.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: „Kalendarz”
- Arkusz stylów w pliku o nazwie
styl.cssprawidłowo połączony z kodem strony - Podział strony na bloki:
nagłówkowy,napisu, poniżejtrzybloki umieszczone obok siebie, na dolestopka. Podział zrealizowany za pomocąsemantycznych znacznikówsekcji języka HTML5 tak, aby po uruchomieniu w przeglądarce wygląd układu bloków był zgodny zIlustracją 2 - Zawartość bloku nagłówkowego:
- Nagłówek
pierwszegostopnia o treści „Dni, miesiące, lata...”
- Nagłówek
- Zawartość bloku napisu:
- Paragraf z efektem działania
Skryptu 1
- Paragraf z efektem działania
- Zawartość bloku lewego:
- Tabela o
2 kolumnachi13 wierszach, z czego niektóre wiersze sąscalone. Pierwszy wiersz zawierakomórki nagłówkowe. Treść i wygląd tabeli przedstawiony jest naIlustracji 3
- Tabela o
- Zawartość bloku środkowego:
- Nagłówek
drugiegostopnia o treści: „Sprawdź kto ma urodziny” - Formularz przesyłający dane metodą
bezpieczną, do tego samego pliku. Zawierający pola:- Pole edycyjne o typie przeznaczonym do wprowadzania
daty. Kalendarz wyświetla tylko daty z2024 roku(od 1 stycznia 2024 do 31 grudnia 2024). Pole edycyjne jest wymagane. Pole edycyjne w stanie początkowym po naciśnięciu przycisku kalendarza zostało przedstawione naIlustracji 4 - Przycisk o treści „wyślij” wysyłający dane do skryptu z formularza − Efekt działania
Skryptu 2
- Pole edycyjne o typie przeznaczonym do wprowadzania
- Nagłówek
- Zawartość bloku prawego:
- Animacja
kalendarz.gifz tekstem alternatywnym „Kalendarz Majów”, której kliknięcie powoduje otwarcie strony internetowejhttps://pl.wikipedia.org/wiki/Kalendarz_Majóww nowym oknie przeglądarki - Nagłówek
drugiegostopnia o treści „Rodzaje kalendarzy” - Lista
numerowana(uporządkowana) z zagnieżdżonymi dwoma listamipunktowanymi(nieuporządkowanymi), zgodna zIlustracją 5
- Animacja
- Zawartość stopki: paragraf o treści „Stronę opracował(a): ”, dalej
numer zdającego
Ilustracja 3. Tabela z bloku lewego

Ilustracja 4. Pole edycyjne w przeglądarce Chrome

Ilustracja 5. Lista z bloku prawego

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:
- Dla ciała strony: krój czcionki
Bookman, a w przypadku braku: czcionkaSerif - Wspólne dla bloku nagłówkowego i stopki: kolor tła
Indigo,białykolor czcionki, marginesy wewnętrzne10 px, wyrównanie tekstudo środka - Dla bloku napisu: kolor tła
BlueViolet, marginesy wewnętrzne10 px, wyrównanie tekstudo prawejstrony - Wspólny dla bloków lewego i prawego: kolor tła
Lavender, wysokość500 px - Dodatkowo szerokość bloku lewego
25%, bloku prawego35% - Dla bloku środkowego: kolor tła
GhostWhite, wyrównanie tekstudo środka, wysokość500 px, szerokość40% - Dla selektora obrazu: oblewanie tekstem
po lewejstronie (obraz po prawej stronie), szerokość50%, marginesy wewnętrzne10 px - Dla selektora paragrafu:
białykolor czcionki, rozmiar czcionki150%,pochylenieczcionki - Wspólne dla tabeli i formularza: marginesy zewnętrzne
30 px - Dla tabeli i komórki tabeli: obramowanie połączone, linią
ciągłąo szerokości1 pxi kolorzeIndigo - Wspólne dla zwykłej komórki i komórki nagłówkowej tabeli: marginesy wewnętrzne
3 px
- UWAGA!
- Styl CSS obrazu i paragrafu 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. Zamieszczono także pomoc dla funkcji daty i czasu. 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 nazwiekalendarz - Skrypt 1
- Wysyła do bazy danych zmodyfikowane
zapytanie 2, tak że jest sprawdzana data bieżąca w formaciemm-dd - Wyświetla tekst o treści „Dzisiaj jest <dzień tygodnia>, <data>, imieniny: <imiona>”, gdzie
<dzień tygodnia>oznacza słowny zapis bieżącego dnia w języku polskim, np. „poniedziałek”,<data>oznacza bieżącą datę w formaciedd-mm-yyyy, a<imiona>- pole zwrócone zapytaniem
- Wysyła do bazy danych zmodyfikowane
- Skrypt 2
- Pobiera datę z formularza, a następnie przekształca ją do formatu
mm-dd - Wysyła do bazy danych zmodyfikowane
zapytanie 2, tak, że jest sprawdzana data podana w formularzu w formaciemm-dd - Wyświetla tekst o treści „Dnia <data> są imieniny: <imiona>”, gdzie
<data>oznacza datę pobraną z formularza w formacieyyyy-mm-dd,<imiona>- pole zwrócone zapytaniem
- Pobiera datę z formularza, a następnie przekształca ją do formatu
- Na końcu zamykane jest połączenie z serwerem
Polskie dni tygodnia: Poniedziałek, Wtorek, Środa, Czwartek, Piątek, Sobota, Niedziela
- 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: imieniny.csv, import.png, kalendarz.gif, kalendarz.php, kw1.png, kw2.png, kw3.png, kw4.png, kwerendy.txt, parametry_animacji.png, przeglądarka.txt, styl.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 |
Pole edycyjne typu data

Wybrane funkcje daty i czasu w PHP


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!