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