250 kb

Transkrypt

250 kb
Języki programowania
wysokiego poziomu
Ćwiczenia
Języki programowania
Ćwiczenia
• Strukturalny HTML
• Arkusze CSS
• Formularze HTML i PHP
• Baza danych MySQL
• Forum internetowe
Strukturalny HTML
Zadania
• Dokument MS Word przerobić na dokument HTML
Wymagania
• Zachowanie struktury dokumentu
nagłówki, akapity, tabele, …
• Uzupełnienie o spis treści
łącza do poszczególnych rozdziałów:
<a href='#r1'>Rozdział 1</a>
• Bez jakiegokolwiek formatowania
Strukturalny HTML
Dokument MS Word
Strukturalny HTML
Dokument HTML
Strukturalny HTML
Dokument HTML
Arkusze CSS
Zadania
• Sformatować Dokument HTML za pomocą arkusza CSS
Wymagania
• Formatowanie elementów strukturalnych HTML
(ciało dokumentu, nagłówki, akapity, tabele, …)
• Wykorzystanie klas CSS
np. p – akapit, p.rys – podpis rysunku, …
• Wykorzystanie relacji selektorów CSS
np. #menu a, #main a
• Wykorzystanie pseudoklas łączy
Arkusze CSS
Domyślne formatowanie przeglądarki
Arkusze CSS
Formatowanie CSS
Baza danych MySQL
Zadania
• Utworzyć tabele (użytkownicy i wpisy forum)
• Wypróbować polecenia SQL
Wymagania
• Tabele powiązane ze sobą
(np. users.userid <-> posts.userref),
• Podstawowe polecenia SQL
SELECT, INSERT, UPDATE, DELETE
Baza danych MySQL
Usermin (pollux.am.gdynia.pl/usr)
Baza danych MySQL
Tabela użytkowników
Baza danych MySQL
Tabela wpisów forum
Baza danych MySQL
Polecenia SQL
Forum internetowe
Zadania
• Opracować aplikację forum internetowego
Wymagania
• Elementy obowiązkowe
• Wybrane elementy dodatkowe
(szczegóły poniżej)
Funkcjonalności Forum
Elementy obowiązkowe (2p.)
• Wyświetlanie wpisów
• Logowanie/wylogowanie
• Dodawanie wpisów
• Rejestracja użytkowników
Funkcjonalności Forum
Elementy obowiązkowe (2p.)
• Wyświetlanie wpisów
- wszystkie wpisy na jednej stronie, posortowane wg kolejności
dodawania (tj. wg id)
• Logowanie/wylogowanie
- formularz logowania (login/hasło) może być dostępny na
stronie głównej serwisu albo na odrębnej podstronie
- serwis musi „wiedzieć” czy użytkownik jest zalogowany,
próba obejścia logowania (np. przez wpisanie w przeglądarce
adresu strony dla zarejestrowanych użytkowników) musi być
wykryta; powinno to również działać w przeciwną stronę:
po zalogowaniu i przejściu na stronę główną użytkownik
powinien widzieć łącze do wylogowania (a nie zalogowania)
Funkcjonalności Forum
Elementy obowiązkowe (2p.)
• Dodawanie wpisów
- dostępne tylko po zalogowaniu
- należy odrzucać żądania dodania wpisu bez tematu i/lub treści
• Rejestracja użytkowników
- oddzielna strona z formularzem rejestracji; wymagane pola:
login, hasło, powtórzenie hasła; należy odrzucać żądania
rejestracji, jeżeli
- brak loginu lub hasła
- hasło i jego powtórzenie są różne
- login już istnieje w bazie danych
Funkcjonalności Forum
Elementy dodatkowe
• Zróżnicowanie uprawnień użytkowników (2,0 p.)
- trzy kategorie użytkowników:
- użytkownik dodaje wpisy
- moderator usuwa wpisy użytkowników
- administrator mianuje i degraduje moderatorów
• Wykorzystanie CSS (0,5 p.)
- wszystkie strony forum są tworzone w strukturalnym HTML,
do każdej dołączony jest arkusz stylów CSS
- style definiują przynajmniej
- elementy strukturalne (np.: h1..h4, p, tr, td, form itp.),
- klasy (np.: p.autor, p.data itp.)
- pseudoklasy łączy
- kombinacje selektorów (np.: form > p)
Funkcjonalności Forum
Elementy dodatkowe
• Hierarchiczna struktura forum (1,0 – 1,5 p.)
- dwa poziomy (1,0 p.)
(tematy - wpisy albo wpisy - odpowiedzi)
- trzy poziomy (1,5 p.)
(tematy - wpisy - odpowiedzi)
- hierarchia wpisów powinna wykorzystywać autoreferencję
w tabeli postów
- możliwe poziomy hierarchii:
- tematy (wyświetlane na stronie głównej)
- wpisy (wyświetlane po kliknięciu w łącze do tematu)
- odpowiedzi na wpisy (wyświetlane pod wpisami,
których dotyczą)
Funkcjonalności Forum
Elementy dodatkowe
• Wykorzystanie szablonów treści (1,0 p.)
- szablon strony, np. w postaci zmiennej PHP, zawierający
oznaczone miejsca na poszczególne elementy strony,
tj. przynajmniej:
- tytuł strony
- menu
- treść;
elementy strony są tworzone dynamicznie przez skrypt
(także w postaci zmiennych PHP) i na końcu skryptu
wstawiane w odpowiednie miejsca szablonu
Funkcjonalności Forum
Elementy dodatkowe
• Rejestracja potwierdzona emailem (1,0 p.)
- na koniec rejestracji, do użytkownika wysyłany jest email,
zawierający łącze z adresem o postaci
http://pollux.am.gdynia.pl/~inaz/skrypt.php?id=??????
otwarcie tego łącza w przeglądarce potwierdza rejestrację
- użytkownik nie może się zalogować przed potwierdzeniem
- łącze potwierdzenia powinno działać tylko jeden raz
• Dodatkowe pola w bazie danych (0,5 – 1,0 p.)
- np. data i czas dokonania wpisu, ich wprowadzanie
oraz wyświetlanie
Funkcjonalności Forum
Elementy dodatkowe
• Dodatkowe funkcjonalności (0,5 – 1,0 p.)
- włączanie i wyłączanie możliwości rejestracji użytkowników
przez administratora, ew. inne globalne ustawienia forum;
oddzielna tabela w bazie danych (id, nazwa, wartość)
oraz formularz do zmiany ustawień
- odzyskiwanie hasła
wysłanie hasła na adres podany podczas rejestracji (0,5 p.)
albo wysłanie łącza do strony definiowania hasła (1,0 p.)
- w drugim wariancie dostęp do konta użytkownika zostaje
zablokowany do czasu zdefiniowania hasła; email powinien
zawierać specjalne łącze (jak przy rejestracji potwierdzanej
mailem)
Funkcjonalności Forum
Elementy dodatkowe
• Dodatkowe funkcjonalności, cd. (0,5 – 1,0 p.)
- wyświetlanie wpisów grupami (1,0 p.)
- na stronie nie są wyświetlane wszystkie wpisy,
ale np. po 10; są za to łącza do kolejnych stron
- sortowanie (0,5 p.)
użytkownik może wybierać różne kryteria sortowania:
kolejność wpisów, autor, temat
Funkcjonalności Forum
Elementy dodatkowe
• Zabezpieczenia (0,5 – 1,0 p.)
- wymuszenie użycia HTTPS podczas logowania (0,5 p.)
- zabezpieczenie przed XSS oraz SQL-I (0,5 p.)
usuwanie niebezpiecznych elementów z danych
wprowadzanych przez użytkownika lub zamiana na
niegroźne encje HTML
- blokowanie konta po kilku (np. 3) nieudanych próbach
logowania

Podobne dokumenty