Arkusz EE.09 : 2020 - styczeń - zad. 03 (php)
Oznaczenie: EE.09-03-20.01-SG Limit czasu: 150 minut
Zadanie egzaminacyjne
Wykonaj aplikację internetową portalu prognozy pogody, 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 pogoda.zip
zabezpieczone hasłem: !Pogod4!
Archiwum należy rozpakować.
Na pulpicie konta Egzamin
utwórz folder. Jako nazwy folderu użyj swojego numeru PESEL
. Rozpakowane pliki umieść w tym folderze. Wyniki swojej pracy również zapisz w tym folderze.
Operacje na bazie danych
Do wykonania zadania należy użyć tabel: miasta
i pogoda
przedstawionych na obrazie 1
. Tabela pogoda
jest powiązana relacją
z tabelą miasta
. Pole opady
wyrażone jest w [mm/h]
, pole ciśnienie
w [hPa]
Obraz 1. Tabele miasta i pogoda
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
prognoza
- do bazy
prognoza
zaimportuj tabele z plikubaza2.sql
z rozpakowanego archiwum - wykonaj zrzut ekranu po imporcie. Zrzut zapisz w folderze z numerem PESEL, w formacie PNG i nazwij
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 - zapisz i wykonaj podane niżej
zapytania SQL
działające na bazieprognoza
. 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
wszystkie pola
z tabelipogoda
dla miast oid
równym2
, posortowanemalejąco
wedługdaty prognozy
- zapytanie 2: wybierające jedynie pola
id
oraztemperatura_dzien
z tabelipogoda
dla tych rekordów, dla którychciśnienie
jest poniżej1000 hPa
- zapytanie 3: wybierające jedynie pola
data_prognozy
,opady
z tabelipogoda
oraznazwa
z tabelimiasta
dlatemperatur dziennych
powyżej20 stopni
. Zapytanie wykorzystujerelację
- zapytanie 4: usuwające z tabeli
pogoda
rekord oid
równym8
- zapytanie 1: wybierające
Witryna internetowa
Obraz 2. Witryna internetowa
Przygotowanie grafiki:
- plik
logo.png
, wypakowany z archiwum, należy przeskalować z zachowaniem proporcji tak, aby jego wysokość wynosiła dokładnie90 px
, obraz ma zachować przezroczystość - plik
obraz.jpg
, wypakowany z archiwum, należy przeskalować z zachowaniem proporcji tak, aby jego wysokość wynosiła dokładnie250 px
Cechy witryny:
- składa się ze strony o nazwie
meteo.php
- zastosowany właściwy standard kodowania polskich znaków
- tytuł strony widoczny na karcie przeglądarki: „Prognoza pogody Poznań”
- arkusz stylów w pliku o nazwie
styl4.css
prawidłowo połączony z kodem strony - podział strony na bloki: na górze trzy bloki
banera
:lewy
,środkowy
,prawy
, poniżej dwa bloki:lewy
iprawy
, poniżej blokgłówny
, na dole blokstopki
. Podział zrealizowany za pomocą znaczników sekcji, zgodnie zobrazem 2
- zawartość lewego bloku banera: akapit (paragraf) o treści „maj, 2019 r.”
- zawartość środkowego bloku banera: nagłówek
drugiego
stopnia o treści „Prognoza dla Poznania” - zawartość prawego bloku banera: obraz
logo.png
z tekstem alternatywnym o treści „prognoza” - zawartość bloku lewego: odnośnik do pliku
kwerendy.txt
z treścią: „Kwerendy” - zawartość bloku prawego:
obraz.jpg
z tekstem alternatywnym o treści „Polska, Poznań” - zawartość bloku głównego:
- tabela o
sześciu
kolumnach - wiersz nagłówkowy tabeli zawiera wpisy: „Lp.” „DATA”, „NOC - TEMPERATURA”, „DZIEŃ - TEMPERATURA”, „OPADY [mm/h]”, „CIŚNIENIE [hPa]”
- wiersze z danymi tabeli są wypełnione za pomocą skryptu
- tabela o
- zawartość bloku 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
Garamond
- wspólne dla lewego i prawego bloku banera: kolor tła
RGB 95, 158, 160
;żółty
kolor czcionki, szerokość20%
, wysokość90 px
, wyrównanie tekstudo prawej strony
- dla środkowego bloku banera: kolor tła
RGB 95, 158, 160
;żółty
kolor czcionki, szerokość60%
, wysokość90 px
, wyrównanie tekstudo środka
- dla bloku lewego i bloku prawego: kolor tła
RGB 175, 238, 238
, szerokość50%
, wysokość250 px
- dla bloku głównego: kolor tła
RGB 95, 158, 160
; marginesy wewnętrzne30 px
- dla bloku stopki: kolor tła
RGB 175, 238, 238
; marginesy wewnętrzne10 px
- dla znacznika tabeli: obramowanie
2 px
, liniąkropkowaną
ozielonym
kolorze, szerokość100%
, obramowaniepołączone
(za pomocą jednej linii, jak naobrazie 2
) - dla znacznika komórki danych: obramowanie
2 px
, liniąkropkowaną
ozielonym
kolorze - dla znacznika komórki nagłówka tabeli: obramowanie
2 px
, liniąkropkowaną
ozielonym
kolorze, kolor tłazielony
, kolor czcionkiżółty
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
- skrypt łączy się z serwerem bazodanowym na
localhost
, użytkownikroot
bez hasła, baza danych o nazwieprognoza
- skrypt wysyła do bazy danych
zapytanie 1
- w pierwszej kolumnie tabeli wyświetlana jest liczba porządkowa rozpoczynająca się w pierwszym wierszu z danymi od wartości
1
- w pozostałych kolumnach tabeli wyświetlane są dane z bazy
- każdy zwrócony zapytaniem wiersz jest wyświetlany w osobnym wierszu tabeli w bloku głównym. Dane pobrane z bazy należy umieścić w odpowiednich kolumnach tabeli zgodnie z
obrazem 2
- na końcu działania skrypt zamyka połączenie z serwerem
Tabela 1. Wybór funkcji języka PHP do obsługi bazy MySQLi 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 o nazwie przeglądarka.txt. Zapisz w nim nazwę przeglądarki internetowej, w której weryfikowałeś poprawność działania witryny. Umieść go w folderze z numerem PESEL.
- Nagraj płytę z rezultatami pracy. W folderze z numerem PESEL powinny się znajdować pliki: import.png, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kwerendy.txt, logo.png, meteo.php, obraz.jpg, przeglądarka.txt, styl4.css, ewentualnie inne przygotowane pliki.
- Po nagraniu płyty sprawdź poprawność jej odczytu. Opisz płytę swoim numerem PESEL i pozostaw zapakowaną w pudełku 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!
Zamów książki o IT sec z kodem: pasja
Można już zamawiać dwa tomy książek "Wprowadzenie do bezpieczeństwa IT". Mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności! Zamówień można dokonywać tutaj:
Tom 1 Tom 2Pomóż 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!