Arkusz EE.09 : 2022 - styczeń - zad. 05 (php)
Oznaczenie: EE.09-05-22.01-SG Limit czasu: 150 minut
Zadanie egzaminacyjne
Wykonaj stronę logowania do portalu społecznościowego, wykorzystując pakiet XAMPP, edytor zaznaczający składnię oraz edytor grafiki rastrowej.
Aby wykonać zadanie, zaloguj się na konto Egzamin bez hasła. Na pulpicie znajduje się archiwum ZIP o nazwie osiedle.zip zabezpieczone hasłem: Mieszk4ncY
Należy utworzyć folder o nazwie odpowiadającej numerowi PESEL zdającego lub w przypadku jego braku innemu numerowi, którym został podpisany arkusz. Archiwum należy rozpakować do tego folderu.
Ważne! Aby strona działała poprawnie rozpakowane pliki muszą znaleźć się w tym samym folderze, co pliki strony. Wszystkie wykonane w czasie egzaminu pliki w tym zrzuty ekranu, pliki strony, stylów należy umieścić w tym folderze.
Operacje na bazie danych
Do wykonania operacji na bazie należy wykorzystać tabele uzytkownicy i dane przedstawione na Obrazie 1. W tabeli uzytkownicy hasła są zabezpieczone szyfrem SHA-1.
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
portal - Do bazy portal zaimportuj plik
baza.sqlz rozpakowanego archiwum - Wykonaj zrzut ekranu po imporcie. Zrzut zapisz w folderze opisanym numerem PESEL lub w przypadku jego braku w folderze z innym numerem, którym został podpisany arkusz, w formacie JPEG i nazwij
egzamin. 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
zapytania SQLdziałające na bazie danychportal. Zapytania zapisz w plikukwerendy.txt, w folderze z numerem PESEL lub w przypadku jego braku w folderze z innym numerem, którym został podpisany arkusz. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacie PNG o nazwachkw1,kw2,kw3,kw4. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań- Zapytanie 1: wybierające jedynie pole
hasloz tabeliuzytkownicydla użytkownika o loginieJustyna - Zapytanie 2: liczące liczbę wierszy w tabeli
dane - Zapytanie 3: wybierające jedynie pole
loginz tabeliuzytkownicyi odpowiadające mu polarok_urodz,przyjaciol,hobby,zdjeciez tabelidanedla użytkownika o loginieJustyna. Tabele połączone są relacją1..1, za pomocąkluczy głównych - Zapytanie 4: dodające do tabeli
danekolumnęstanowiskodowolnego typu tekstowego
- Zapytanie 1: wybierające jedynie pole
Witryna internetowa
Obraz 2. Witryna internetowa, strona uzytkownicy.php, zalogowano do konta o loginie Heniek

