Arkusz EE.09 : 2020 - czerwiec - zad. 03 (php)
Oznaczenie: EE.09-03-20.06-SG Limit czasu: 150 minut
Zadanie egzaminacyjne
Wykonaj aplikację internetową kalendarza, wykorzystując pakiet XAMPP oraz edytor zaznaczający składnię.
Aby wykonać zadanie zaloguj się na konto Egzamin bez hasła. Na pulpicie znajdziesz archiwum ZIP o nazwie kalendarz.zip zabezpieczone hasłem: kaL(end)arz%
Archiwum należy rozpakować.
Na pulpicie konta Egzamin utwórz folder. Jako nazwy folderu użyj swojego numeru PESEL. Umieść w tym folderze rozpakowane pliki.
Po skończonej pracy wyniki zapisz również w tym folderze.
Operacje na bazie danych
Do wykonania zadania należy użyć tabeli zadania przedstawionej na Obrazie 1.
Obraz 1. Tabela zadania

Uruchom usługi MySQL i Apache za pomocą XAMPP Control Panel. Za pomocą narzędzia phpMyAdmin wykonaj podane operacje na bazie danych:
- Utwórz bazę danych o nazwie
egzamin5 - Do bazy
egzamin5zaimportuj tabele z plikubaza5.sqlz rozpakowanego archiwum - Wykonaj zrzut ekranu po imporcie. Zrzut zapisz w formacie PNG pod nazwą
importw folderze opisanym numerem PESEL. Nie kadruj zrzutu. Zrzut powinien obejmować cały ekran monitora, z widocznym paskiem zadań. Na zrzucie powinny być widoczne elementy wskazujące na poprawnie wykonany import tabel - Zapisz i wykonaj
zapytania SQLdziałające na bazieegzamin5. Zapytania zapisz w plikukwerendy.txt, w folderze z numerem PESEL. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacie JPG i nadaj im nazwykw1,kw2,kw3,kw4. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań- Zapytanie 1: wybierające jedynie pola
miesiacirokz tabelizadaniadla zadania z datą2020-07-01 - Zapytanie 2: wybierające jedynie pola
dataZadaniaiwpisz tabelizadaniadla zadań, którychmiesiąctolipiec - Zapytanie 3: wybierające jedynie pole
miesiąci wyświetlające jebez powtórzeń, z tabelizadaniadla miesięcy zaczynających się na literę„l”(l jak lew, lizak) - Zapytanie 4: zmieniające pole
wpisw tabelizadaniadla zadania z datą2020-07-13, nowy wpis to„Wycieczka: jezioro”
- Zapytanie 1: wybierające jedynie pola
Witryna internetowa
Obraz 2. Witryna internetowa

Przygotowanie grafiki:
- Plik
logo1.png, wypakowany z archiwum, należy przeskalować z zachowaniem proporcji tak, aby jego wysokość wynosiła dokładnie150 px
Cechy witryny:
- Składa się ze strony o nazwie
kalendarz.php - Zastosowany właściwy standard kodowania polskich znaków
- Tytuł strony widoczny na karcie przeglądarki: „Mój kalendarz”
- Arkusz stylów w pliku o nazwie
styl5.cssprawidłowo połączony z kodem strony - Podział strony na bloki: dwa bloki
banera, poniżej blokgłówny, w którym znajdują się bloki wyświetlające dane kolejnych dni, na dole blokstopki. Podział zrealizowany za pomocą znaczników sekcji tak, aby po uruchomieniu w przeglądarce wygląd układu bloków był zgodny zObrazem 2 - Zawartość pierwszego bloku banera:
logo1.pngz tekstem alternatywnym o treści: „Mój kalendarz” - Zawartość drugiego bloku banera:
- Nagłówek
pierwszegostopnia o treści: „KALENDARZ” - Efekt działania
skryptu 1
- Nagłówek
- Zawartość bloku głównego: Efekt działania
skryptu 2 - Zawartość stopki:
- Formularz wysyłający dane metodą
POSTdo tej samej strony, zawierający:- Pole edycyjne podpisane: „dodaj wpis: ”
- Przycisk wysyłający zawartość formularza z opisem „DODAJ”
- Paragraf (akapit) o treści: „Stronę wykonał: ”, dalej wstawiony
numer PESELzdającego
- Formularz wysyłający dane metodą
Styl CSS witryny internetowej
Cechy formatowania CSS:
- Domyślne dla całej strony: krój czcionki
Arial - Dla pierwszego bloku banera: kolor tła
#483D8B, wysokość150 px, szerokość30% - Dla drugiego bloku banera: kolor tła
#483D8B,białykolor czcionki, wysokość150 px, szerokość70% - Dla bloku wyświetlającego dane jednego dnia: kolor tła
#AFEEEE, szerokość150 px, wysokość100 px, marginesy zewnętrzne3 px, obramowanie o szerokości1 px, liniąciągłą - Dla stopki: kolor tła
#483D8B,białykolor czcionki, marginesy wewnętrzne10 px - Dla znacznika nagłówka piątego stopnia: wyrównanie tekstu
do środka
Skrypt połączenia z bazą
W tabeli 1 podano wybór funkcji PHP, do obsługi bazy danych. Wymagania dotyczące skryptu:
- Napisany w języku PHP, w pliku
kalendarz.php - Łączy się z serwerem bazodanowym na
localhost, użytkownikrootbez hasła, baza danych o nazwieegzamin5 - Działanie skryptu 1:
- Wysyła do bazy danych
zapytanie 1 - Wyświetla w nagłówku
trzeciegostopnia tekst: „miesiąc: <nazwa_miesiąca>, rok: <rok>”, gdzie pola w nawiasach <…> oznaczają dane pobrane skryptem
- Wysyła do bazy danych
- Działanie skryptu 2:
- Wysyła do bazy danych
zapytanie 2 - Definiuje blok (za pomocą znacznika sekcji), a w nim wyświetla dane przesłane skryptem, dotyczące jednego wiersza. Blok jest zgodny z
Obrazem 3oraz jest w nim wyświetlone:Data zadaniaw nagłówkupiątegostopnia- Pole
wpisw paragrafie (akapicie) - Liczba wygenerowanych bloków odpowiada liczbie wierszy zwróconych zapytaniem
- Wysyła do bazy danych
Obraz 3. Pierwszy blok

- Działanie skryptu, który odbiera dane przesłane z formularza
- Skrypt pobiera dane z pola edycyjnego
- Następnie uaktualnia dane w bazie danych. Aby uprościć zadanie skrypt wprowadza
wpiszawsze do rekordu o dacie2020-07-13. Do uaktualnienia danych wykorzystaj zapytanie4modyfikując w nim wartość polawpis
- Na końcu działania skrypt zamyka połączenie z serwerem
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 |
- UWAGA!
- Po zakończeniu pracy utwórz plik tekstowy. Zapisz w nim nazwę przeglądarki internetowej, w której weryfikowałeś poprawność działania witryny. Nazwij plik przeglądarka.txt i zapisz go w folderze z numerem PESEL.
- Nagraj płytę z rezultatami pracy. W folderze z numerem PESEL powinny się znajdować następujące pliki: import.png, kalendarz.php, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kwerendy.txt, logo1.png, przeglądarka.txt, styl5.css, ewentualnie inne przygotowane pliki.
- Po nagraniu płyty sprawdź poprawność nagrania. Opisz płytę swoim numerem PESEL i zapakowaną w pudełku pozostaw 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ą.

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!