Arkusz E.14 : 2018 - styczeń - zad. 01 (php)
Oznaczenie: E.14-01-18.01 Limit czasu: 150 minut
Zadanie egzaminacyjne
Wykonaj aplikację internetową portalu ogłoszeniowego. Wykorzystaj pakiet XAMPP jako środowisko bazodanowo-aplikacyjne. Stronę internetową zbuduj przy wykorzystaniu edytora zaznaczającego składnię.
Aby wykonać zadanie, zaloguj się na konto Egzamin bez hasła. Na pulpicie znajdziesz archiwum ZIP o nazwie materialy.zip zabezpieczone hasłem: Zad4ni3.
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. Po skończonej pracy wyniki zapisz także w tym folderze.
Operacje na bazie danych
Baza danych jest zgodna ze strukturą przedstawioną na obrazie 1. Tabela ogloszenie ma klucz obcy uzytkownik_id będący w relacji z kluczem głównym tabeli uzytkownik. Pole kategoria przyjmuje wartości liczbowe: 1 = książki, 2 = muzyka.
Obraz 1. Struktura 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 nową bazę danych o nazwie
ogloszenia - Do bazy ogloszenia zaimportuj tabele z pliku
baza.sql(plik znajduje się w rozpakowanym archiwum ZIP) - Wykonaj zrzut ekranu po imporcie. Zrzut zapisz w folderze z numerem PESEL, w formacie JPEG i nazwij
import.jpg. Nie kadruj zrzutu. Powinien on obejmować cały ekran, 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 ogloszenia. Zapytania zapisz w plikukwerendy.txt, w folderze z numerem PESEL. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacie JPEG i nadaj im nazwykw1,kw2,kw3,kw4. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań. - Zapytanie 1: wybierające jedynie pola
id,tytulitrescz tabeliogloszeniedla tych rekordów, dla których kategoria toksiążki - Zapytanie 2: wykorzystujące relację pomiędzy tabelami i wybierające jedynie
telefontego użytkownika, który jest przypisany do ogłoszenia numer1 - Zapytanie 3: tworzące użytkownika
moderatornalocalhostz hasłemqwerty - Zapytanie 4: nadające prawa dla użytkownika
moderatordo usuwania i przeglądania danych w tabeliogloszenie.
Cechy obrazu
Plik ksiazki.jpg, wypakowany z archiwum, należy przeskalować do wymiarów: szerokość 200px, wysokość 300px. Pozostałych atrybutów obrazu nie należy zmieniać.
Grafika ksiazki.jpg

Witryna internetowa
Obraz 2. Witryna internetowa

Cechy witryny:
- Nazwa pliku:
ogloszenia.php - Zastosowany właściwy standard kodowania polskich znaków
- Tytuł strony widoczny na karcie przeglądarki: "Portal ogłoszeniowy"
- Arkusz stylów w pliku o nazwie
styl1.cssprawidłowo połączony z kodem strony - Podział strony na bloki:
baner, panelelewyiprawy,stopkazrealizowany za pomocą znaczników sekcji, tak aby po uruchomieniu strony w przeglądarce wygląd był zgodny zobrazem 2 - Zawartość banera:
- nagłówek
pierwszegostopnia o treści: "Portal Ogłoszeniowy"
- nagłówek
- Zawartość panelu lewego:
- Nagłówek
drugiegostopnia o treści: "Kategorie ogłoszeń" - Lista
numerowanaz trzema elementami: Książki, Muzyka, Filmy - Obraz
ksiazki.jpgz tekstem alternatywnym o treści: "Kupię / sprzedam książkę" - Tabela o wymiarach
3 kolumnyna4 wiersze. Ostatnia kolumna zawierascalonetrzy wiersze. Zawartość i wygląd tabeli zgodne ze wzorem przedstawionym poniżej
- Nagłówek
Wzór wyglądu tabeli