Cechy grafiki:
- Plik
o1.jpg, wypakowany z archiwum, należy przyciąć tak, aby jego wysokość wynosiła dokładnie200 px, szerokość pozostaje niezmieniona –400 px, obraz należy zapisać w pliku o tej samej nazwie. Pozostałe obrazy zostały przygotowane i nie należy ich zmieniać.
Cechy witryny:
- Składa się ze stron:
uzytkownicy.php,dane.html - W pliku o nazwie
dane.htmljest wpisany jedynie napis „strona w trakcie budowy”. Pozostałe wymagania dotyczą jedynie plikuuzytkownicy.php - Zastosowany właściwy standard kodowania polskich znaków
- Tytuł strony widoczny na karcie przeglądarki:
„Portal społecznościowy” - Arkusz stylów w pliku o nazwie
styl5.cssprawidłowo połączony z kodem strony - Podział strony na bloki: obok siebie dwa bloki
banera, poniżej obok siebie bloklewyiprawy, poniżejstopka. Podział zrealizowany za pomocą znaczników sekcji tak, aby wygląd układu bloków strony po uruchomieniu w przeglądarce, był zgodny zObrazem 2 - Zawartość banera lewego: nagłówek
drugiegostopnia o treści „Nasze osiedle” - Zawartość banera prawego: efekt działania skryptu 1
- Zawartość bloku lewego:
- Nagłówek
trzeciegostopnia o treści „Logowanie” - Formularz wysyłający dane do tego samego pliku metodą
postz elementami:- Napis login, poniżej pole edycyjne
- Poniżej napis hasło, poniżej pole edycyjne pozwalające na niejawne wpisanie hasła
- Poniżej przycisk o treści „Zaloguj” wysyłający dane z formularza
- Nagłówek
- Zawartość bloku prawego:
- Nagłówek
trzeciegostopnia o treści „Wizytówka” - Blok wizytówki, w którym umieszczony jest efekt działania skryptu 2
- Nagłówek
- Zawartość stopki: napis o treści „Stronę wykonał: ”, dalej wstawiony
numer PESELzdającego lub w przypadku jego braku inny numer, którym został podpisany arkusz
Styl CSS witryny internetowej
Cechy formatowania CSS:
- Są zawarte wyłącznie w zewnętrznym arkuszu stylów
- Domyślne dla całej strony: krój czcionki
Tahoma - Wspólne dla obu banerów: kolor tła
#003d33,białykolor czcionki, wyrównanie tekstudo środka, wysokość50 px - Dodatkowo dla banera lewego: szerokość
70% - Dodatkowo dla banera prawego: szerokość
30% - Dla bloku lewego: kolor tła
#26a69a, wysokość550 px, szerokość30% - Dla bloku prawego: kolor tła
#26a69a, wysokość550 px, szerokość70% - Dla bloku stopki: kolor tła
#003d33,białykolor czcionki - Dla bloku wizytówki: szerokość
400 px, marginesy zewnętrzne30 px, wyrównanie tekstudo środka, obramowanie liniąciągłą1 pxkoloru#003d33 - Dla przycisku w wizytówce: kolor tła
#003d33,białykolor czcionki, szerokość100%, wysokość30 px, bez obramowania - Po najechaniu na przycisk w wizytówce jego tło zamienia się na
#004c40
Skrypt
W Tabeli 1 podano dane przydatne podczas testowania aplikacji. W Tabeli 2 podano wybór funkcji PHP do obsługi bazy danych oraz opis funkcji sha1. Wymagania dotyczące skryptu:
- Napisany w języku PHP
- Skrypt łączy się z serwerem bazy danych na
localhost, użytkownikrootbez hasła, baza danych o nazwieportal - Po wykonaniu operacji na bazie danych skrypt zamyka połączenie z serwerem
- Działanie skryptu 1
- Wysyła do bazy danych
zapytanie 2 - Wartość zwróconą zapytaniem wypisuje w nagłówku
piątegostopnia, według wzoru: „Liczba użytkowników portalu: <zwrocona_wartosc>”
- Wysyła do bazy danych
- Działanie skryptu 2
- Skrypt wykonuje akcje tylko wtedy, jeśli dane wysłane z formularza są
niepuste - Skrypt wysyła do bazy zmodyfikowane
zapytanie 1, tak, że w klauzuli warunku jest sprawdzonyloginprzesłany przez formularz - Jeżeli
loginnie istnieje w bazie, wyświetlony jest komunikat„login nie istnieje” - Jeżeli
loginistnieje jest sprawdzana zgodność przesłanego formularzemhasłaz hasłem przechowywanym w bazie. Należy zastosować funkcję szyfrującą dane algorytmemSHA-1 - Jeżeli hasła nie zgadzają się, wyświetlony jest komunikat
„hasło nieprawidłowe” - Jeżeli hasła się zgadzają to skrypt wysyła do bazy zmodyfikowane
zapytanie 3tak, że w klauzuli warunku podany jestloginprzesłany formularzem. Następnie wyświetla dane w bloku wizytówki:- Obraz na podstawie
nazwy plikuz tekstem alternatywnym „osoba” - Poniżej w nagłówku
czwartegostopnialoginoraz w nawiasiewiekdanej osoby obliczony na podstawie roku urodzenia (polerok_urodz) - Poniżej w paragrafie
hobby, poprzedzone napisem „hobby: ” - Poniżej w nagłówku
pierwszegostopnia obraz serca wypakowany z archiwum (icon-on.png) oraz liczbę przyjaciół pobraną z bazy (poleprzyjaciol) - Poniżej przycisk o treści „Więcej informacji” prowadzący do pliku
dane.html
- Obraz na podstawie
- Skrypt wykonuje akcje tylko wtedy, jeśli dane wysłane z formularza są
Tabela 1. Tabela z odkodowanymi hasłami, przydatna podczas testowania aplikacji

Tabela 2. 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 |
Opis funkcji sha1, pobrany ze strony php.net, dostęp 6.11.2019

- UWAGA!
- Po zakończeniu pracy utwórz w folderze z numerem PESEL lub w przypadku jego braku w folderze z innym numerem, którym został podpisany arkusz plik tekstowy o nazwie przeglądarka.txt. Zapisz w nim nazwę przeglądarki internetowej, w której weryfikowano poprawność działania witryny.
- Nagraj płytę z rezultatami pracy. W folderze z numerem PESEL lub w przypadku jego braku w folderze z innym numerem, którym został podpisany arkusz powinny się znajdować pliki: dane.html, egzamin.jpg, kw1.png, kw2.png, kw3.png, kw4.png, kwerendy.txt, o1.jpg – o8.jpg, przeglądarka.txt, styl5.css, uzytkownicy.php, ewentualnie inne przygotowane pliki.
- Po nagraniu płyty sprawdź poprawność nagrania w obecności przewodniczącego zespołu nadzorującego, na specjalnie przygotowanym do tego celu stanowisku. Opisz płytę swoim numerem PESEL lub w przypadku jego braku innym numerem, którym został podpisany arkusz i pozostaw na stanowisku, zapakowaną w pudełku 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.

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!