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