Arkusz EE.09 : 2020 - czerwiec - zad. 02 (php)

Oznaczenie: EE.09-02-20.06-SG   Limit czasu: 150 minut

Zadanie egzaminacyjne

Wykonaj aplikację internetową biura podróży, 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 podroze.zip zabezpieczone hasłem: &poDrozE$

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ć tabel wycieczki i zdjecia przedstawione na Obrazie 1. Wycieczka jest dostępna, jeśli pole dostepna przyjmuje wartość TRUE

Obraz 1. Tabele wycieczki i zdjecia

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 egzamin3
  • Do bazy egzamin3 zaimportuj tabele z pliku egzamin3.sql z rozpakowanego archiwum
  • Wykonaj zrzut ekranu po imporcie. Zrzut zapisz w formacie PNG pod nazwą import w folderze z 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 SQL działające na bazie egzamin3. Zapytania zapisz w pliku kwerendy.txt, w folderze z numerem PESEL. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacie JPEG i nadaj im nazwy kw1, kw2, kw3, kw4. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań
    • Zapytanie 1: wybierające jedynie pola id, dataWyjazdu, cel i cena z tabeli wycieczki dla dostępnych wycieczek (pole dostepna)
    • Zapytanie 2: wybierające jedynie pola nazwaPliku i podpis z tabeli zdjecia, sortując je rosnąco alfabetycznie według kolumny podpis
    • Zapytanie 3: wykorzystujące relację i wybierające jedynie pola nazwaPliku i cel związany ze zdjęciem z tabel zdjecia i wycieczki, dla wycieczek, których cena jest wyższa niż 1000 zł
    • Zapytanie 4: dodające do tabeli wycieczki pole dataPrzyjazdu typu data, pole powinno być wstawione po polu dataWyjazdu

Witryna internetowa

Obraz 2. Witryna internetowa, kursor wskazuje środkowy obrazek, co spowodowało ustawienie tła

Cechy witryny:

  • Składa się ze strony o nazwie wycieczki.php
  • Zastosowany właściwy standard kodowania polskich znaków
  • Tytuł strony widoczny na karcie przeglądarki: „Wycieczki i urlopy”
  • Arkusz stylów w pliku o nazwie styl3.css prawidłowo połączony z kodem strony
  • Podział strony na bloki: na górze baner, poniżej obok siebie trzy bloki: lewy, środkowy i prawy, poniżej blok z danymi, poniżej stopka. Podział zrealizowany za pomocą znaczników sekcji tak, aby po uruchomieniu w przeglądarce wygląd układu bloków był zgodny z Obrazem 2
  • Zawartość banera: nagłówek pierwszego stopnia o treści: „BIURO PODRÓŻY”
  • Zawartość lewego bloku:
    • Nagłówek drugiego stopnia o treści: „KONTAKT”
    • Odnośnik do adresu e-mail biuro@wycieczki.pl o treści: „napisz do nas”
    • Paragraf (akapit) o treści: „telefon: 555666777”
  • Zawartość środkowego bloku:
    • Nagłówek drugiego stopnia o treści: „GALERIA”
    • Efekt działania skryptu 1
  • Zawartość prawego bloku:
    • Nagłówek drugiego stopnia o treści: „PROMOCJE”
    • Tabela o trzech kolumnach i dwóch wierszach wypełniona danymi:

  • Zawartość bloku z danymi:
    • Nagłówek drugiego stopnia o treści „LISTA WYCIECZEK”
    • Efekt działania skryptu 2
  • Zawartość stopki: akapit (paragraf) o treści: „Stronę wykonał: ”, dalej wstawiony numer PESEL zdającego

Styl CSS witryny internetowej

Cechy formatowania CSS, działające na stronie:

  • Domyślne dla całej strony: krój czcionki Verdana
  • Wspólne dla banera i stopki: kolor tła RGB 205, 92, 92; biały kolor czcionki, wyrównanie tekstu do środka, marginesy wewnętrzne 5 px
  • Dla bloku lewego i prawego: kolor tła RGB 250, 235, 215; szerokość 25%, wysokość 500 px
  • Dla bloku środkowego: kolor tła RGB 250, 235, 215; szerokość 50%, wysokość 500 px
  • Dla bloku z danymi: kolor tła RGB 210, 180, 140; biały kolor czcionki
  • Dla znacznika nagłówka drugiego stopnia: wyrównanie tekstu do środka
  • Dla pierwszej litery nagłówka drugiego stopnia (pseudoelement): rozmiar czcionki 150%
  • Dla obrazu: wysokość 100 px, marginesy wewnętrzne 7 px
  • W momencie, gdy kursor znajduje się na obrazie, styl obrazu zmienia się na: kolor tła RGB 210, 180, 140 (efekt ten jest widoczny na Obrazie 2)

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
  • Łączy się z serwerem bazodanowym na localhost, użytkownik root bez hasła, baza danych o nazwie egzamin3
  • Skrypt 1
    • Wysyła do bazy danych zapytanie 2
    • Dane z każdego zwróconego zapytaniem wiersza są wykorzystane do wyświetlenia kolejnych obrazów, w ten sposób, że pole nazwaPliku jest źródłem obrazu, a pole podpis jest tekstem alternatywnym obrazu
  • Skrypt 2
    • Wysyła do bazy danych zapytanie 1
    • Każdy zwrócony zapytaniem wiersz jest wyświetlany w osobnej linii, według wzoru: „<id>. <dataWyjazdu>, <cel>, cena: <cena>”, gdzie w znakach < > zapisano pola zwracane zapytaniem
  • 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: 1.jpg, 2.jpg, 3.jpg, 4.jpg, 5.jpg, 6.jpg, 7.jpg, 8.jpg, 9.jpg, import.png, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kwerendy.txt, przeglądarka.txt, styl3.css, wycieczki.php 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ą.