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

Oznaczenie: EE.09-06-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 bazy danych

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 egzamin4
  • Do bazy egzamin4 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 egzamin4. Zapytania zapisz w pliku kwerendy.txt, w folderze z numerem PESEL. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacie JPG 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, cel, cena z tabeli wycieczki dla wycieczek, które nie są dostępne (pole dostepna)
    • Zapytanie 2: wybierające jedynie pola nazwaPliku i podpis z tabeli zdjecia sortując je malejąco alfabetycznie według kolumny podpis
    • Zapytanie 3: wykorzystujące relację i wybierające jedynie pola podpis, cena i cel związany ze zdjęciem z tabel zdjecia i wycieczki, dla wycieczek, których cena jest niższa niż 1200 zł
    • Zapytanie 4: usuwające pole dataWyjazdu z tabeli wycieczki

Witryna internetowa

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

Cechy witryny:

  • Składa się ze strony o nazwie biuro.php
  • Zastosowany właściwy standard kodowania polskich znaków
  • Tytuł strony widoczny na karcie przeglądarki: „Wycieczki krajoznawcze”
  • Arkusz stylów w pliku o nazwie styl4.css prawidłowo połączony z kodem strony
  • Podział strony na bloki: na górze baner, poniżej blok z danymi, poniżej obok siebie trzy bloki: lewy, środkowy i prawy, 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: „WITAMY W BIURZE PODRÓŻY”
  • Zawartość bloku z danymi:
    • Nagłówek trzeciego stopnia o treści: „ARCHIWUM WYCIECZEK”
    • Efekt działania skryptu 1
  • Zawartość lewego bloku:
    • Nagłówek trzeciego stopnia o treści: „NAJTANIEJ...”
    • Tabela o dwóch kolumnach i trzech wierszach, wypełniona zgodnie z danymi:

  • Zawartość środkowego bloku:
    • Nagłówek trzeciego stopnia o treści: „TU BYLIŚMY”
    • Efekt działania skryptu 2
  • Zawartość prawego bloku:
    • Nagłówek trzeciego stopnia o treści: „SKONTAKTUJ SIĘ”
    • Odnośnik do adresu e-mail wycieczki@wycieczki.pl o treści: „napisz do nas”
    • Paragraf (akapit) o treści „telefon: 555666777”
  • 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 Tahoma
  • Wspólne dla banera i stopki: kolor tła RGB 107, 142, 35; biały kolor czcionki, wyrównanie tekstu do środka, marginesy wewnętrzne 3 px
  • Dla bloku z danymi: kolor tła RGB 255, 218, 185; marginesy wewnętrzne 3 px
  • Dla bloku lewego i prawego: kolor tła RGB 255, 239, 213; szerokość 27%, wysokość 550 px
  • Dla bloku środkowego: kolor tła RGB 255, 239, 213; szerokość 46%, wysokość 550 px
  • Dla znacznika nagłówka trzeciego stopnia: wyrównanie tekstu do środka
  • Dla pierwszej litery nagłówka trzeciego stopnia (pseudoelement): zielony kolor czcionki
  • Dla obrazu: wysokość 90 px, marginesy wewnętrzne 7 px
  • W momencie, gdy kursor znajduje się na obrazie, styl obrazu zmienia się na: kolor tła RGB 255, 218, 185 (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 egzamin4
  • Skrypt 1
    • Wysyła do bazy danych zapytanie 1
    • Każdy zwrócony zapytaniem wiersz jest wyświetlany w osobnej linii, według wzoru: „<id>. <cel>, cena: <cena>”, gdzie w znakach < > zapisano pola zwracane zapytaniem
  • Skrypt 2
    • 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
  • Na końcu działania skrypt zamyka połączenie z serwerem

Obraz 3. Fragment strony twarz.html

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, biuro.php, import.png, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kwerendy.txt, przeglądarka.txt, styl4.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ą.