- Zawartość panelu prawego:
- Nagłówek
drugiegostopnia o treści: "Ogłoszenia kategorii książki" - Skrypt połączenia z bazą
- Nagłówek
- Zawartość stopki:
- napis o treści: "Portal ogłoszeniowy opracował:", zaś dalej wstawiony Twój
numer PESEL.
- napis o treści: "Portal ogłoszeniowy opracował:", zaś dalej wstawiony Twój
Styl CSS witryny internetowej
Plik styl1.css zawiera formatowanie:
- Banera: kolor tła
#40271A,białykolor czcionki, krój czcionki:Tahoma, wyrównanie tekstudo środka, wysokość80px - Panelu lewego: kolor tła
#DBB29C, szerokość40%, wysokość700px - Panelu prawego: kolor tła
#FFE3D4, szerokość60%, wysokość700px - Stopki: kolor tła
#40271A,białykolor czcionki, wyrównanie tekstudo prawej strony - Tabeli, komórki tabeli: obramowanie na
1pxliniąprzerywanąbrązową, szerokość tabeli500px, marginesy zewnętrzne10px, wyrównanie tekstudo środka - Obrazu: marginesy wewnętrzne
30px - Listy numerowanej: styl punktora
cyfry rzymskiewielkie
Niewymienione właściwości selektorów przybierają wartości domyślne.
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
- Nie jest
wymaganesprawdzenie, czy operacja na bazie danych powiodła się - Skrypt łączy się z serwerem bazodanowym na
localhost, użytkownikrootbez hasła, baza danych o nazwieogloszenia - Skrypt wysyła do bazy danych dwa zapytania:
- Zapytanie 1 (patrz punkt "Operacje na bazie danych")
- Zapytanie 2 (patrz punkt "Operacje na bazie danych") zmodyfikowane tak, aby dla danego
id ogłoszeniapobierany byłnumer telefonuużytkownika, do którego należy ogłoszenie
- Dla każdego zwróconego zapytaniem wiersza wykonuje następujące działania:
- Wyświetla w nagłówku
trzeciegostopnia polaidoraztytul - Wyświetla w akapicie treść ogłoszenia
- W kolejnym akapicie wyświetla tekst: "telefon kontaktowy:" i dalej
numer telefonupobrany zmodyfikowanymzapytaniem 2 - 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 biblioteki mysql | Funkcje bilioteki mysqli | Zwracana wartość |
|---|---|---|
| mysql_connect(serwer, użytkownik, hasło) | mysqli_connect(serwer, uzytkownik, haslo, nazwa_bazy) | id połączenia lub FALSE, gdy niepowodzenie |
| mysql_select_db ('nazwa_bazy' [,id_polaczenia]) | mysqli_select_db(id_polaczenia, nazwa_bazy) | TRUE / FALSE, w zależności od stanu operacji |
| mysql_error([id_polaczenia]) | mysqli_error(id_polaczenia) | Tekst komunikatu błędu |
| mysql_close([id_polaczenia]) | mysqli_close(id_polaczenia) | TRUE / FALSE, w zależności od stanu operacji |
| mysql_query(zapytanie [,id_polaczenia]) | mysqli_query(id_polaczenia, zapytanie) | Wynik zapytania |
| mysql_fetch_row (wynik_zapytania) | mysqli_fetch_row(wynik_zapytania) | Tablica numeryczna odpowiadająca wierszowi zapytania |
| mysql_fetch_array (wynik_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 |
| mysql_num_rows (wynik_zapytania) | mysqli_num_rows(wynik_zapytania) | Liczba wierszy w podanym zapytaniu |
| mysql_num_fields (wynik_zapytania) | mysqli_num_fields (wynik_zapytania) | Liczba kolumn w podanym zapytaniu |
- UWAGA!
- Po zakończeniu pracy nagraj płytę z rezultatami pracy. W folderze z numerem PESEL powinny się znajdować pliki: import.jpg, ksiazki.jpg, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kwerendy.txt, ogloszenia.php, styl1.css, ewentualnie inne przygotowane pliki.
- Utwórz plik tekstowy. Zapisz w nim nazwę przeglądarki internetowej, w której weryfikowałeś poprawność działania witryny. Zapisz go na płycie jako przegladarka.txt.
- Po nagraniu płyty sprawdź poprawność nagrania. Opisz płytę swoim numerem PESEL i pozostaw zapakowaną w pudełku na stanowisku.
Czas przeznaczony na wykonanie zadania wynosi 150 minut.
Ocenie podlegać będą 4 rezultaty:
- operacje na bazie danych
- witryna internetowa
- 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!