PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA im. ks. Bronisława Markiewicza w JAROSŁAWIU KIERUNEK: INFORMATYKA SPECJALNOŚĆ: INFORMATYKA STOSOWANA Stacjonarne studia inżynierskie Norbert Czuba nr albumu 15028 Moduł zarządzania bibliograficzną bazą danych w systemie RSPN Świadomy/a odpowiedzialności prawnej oświadczam, że praca dyplomowa, została napisana przeze mnie samodzielnie i nie była wcześniej podstawą żadnej procedury związanej z nadaniem tytułów zawodowych i dyplomów szkoły wyższej. Oświadczam również, że praca ta nie narusza praw autorskich w rozumieniu ustawy z dnia 04.02.1994r. o prawie autorskim i prawach pokrewnych (Dz. U. Nr 24, poz. 83 z póź. zm.) oraz dóbr osobistych chronionych prawem. …………………… (podpis autora) Praca dyplomowa napisana pod kierunkiem: prof. nzw. dr hab. Zbigniewa Suraja …………………………… Jarosław 2008 SPIS TREŚCI Wstęp ....................................................................................................................... 3 1.1. Cel i zakres pracy .............................................................................................. 3 2. Analiza tematycznych stron internetowych ............................................................. 4 3. Technologia wykonania serwisu WWW ................................................................. 6 3.1. Wybór technologii ............................................................................................ 6 3.1.1. Język HTML ............................................................................................. 6 3.1.2. CSS – Kaskadowe arkusze stylów ............................................................ 7 3.1.3. Język PHP ................................................................................................. 8 3.1.4. SQL - Strukturalny język zapytań ............................................................ 9 3.2. Wykorzystane programy ................................................................................. 11 3.2.1. Edytor Macromedia Dreamwaver 8 ........................................................ 11 3.2.2. Program phpMyAdmin 2.9.1.1 ............................................................... 12 4. Prezentacja projektu ............................................................................................... 14 4.1. Założenia realizacji projektu ........................................................................... 14 4.2. Założenia bazodanowe .................................................................................... 15 4.3. Ogólnodostępna część serwisu ....................................................................... 17 4.3.1. Strona główna modułu bibliograficznego ............................................... 17 4.3.2. Wyszukiwanie książek ............................................................................ 19 4.3.3. Opis książki............................................................................................. 20 4.3.4. Zakładanie konta – „Registration” .......................................................... 21 4.3.5. Logowanie użytkowników ...................................................................... 22 4.3.6. Przypomnienie hasła ............................................................................... 23 4.3.7. Kontakt z administratorem...................................................................... 23 4.4. Moduł użytkownika ........................................................................................ 24 4.4.1. Wypożyczone książki ............................................................................. 25 4.4.2. Wypożycz książkę .................................................................................. 26 4.4.3. Zmiana danych użytkownika .................................................................. 27 4.5. Moduł administracyjny ................................................................................... 27 4.5.1. Administracja nad użytkownikami ......................................................... 27 4.5.2. Edycja stylów użytkownika .................................................................... 28 4.5.3. Zapytanie MySQL .................................................................................. 29 4.5.4. Dodawanie, edytowanie i usuwanie książek........................................... 30 4.5.5. Wypożyczone książki ............................................................................. 31 4.6. Implementacja projektu .................................................................................. 31 4.6.1. Połączenie z bazą danych ....................................................................... 34 4.6.2. Prezentacja zawartości tabel ................................................................... 35 4.6.3. Logowanie .............................................................................................. 35 4.6.4. Dodawanie, edytowanie i usuwanie użytkowników ............................... 36 5. Podsumowanie ....................................................................................................... 38 Literatura ......................................................................................................................... 39 Spis rysunków ................................................................................................................. 40 Spis tabel ......................................................................................................................... 40 Spis programów .............................................................................................................. 40 Załączniki........................................................................................................................ 41 1. 2 1. Wstęp Rozwój technologii informacyjnych doprowadził do tego że ludzie zaczęli się wspomagać nowymi metodami dystrybucji i rozpowszechniania informacji oraz danych. W dzisiejszych czasach najczęściej jest do tego wykorzystywany Internet, w którym możemy znaleźć praktycznie wszystkie interesujące nas informacje i dane. Dzięki technologiom teleinformacyjnym w prosty dla użytkownika sposób można zamówić lub zarezerwować wszelakie produkty, jak i usługi. Służą do tego różnego rodzaju sklepy internetowe czy też wypożyczalnie, np. kaset wideo, płyt DVD, książek, samochodów, jak i sprzętu budowlanego. Obecnie przez „wirtualny świat” można dokonać zakupu bez konieczności wychodzenia z domu, dzięki czemu klient zaoszczędza bezcenny czas. Niniejszy serwis WWW został stworzony na potrzeby systemu RSPN (ang. Rough Sets and Petri Nets). System ten spełnia funkcje wypożyczalni książek, która ma za zadanie ułatwić ludziom wypożyczanie literatury na temat sieci Petriego. 1.1. Cel i zakres pracy Celem niniejszej pracy jest stworzenie serwisu internetowego ułatwiającego systemowi RSPN zarządzanie dostępnym zbiorem literatury, jak również rejestrację użytkowników i wypożyczanie im książek. Projekt opierał się będzie w głównym stopniu o bazę danych, w której zamieszczone będą wszystkie informacje na temat klientów wypożyczalni i dostępnych książek. Praca swym zakresem obejmuje pięć rozdziałów, w tym wstępu i podsumowania. Drugi rozdział zawiera analizę stron internetowych o tematyce bibliograficznej. Tematem rozdziału trzeciego jest opis narzędzi i technologii wykonania projektu. W czwartym rozdziale zawarto opis projektu modułu bibliograficznego wraz z jego implementacją. 3 2. Analiza tematycznych stron internetowych Zaprojektowanie własnego modułu zarządzającego bibliograficzną bazą danych rozpoczęto od sprawdzenia i wyciagnięcia wniosków z istniejących już witryn WWW odnalezionych w sieci. Otóż sprawdza się takie strony pod względem wyglądu i efektywności działania. Rozeznanie takie sprowadza się do tego, aby nie powtarzać błędów innych projektantów, które mogłyby źle wpływać na wygląd i działanie serwisu. Po takim przeglądzie można następnie zastosować u siebie przydatne opcje i nowinki podejrzane z danych stron internetowych. Biblioteka PWSZ w Jarosławiu (http://www.biblioteka.pwszjar.edu.pl) Strona jest poświęcona bibliotece Państwowej Wyższej Szkoły Zawodowej w Jarosławiu, na której możemy znaleźć informacje na temat tej biblioteki, jak i również wyszukiwać dostępne książki i czasopisma. Strona główna zbudowana w stonowanych kolorach, co daje przejrzystość i czytelność umieszczonej treści. Główne menu zostało umieszczone poziomo u samej góry witryny nad banerem z cytatem Matki Teresy z Kalkuty, obok z lewej strony znajduje się logo biblioteki, a pod nim drugie menu z informacjami i kontaktem dla użytkowników. Wadą tej strony jest to, że wyszukiwanie uruchamia się w nowym oknie o bardzo prostym wyglądzie i innych kolorach nie pasujących do strony głównej. Natomiast zaletą jest rozbudowane wyszukiwanie, które posiada możliwość szukania według tytułu, autora, hasła przedmiotowego, instytutu, roku wydania, wydawcy, opisu zawartości, uwag oraz sygnatur, prawie wszędzie istnieje możliwość podejrzenia indeksu zawartości przed szukaniem. Po wyszukaniu wyświetlana jest lista poszczególnych rekordów z mało przejrzystym i trudno czytelnym opisem. Dostępne jest również logowanie, po którym prawdopodobnie możemy zarezerwować, bądź wypożyczyć literaturę znajdującą się w wypożyczalni. Biblioteka Uniwersytetu Rzeszowskiego (http://bur.univ.rzeszow.pl) Witryna biblioteki Uniwersytetu Rzeszowskiego posiada czytelny i przejrzysty wygląd w stonowanych barwach szarości. Za pomocą miłego dla oka menu umieszczonego poziomo tuż pod górnym logo możemy odnaleźć nowości związane z biblioteką, jak i informacje potrzebne dla użytkowników. Po przejściu do katalogu z zasobami użytkownik zostaje przekierowany do Kompleksowego Systemu Zarządzania 4 Biblioteką PROLIB, do którego trzeba się zalogować. Gość ma tylko możliwość przeszukiwania zbioru w sposób prosty lub zaawansowany, po wyszukaniu wyświetlana jest uporządkowana lista z tytułem, autorem, wydawnictwem i rokiem wydania dokumentu, po wejściu w dany rekord wyświetlony zostaje dokładny opis z informacją o dostępności dokumentu. Uprawniony użytkownik jest w stanie zarezerwować interesującą go publikacje, by następnie w późniejszym terminie ją odebrać z wypożyczalni. Biblioteka Uniwersytecka we Wrocławiu (http://www.bu.uni.wroc.pl) Serwis biblioteki Uniwersyteckiej we Wrocławiu jest w pełni rozbudowany i podzielony na kilka kategorii zbiorów takich jak: katalog online, biblioteka cyfrowa, e-wydawnictwo, baza publikacji, usługi online, sklep BUWr i produkty publiczne, w których możemy znaleźć różne formy publikacji poczynając od papierowych po cyfrowe. Strona jest zbudowana w prosty sposób, z nieodpowiednio dobraną kolorystyką tła i czcionek, co jest bardzo rażące, podobnie i menu o różnych podświetleniach i kolorach, po którym ciężko się poruszać, ponieważ jest go bardzo dużo. Niezaprzeczalną zaletą jest możliwość zarejestrowania się online każdego użytkownika oraz przedstawienie jej w trzech językach. Niestety wyszukiwanie jest tylko w języku polskim i angielskim, lecz o czterech różnych metodach szukania od prostego do zaawansowanego. Po wyszukaniu pojawia się lista wraz z liczbą dostępnych publikacji do wypożyczenia. Wchodząc w dany rekord z listy pojawia się szczegółowy opis starannie podzielony i przejrzysty. The Library of Congress (http://www.loc.gov) The Library of Congress to największa i najstarsza biblioteka na świecie, w jej zbiorach znajdują się miliony książek, nagrań, fotografii, map i rękopisów. Serwis poświęcony tej bibliotece jest zbudowany tylko w języku angielskim w prosty sposób, co czyni stronę czytelną i przejrzystą. Całość umieszczona na białym tle z dwoma menu, główne znajduje się poziomo nad górnym banerem, a pomocnicze starannie podzielone na różne kategorie z informacjami i kontaktami znajduje się w pasku nawigacyjnym z lewej strony. Wadą jest odświeżanie całości strony wraz z menu oraz możliwość jedynie przeszukiwania zawartości biblioteki. Dostępne wyszukiwanie to proste i zaawansowane, po którym pojawia się lista czytelnych rekordów z krótkim opisem danej pozycji. 5 3. Technologia wykonania serwisu WWW Obecnie mamy wiele różnorodnych technologii z ogromem opcji do wykonywania poszczególnych części serwisu internetowego, można je więc dobierać według zaawansowania kreatora, jego własnych potrzeb oraz możliwości stosowania danej technologii. 3.1. Wybór technologii Najbardziej popularnymi dostępnymi technologiami wykorzystanymi do budowy modułu zarządzania bibliograficzną bazą danych są: HTML (ang. HyperText Markup Language) - język opisujący informacje hipertekstowe i znaczniki, PHP (ang. PHP: Hypertext Preprocessor) - język programowania obiektowego i skryptowego do tworzenia dynamicznych stron internetowych, CSS (ang. Cascading Style Sheets) - język służący do opisu formy prezentowania witryny, SQL (ang. Structured Query Language) - strukturalny język zapytań do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych. 3.1.1. Język HTML Język HTML (ang. HyperText Markup Language) powstał w oparciu o język SGML (ang. Standard Generalized Markup Language) służącym do wymiany danych. Odziedziczył on jego najistotniejszą cechę, jest językiem opisu strony a nie wyglądu poszczególnych jej elementów. Idea polega na tym, że większość dokumentów posiada pewne cechy wspólne, takie jak nagłówki, akapity czy listy. HTML jest uniwersalnym językiem programowania składającym się ze znaczników i służącym do tworzenia stron internetowych, pozwalającym na: formatowanie tekstu, kreślenie linii, dołączanie grafiki, dołączanie dźwięków i filmów, zachowywanie całości w zbiorach tekstowych [7]. 6 Strony w HTML-u to zwykłe pliki tekstowe w formacie ASCII, co oznacza, że nie zawierają one żadnych informacji właściwych dla konkretnej platformy systemowej czy programowej. Dzięki czemu są zrozumiałe dla większości komputerów i mogą być odczytywane praktycznie przez każdy edytor tekstowy oraz odpowiednią przeglądarkę. Język HTML został utworzony przez Tima Berners-Lee w 1989 roku, który pracował w CERN jako konsultant do spraw oprogramowania. Pierwotnie składnia opierała się na kilkunastu znacznikach umożliwiających wyświetlanie tekstu wraz z odsyłaczami (hiperłączami) do innych tekstów. Rewolucyjność pomysłu polegała na tym, że użytkownik przechodzący do innego tekstu w ogóle nie musiał wiedzieć, gdzie fizycznie znajduje się interesujący go tekst. Była to tak zwana zerowa wersja HTML. Kolejne wersje powstawały ze względu na potrzeby dodawania do tekstu tabel, grafik i plików multimedialnych. Zajęły się tym firmy produkujące przeglądarki internetowe, bez porozumień miedzy sobą co doprowadziło do niekompatybilności wersji HTML-a w przeglądarkach różnych firm. Sytuacja wymagała stworzenia organizacji W3C (World Wide Web Consortium), która ustala wspólne standardy HTML-a oraz inne sprawy związane z pisaniem stron WWW. Kolejna, tym razem oficjalna wersja HTML-a to, HTML 2, która odniosła sukces pod względem zgodności z ważniejszymi przeglądarkami takimi jak Internet Explorer i Netscape. Następcami były wersje HTML 3.2 oraz HTML 4.01 wydzielająca zarządzanie wyglądem strony do kaskadowych arkuszy styli CSS. HTML 4.01 to tylko częściowy sukces w dziedzinie standaryzacji, ponieważ wsparcie dla CSS w większości przeglądarek było przez wiele lat niepełne i zawierało wiele mniejszych i większych niekompatybilności stających się z czasem coraz mniejszymi. Obecnie pisanie stron jest łatwiejsze niż w czasach wojen edytorowych, ponieważ HTML jest już poprawnie obsługiwany przez większość przeglądarek. Początkiem 2000 roku pojawiła się specyfikacja XHTML 1.0 (eXtensible Hypertext Mark-up Language) – oznaczona także jako xHTML, Xhtml, XML/HTML lub jako HTML 5.0 i jest oficjalnym następcą języka HTML 4.0. XHTML to hybryda językowa pozyskana z języka XML, posiadająca wiele cech języka HTML [11]. 3.1.2. CSS – Kaskadowe arkusze stylów Kaskadowe arkusze stylów CSS (ang. Cascading Style Sheets) to lista wytycznych ustalających sposób wyświetlania danego elementu (lub elementów) języka 7 HTML, XHTML lub XML przez przeglądarkę internetową. Można opisać w ten sposób wszystkie pojęcia związane z prezentacją stron WWW, co daje większe możliwości niż oferuje sam (X)HTML. Za pomocą stylów możemy kontrolować między innymi takie elementy jak: kolor, rozmiar i rodzinę czcionek, grafikę, kolor i rozmieszczenie tła, marginesy, odstęp między wierszami, wygląd odsyłaczy, pozycja danego elementu względem innych elementów bądź okna przeglądarki. CSS stworzono, aby odseparować struktury dokumentu od formy jego prezentacji, co zwiększa dostępności strony, zmniejsza zawiłość i ułatwia wprowadzanie zmian wyglądu w wielu dokumentach na raz bez ingerowanie w kod (X)HTML, ponieważ arkusze dla wielu stron mogą być wspólne. Oficjalne wersje kaskadowych arkuszy CSS to CSS1 i CSS2, które są interpretowane w dużej mierze przez takie przeglądarki jak Konqueror, Galeon, Safari, Mozilla, Mozilla Firefox, Internet Explorer 4-7 oraz Opera 5-8. Aktualnie trwają prace nad kolejną wersją styli zwanych CSS3. 3.1.3. Język PHP PHP, czyli „PHP: Hypertext Preprocessor”, to język programowania wykorzystywany przez programistów WWW, pozwalający na szybkie tworzenie dynamicznych aplikacji WWW. Język ten przypomina C, Perla oraz Jave i składniowo jest osadzony w HTML. Preprocesor PHP wykonuje cały kod zawarty pomiędzy znacznikami <?php i ?> umieszczonymi w kodzie HTML i zwraca wynik w postaci tekstu. Kod ten jest wykonywany na serwerze WWW a nie na kliencie, oznacza to, że przeglądarka nie wie, że do stworzenia strony był używany PHP. Otrzymuje ona identyczny kod jak w przypadku zwykłych stron HTML. PHP jest pełnowartościowym językiem programowania z wszystkimi potrzebnymi funkcjami. Współpracuje również z wieloma systemami baz danych, co jest obecnie bardzo znaczące i niewiarygodnie łatwe przy tworzeniu aplikacji WWW korzystających z informacji zapisanych w bazie danych. Umożliwia on otwieranie gniazd sieciowych i podłączanie się do innych 8 protokołów TCP/IP. Również pozwala na dostęp do sieciowych usług takich jak IMAP, POP3, NNTP oraz TTP. PHP używany jest w wielu konfiguracjach serwerów, ponieważ jest rozprowadzany głównie w postaci kodu źródłowego, co pozwala na skompilowanie go na wielu platformach, takich jak: Linux, FreeBSD, Windows oraz binarnie dla Win32. Działać może jako program CGI, moduł Apache lub rozszerzenie ISAPI dzięki czemu może być uruchomiony praktycznie na każdym serwerze WWW, od Apache na Linuksie do IIS na Windows NT [6]. 3.1.4. SQL - Strukturalny język zapytań Język SQL (ang. Structured Query Language - strukturalny język zapytań) jest językiem deklaratywnym wykorzystywanym w większości relacyjnych systemów baz danych. Został opracowany przez firmę IBM w latach siedemdziesiątych XX w. i stanowi standard w komunikacji z serwerami relacyjnych baz danych. Pierwszą firmą, która komercyjnie włączyła SQL-a do swojego produktu, był Oracle. Następnie zaczęły go wprowadzać systemy bazodanowe, takie jak: Caché, DATAllegro, DB2, Firebird, First SQL, Greenplum, HSQL, Ingres, Informix, InterBase SQL, MaxDB, znana pod nazwą SAP DB, Microsoft Access, Microsoft Jet, Microsoft SQL Server, Mimer SQL, MySQL, mSQL, Neteeza, OpenLink Virtuoso, Oracle Rdb, PostgreSQL, Pervasive, SQL/DS., SQLite, Sybase (Sybase Adaptive Server Enterprise, Sybase SQL Anywhere, Sybase IQ), Teradata, spowodowało to wprowadzenie modyfikacji pierwotnego języka [1]. Utrzymanie jednolitości SQL-a doprowadziło w 1996 do wprowadzenia standardu wspieranego przez ISO (Międzynarodową Organizację Normalizacyjną) i jej członka, ANSI (Amerykański Narodowy Instytut Normalizacji). Obowiązującym obecnie standardem jest SQL92, który mógł jednocześnie obejmować nowe elementy nie ujęte we wcześniejszych wersjach. Rok 2003 przyniósł nowy standard języka SQL, nazwanego SQL:2003. Jest on w głównym stopniu poprawionym językiem SQL:1999, z wyjątkiem części SQL/XML oraz kilku dodatkowych właściwości [4]. Użycie SQL polega na wysyłaniu do bazy danych zapytań, które można podzielić na trzy główne podzbiory: DDL (ang. Data Definition Language) – Język Definicji Danych, DCL (ang. Data Control Language) – Język Kontroli nad Danymi, DML (ang. Manipulation Language) – Język Manipulacji Danymi. 9 Rysunek 1. Podzbiory zapytań języka SQL DDL (ang. Data Definition Language), umożliwia operacje na strukturach, w których dane są przechowywane czyli na przykład dodawanie, zmienianie i kasowanie tabel lub baz. Najistotniejsze polecenia należące do tej grupy to: CREATE – utworzenie struktury (bazy, tabeli, indeksu, itp.), DROP – całkowite usunięcie struktury, ALTER – zmiana struktury (dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli). DCL (ang. Data Control Language) służy nadawaniu uprawnień do obiektów bazodanowych. Najważniejsze polecenia należące do tej grupy to: GRANT – przyznanie wszystkich praw do tabeli EMP z opcją pozwalającą nadawać prawa do tego obiektu (tabela EMP). REVOKE – odebranie wszystkich praw do tabeli użytkownikowi nadaną przez polecenie GRANT. DML (ang. Data Manipulation Language) służy do wykonywania operacji na danych, do ich umieszczania w bazie, kasowania, przeglądania i zmieniania. Najważniejsze polecenia tego zbioru to: SELECT – pobranie z bazy danych, INSERT – umieszczenie danych w bazie, UPDATE – zmiana danych, DELETE – usunięcie danych z bazy [3]. 10 3.2. Wykorzystane programy Projektowanie modułu zarządzania bibliograficzną bazą danych w systemie RSPN rozpoczęto od wyboru odpowiedniego oprogramowania dostępnego na rynku w dość szerokim gronie. Kierowano się przy tym względami finansowymi, jak i ich możliwościami technicznymi. Najodpowiedniejszymi programami do budowy niniejszego serwisu internetowego wydały się być: Macromedia Dreamweaver 8 – edytor HTML, phpMyAdmin 2.9.1.1 – narzędzie do zarządzania bazą danych MySQL. 3.2.1. Edytor Macromedia Dreamwaver 8 Macromedia Dreamweaver 8 to profesjonalne narzędzie do łatwego zarządzania i projektowania prostych serwisów, jak i zaawansowanych aplikacji internetowych wspierających najnowsze technologie oparte na standardach. Dreamweaver 8 należy do ścisłej czołówki edytorów, obecnie jest on jednym z najpopularniejszych programów tego typu. Pozwala on na budowę serwisu w trybie WYSIWYG (ang. What You See Is What You Get, co oznacza dosłownie „To co widzisz jest tym co otrzymasz”) oraz w trybie widoku składni z opcją kolorowania i autouzupełniania kodu. Rysunek 2. Macromedia Dreamweaver 8 – index.html 11 Macromedia Dreamweaver 8 przy tworzeniu projektu wspiera technologie HTML, XML, ColdFusion, PHP5, ASP, ASP.NET i JSP, posiada również kompleksową kontrolę nad CSS i precyzję pracy z danymi. Zaopatrzony został w kilka przydatnych narzędzi takich jak Zoom do uzyskiwania lepszej kontroli nad wyglądem projektu, Code Collapse do ukrywania niepotrzebnego w danej chwili kodu oraz dodawanie przycisków w formacie Flash i filmów Flash Video. Posiada również możliwość obsługi zewnętrznych pluginów. Większość tych funkcji można realizować przy pomocy kilku kliknięć myszą, co przyśpiesza pracę z programem [5]. 3.2.2. Program phpMyAdmin 2.9.1.1 PhpMyAdmin jest narzędziem napisanym w języku PHP, służącym do prostego zarządzania bazą danych MySQL i funkcjonującego w ramach serwerów WWW. Oprogramowanie dostarczane jest na licencji GNU (ang. General Public License czyli wolnego oprogramowania) i zapewnia realizację wszystkich podstawowych funkcji, między innymi: tworzenie i usuwanie baz danych, dodawanie (także z przygotowanego wcześnie pliku) i kasowanie relacji, edycję ich struktury i zawartości oraz administrację bazy. Za pośrednictwem PhpMyAdmin można zarządzać całym serwerem MySQL, jak również pojedynczą bazą danych. Wszystkie operacje mogą być realizowane przy pomocy przeglądarki internetowej, w graficznym środowisku i bez konieczności pracy z domyślnym interfejsem tekstowym. Aktualne wersje phpMyAdmin obsługują takie funkcje jak: tworzenie i usuwanie baz danych, tworzenie, kopiowanie, usuwanie i modyfikacja tabeli, zarządzanie tabelami, usuwanie, edycja i dodawanie pól, zarządzanie indeksami pól, sprawdzanie spójności powiązań, wykonywanie instrukcji SQL, tworzenie i przywracanie kopii tabel, wczytywanie tekstu z plików do tabeli, eksportowanie danych do formatów CSV, XML i Latex, tworzenie planu bazy w pliku PDF, 12 administracja wieloma serwerami, w tym zarządzanie użytkownikami i uprawnieniami, przekształcanie danych do dowolnego formatu, np. BLOB jako obrazek, wsparcie dla 48 różnych języków, w tym języka polskiego [12]. Rysunek 3. Program phpMyAdmin z bazą danych modułu bibliograficznego 13 4. Prezentacja projektu W tym rozdziale zostanie przedstawiony szczegółowy opis możliwości stworzonego projektu oraz prezentacja wybranych elementów modułu zarządzania bibliograficzną bazą danych w systemie RSPN. Omówione zostaną również zagadnienia obejmujące poszczególne części serwisu poczynając od strony ogólnodostępnej przez użytkownika po administratora. 4.1. Założenia realizacji projektu Realizacja projektu sprowadza się do stworzenia dynamicznego serwisu internetowego, współpracującego z bazą danych. Na podstawie tego zostały sprawdzone witryny internetowe o podobnej koncepcji, z których zostały wyciągnięte wnioski potrzebne do stworzenia przypadków użycia przez użytkowników. W niniejszym projekcie wyróżnione zostały dwie grupy aktorów: użytkownik serwisu i administrator. Poniższy rysunek przedstawia diagram UML przypadków użycia dla serwisu zarządzającego bibliografią. blokowanie i odblokowywanie użytkowników logowanie nadawanie uprawnień użytkownikom rejestracja w serwisie usuwanie użytkowników administrator użytkownik zmiana danych użytkownika edycja strony informacyjnej i stylów wyszukiwanie książek potwierdzanie oddania książki przeglądanie książek dodawanie książek wypożyczanie książek edytowanie książek usuwanie książek Rysunek 4. Diagram przypadków użycia serwisu 14 Projekt wymagał podzielenia serwisu na trzy grupy dostępu: ogólnego (dla wszystkich użytkowników Internetu) z możliwościami wyszukiwania i przeglądania książek oraz logowania i zarejestrowania się, użytkownika zarejestrowanego w bazie (dostęp nowo zarejestrowanego użytkownika do wypożyczania książek dopiero po sprawdzeniu jego danych i odblokowaniu przez administratora portalu), który może zmieniać swoje dane i wypożyczać książki, administratora sprawującego pieczę nad: o blokowaniem i odblokowywaniem użytkowników, o nadawaniem im uprawnień dostępu do portalu oraz w razie potrzeby usuwaniem użytkowników z bazy, o edytowaniem strony głównej użytkownika i jego stylów, o potwierdzaniem zwróconych książek, o dodawaniem, edytowaniem i usuwaniem książek. 4.2. Założenia bazodanowe Wymaganiem projektowym serwisu jest budowa bazy danych w wybranym wcześniej programie phpMyAdmin (omówionym w rozdziale trzecim). Definicje tabel wykorzystanych w projekcie zostały przedstawione poniżej. Pole IdKlienta Imie Nazwisko Ulica NrUlicy KodPocztowy Miejscowosc LOCK Login Haslo access Email Typ smallint(5) varchar(50) varchar(50) varchar(50) varchar(16) varchar(16) varchar(50) smallint(2) varchar(20) varchar(20) smallint(2) varchar(60) Tabela 1. Null No No No No No No No No No No No No Klucz Główny Domyślnie Extra NULL auto_increment Struktura tabeli „klienci” 15 W tabeli widocznej powyżej zostają umieszczone wszystkie dane klientów, którzy zarejestrowali się w serwisie bibliograficznym. Pole IdKsiazki Autor Tytul IloscStron Wydawnictwo Rok iloscKsiazek zdjecie www Typ smallint(5) varchar(250) varchar(250) smallint(4) varchar(100) smallint(4) smallint(4) varchar(25) varchar(60) Tabela 2. Null No No No No No No No No No Klucz Główny Domyślnie Extra NULL auto_increment Struktura tabeli „ksiazki” Do niniejszej tabeli są zapisane książki i nazwy zdjęć okładek, jak również liczba dostępnej literatury do wypożyczenia przez użytkowników. Pole IdZamowienia IdKsiazki IdKlienta status dataWyp dataOdd Typ smallint(5) smallint(5) smallint(5) smallint(2) date date Tabela 3. Null No No No No No No Klucz Główny Domyślnie Extra NULL auto_increment Struktura tabeli „pozycje_zamowione” Natomiast w tej tabeli umieszczane są wypożyczenia dokonane przez użytkowników wraz z datą wypożyczenia i terminem, do którego ma być zwrócona dana pozycja. Pole IdKsiazki Recenzja Data Typ smallint(5) text date Tabela 4. Null No No No Klucz Główny Domyślnie Extra NULL auto_increment Struktura tabeli „recenzje_ksiazek” 16 Tabela 4 zawiera recenzje książek umieszczonych w tabeli 2. Pole IdTextu uzytkownicy Typ smallint(5) text Tabela 5. Null No No Klucz Główny Domyślnie Extra NULL auto_increment Struktura tabeli „uzytkownik” W tabeli tej zapisywane są informacje umieszczane przez administratora, które następnie są wyświetlane na stronie głównej użytkownika zalogowanego. Projekt wykorzystuje tabele typu „InnoDB” do obsługi transakcji. Jest to bardzo przydatne rozwiązanie wykorzystywane w momentach, gdy skrypt zawiera kilka zapytań do bazy, wówczas gdy jedno z nich zakończy się niepowodzeniem, wszystkie zmiany wprowadzone przez wcześniejsze zapytania zostaną cofnięte do stanu wyjściowego. W tabelach również zostały zdefiniowane typy zmiennych MySQL określające jakie dane mogą być wprowadzane do poszczególnych pól: SMALLINT – pole liczby całkowitej, które może przyjąć wartości dla UNSIGNED od 0 do 65 535 lub -32 768 do 32 768 (bez UNSIGNED), VARCHAR (x) – pole znakowe o zmiennej długości x z zakresu od 1 do 256 znaków, TEXT – dane tekstowe o rozmiarze nie przekraczającym 65 535 bajtów, DATE – data wyświetlana w formacie rok-miesiąc-dzień, np: 2008-02-28 [9]. 4.3. Ogólnodostępna część serwisu Podrozdział ten omawia część ogólnodostępnego serwisu wraz z możliwościami i wyglądem, który większej części został udostępniony przez „Research Group on Rough Sets and Petri Nets”. 4.3.1. Strona główna modułu bibliograficznego Użytkownik zainteresowany literaturą znajdującą się w systemie RSPN wpisuje adres URL http://www.student-ii.pwszjar.edu.pl/~czuba_norbert/rsp/ w dowolnej 17 przeglądarce internetowej, po czym otworzona zostaje strona główna serwisu o wyglądzie widocznym poniżej. Rysunek 5. Strona główna serwisu bibliograficznego Wygląd serwisu ogólnodostępnego, jak i pozostałego, składa się z czterech podstawowych części: logo – jest to baner z nazwą i tematem witryny, znajdujący się w górnej części identycznie, jak i na pozostałych podstronach, menu – zrobione we Flash’u i umieszczone z lewej strony witryny starannie podzielone na części dla lepszego poruszania się po serwisie, treść – znajduje się w centralnej części strony i wyświetlane są tutaj poszczególne treści i formularze wybrane z menu, początkowo po wejściu do serwisu pojawia się strona główna (home) z informacjami o temacie i twórcy projektu, stopka – obszar znajdujący się w dolnej części, informujący o twórcy i zastrzeżonych prawach do witryny. 18 4.3.2. Wyszukiwanie książek Serwis umożliwia wyszukiwanie książek dwoma metodami: prostą poprzez wybór pozycji z listy oraz przez wyszukiwarkę książek. List of books – wyświetla całą zawartość bazy książek i umożliwia wybór konkretnego rekordu. Rysunek 6. Lista książek z menu „List of books” Search books - wybranie z menu tej opcji spowoduje otworzenie w centralnej części serwisu wyszukiwarki. Rysunek 7. Wyszukiwarka książek z menu „Search books” 19 Aby rozpocząć wyszukiwanie książek należy wybrać jedną z czterech metod szukania (Title, Author, Publisher, Year of publication) oraz wpisanie kluczowego słowa, a następnie należy kliknąć na przycisk Search. Jeśli wszystkie parametry były podane prawidłowo, zostaje wyświetlona lista książek, inaczej zostaje wyświetlony odpowiedni komunikat o niepodaniu parametru wyszukiwania lub nie odnalezieniu książki. 4.3.3. Opis książki Serwis umożliwia podgląd opisu oraz zdjęcia okładki książki, odbywa się to po wcześniejszym jej wyszukaniu i kliknięciu w danym rekordzie na jej tytuł. Rysunek 8. Opis książki – „The description of the book” 20 Opis książki zawiera wydzielone obszary dla: tytułu widocznego w jaśniejszym górnym pasku, zdjęcia okładki, informacji związanych z autorem, publikacją i adresem URL wydawnictwa oraz widocznej poniżej recenzji w języku, w którym dana publikacja jest wydana. 4.3.4. Zakładanie konta – „Registration” Osoby zainteresowane wypożyczaniem literatury muszą utworzyć swoje konto poprzez kliknięcie na Registration dostępnym w menu lub logowaniu. Po czym zostaje załadowany odpowiedni formularz w centralnej części witryny. Rysunek 9. Rejestracja użytkowników – “Registration” Użytkownik rejestrujący się do serwisu musi wypełnić wszystkie zdefiniowane w formularzu pola. Po kliknięciu na przycisk Register zostają automatycznie sprawdzone składnie pola loginu i adresu e-mail oraz czy nie istnieją już w bazie danych. W przypadku nie wypełnieniu całego formularza, bądź wprowadzenia nieprawidłowych danych system automatycznie wyświetla odpowiedni błąd do 21 zaistniałej sytuacji. Natomiast, jeśli wszystko odbyło się prawidłowo, formularz automatycznie zostaje przekazany do zatwierdzenia przez administratora systemu. Użytkownik może się zalogować dopiero wtedy, gdy dostanie wiadomość e-mail od administratora o aktywacji konta. 4.3.5. Logowanie użytkowników Witryna dysponuje formularzem logowania dostępnym wyłącznie dla aktywowanych użytkowników przez administratora, jak i dla niego samego. Rysunek 10. Logowanie użytkownika i administratora – “Login” Logowanie odbywa się na zasadzie podania loginu i hasła istniejącego w bazie serwisu. Po kliknięciu na przycisk Login sprawdzane są podane dane oraz czy użytkownik nie jest zablokowany. Jeżeli wszystko się zgadza, użytkownik jest przekierowany do uprawnionej podstrony, inaczej zostaje wyświetlany odpowiedni komunikat o zablokowaniu bądź niepodaniu prawidłowych danych. Rysunek 11. Błąd logowania 22 4.3.6. Przypomnienie hasła Przypomnienie hasła odbywa się na zasadzie wpisania do formularza (widocznego poniżej) adresu e-mail podanego podczas rejestracji. Kliknięcie na przycisk Send powoduje sprawdzenie czy adres się zgadza i czy istnieje w bazie, jeżeli wszystko jest w porządku, zostaje wysłana automatyczna wiadomość zawierająca login i hasło, natomiast, jeśli adres się nie zgadza, zostaje wyświetlony odpowiedni komunikat o błędzie. Rysunek 12. Przypomnienie hasła z menu “Forgot password” 4.3.7. Kontakt z administratorem Moduł bibliograficzny jest wyposażony w kontakt z administratorem. Strona kontaktowa zawiera informacje związane z instytucją, której własnością jest ten system. Po kliknięciu na widoczny adres poczty elektronicznej administratora, automatycznie ładowany jest formularz wysyłania wiadomości. Rysunek 13 przedstawia wygląd formularza wysyłania wiadomości e-mail. 23 Rysunek 13. Kontakt z administratorem – „Contact” Wiadomość można wysłać jedynie po wypełnieniu pól formularza oznaczonych gwiazdką i wciśnięciu przycisku Send. Jeżeli wcześniej wymienione pola nie zostaną poprawnie wypełnione, wiadomość nie zostanie wysłana i pojawi się komunikat informujący o błędzie. 4.4. Moduł użytkownika Zaprojektowany serwis wyposażony jest w panel użytkownika, który jest dostępny dla klientów zarejestrowanych w bazie danych i zaakceptowanych przez osobę zarządzającą systemem bibliograficznym. Aplikacja użytkownika zawiera następujące podstrony: wypożyczone książki, wypożycz książkę, zmiana danych użytkownika. Poniższy rysunek przedstawia wygląd strony głównej użytkowników. 24 Rysunek 14. Panel użytkownika serwisu W ramce na stronie głównej użytkownika zalogowanego posiadającego uprawnienie „1”, ładowana jest automatycznie strona User’s home page. Znajduje się tam informacja kto jest zalogowany oraz komunikat od administratora wyświetlany z bazy danych 4.4.1. Wypożyczone książki Po wybraniu z menu „Wypożyczone książki” (ang. Borrowed books) pojawia się strona Books borrowed at present, na której wyświetlana jest tabela z wypożyczonymi aktualnie książkami przez użytkownika w tym momencie zalogowanego. Również zawiera ona informacje do kiedy należy zwrócić książkę do biblioteki. 25 Rysunek 15. Panel użytkownika serwisu – „Borrowed books” 4.4.2. Wypożycz książkę Funkcja wypożyczenia książki jest zrealizowana w oparciu o metody wyszukiwania znajdujące się na stronie ogólnodostępnej serwisu (patrz rysunek 6 i 7). Dodatkowo dostępny jest przycisk Borrow, po kliknięciu na niego przy odpowiedniej pozycji książkowej system automatycznie przechodzi do podstrony, na której znajduje się tabela z informacjami o wybranej książce przez użytkownika. aby dokonać wypożyczenia należy powtórzyć funkcję Borrow. Rysunek 16. Panel użytkownika serwisu – potwierdzenie wypożyczenia 26 Jeżeli osoba nie chce zatwierdzić wypożyczenia, może powrócić do metody wyszukiwania klikając na link Method of searching. 4.4.3. Zmiana danych użytkownika Na podstronie Change the data znajduje się formularz, dzięki któremu użytkownik może zmienić niektóre dane podane podczas rejestracji do serwisu. Login jest zablokowany przed zmianą z powodu pełnienia ważnej funkcji logowania do systemu. Rysunek 17. Panel użytkownika serwisu – „Change the data” 4.5. Moduł administracyjny Moduł administracyjny przeznaczony jest wyłącznie dla osoby zarządzającej systemem bibliograficznym. Wygląd strony głównej, jak i podstron zbliżony jest do wyglądu części dla użytkowników zarejestrowanych w systemie. 4.5.1. Administracja nad użytkownikami Strona Users wyposażona jest w funkcje, za pomocą których administrator kontroluje użytkowników. 27 Rysunek 18. Moduł administracyjny – „Users” Powyższy rysunek przedstawia tabelę, w której znajdują się dane użytkowników oraz funkcje: Block – funkcja, za pomocą której osoba zarządzająca systemem może zablokować użytkownika np. z powodu nieoddania książki w terminie. Unblock – administrator korzystając z tej funkcji akceptuje nowo zarejestrowanego użytkownika, którego dane wyświetlone są na czerwono. Również może odblokować osoby, które wcześniej zablokował z określonych przyczyn. Nadawanie uprawnień – w skład tej funkcji wchodzą: Access 1, Access 1, Access 1. Podfunkcje Access spełniają zadanie realizują dostęp do poszczególnych modułów systemu (Access 1 – prawa użytkownik, Access 2 – prawa superużytkownika, Access 3 – prawa administratora systemu). Remove – funkcja usuwająca użytkowników. 4.5.2. Edycja stylów użytkownika Za pomocą strony Edition of the user’s styles, na której znajduje się formularz edycyjny pliku style.css można zmieniać elementy wyglądu witryny użytkownika. Klikając na przycisk Change możliwe jest zapisanie zmian w pliku, po czym automatycznie wprowadzone są zmiany graficzne. Wymogiem jest, aby plik style.css posiadał prawa dostępu równe 777, ponieważ wówczas można wprowadzać zmiany z poziomu serwera, na którym znajduje się aplikacja. Podstrona również zawiera pole tekstowe, w którym wyświetlana jest informacja jaką administrator przekazuje wszystkim zalogowanym użytkownikom w systemie. Dostępna też jest możliwość edycji komunikatu używając tego samego pola tekstowego, zmiana jest zapisywana i przechowywana w bazie danych. 28 Rysunek 19. Moduł administracyjny – „User’s styles” 4.5.3. Zapytanie MySQL W celu sprawdzenia zawartości tabel w bazie danych systemu administrator może skorzystać z formularza Enquiry MySQL, w którym wpisuje polecenie w języku SQL, następnie wciskając przycisk Show wyświetla na stronie wynik wcześniej wpisanego polecenia [15]. Rysunek 20. Moduł administracyjny – „Enquiry MySQL” 29 4.5.4. Dodawanie, edytowanie i usuwanie książek Dodawanie, edycja i usuwanie są to podstawowe funkcje, bez których system byłby bezużyteczny. Funkcja dodawania Add book jest zrealizowana za pomocą formularza, w którym wpisywane są dane określonej książki jaka ma zostać dodana do biblioteki. Specyficznym polem jest dodawanie zdjęcia okładki książki do folderu graf z pełnymi prawami dostępu 777, należy jednak pamiętać, że system obsługuje dwa formaty graficzne JPG i GIF. Rysunek 21. Moduł administracyjny – „Add book” 30 Drugą funkcją jest edycja Edition of book zapisanej w bazie książki, zrealizowana w podobny sposób jak dodawanie. Modyfikacja informacji zapisanych w bazie, które dotyczą określonej książki, zrealizowane są za pomocą polecenia Update języka SQL. Trzecią funkcją jest usuwanie książek, dzięki któremu można całkowicie wykasować wybraną książkę ze zbioru bibliotecznego. 4.5.5. Wypożyczone książki Na stronie wypożyczone książki Books borrowed at present, znajduje się tabela, za pomocą której administrator ma możliwość sprawdzania jakie książki zostały wypożyczone z biblioteki i przez kogo oraz znajdują się tam dwa pola (Block, Unblock) opisane w podpunkcie 4.5.1. Przy każdym wypożyczeniu dodatkowo znajdują się linki dzięki których można przejść do podstron, gdzie jest możliwość edycji daty oddania oraz usunięcia z bazy wpisu o wypożyczeniu danej książki przez konkretnego użytkownika. Rysunek 22. Moduł administracyjny – „Books borrowed at present” 4.6. Implementacja projektu Moduł bibliograficzny systemu RSPN został zaimplementowany przy użyciu języków HTML i PHP. Strony informacyjne oraz wygląd serwisu powstały dzięki wykorzystaniu języka HTML i kaskadowych arkuszy stylów CSS, natomiast funkcje wykonywalne zostały zaimplementowane za pomocą języka skryptowego PHP. Kod źródłowy systemu składa się z następujących plików: 31 1. Ogólnodostępna część serwisu: style.css dol.html glowna.html index.html kontakt.html lewy.html linki.html logowanie.html mail.html przypomnienie.html rejestracja.html szukaj.html top.html funkcje.php lista.php logowanie.php mail.php opis.php podglad.php przypomnij.php rejestracja.php szukaj.php uzytkownicy.dat 2. Panel użytkownika serwisu: style.css dol.html glowna.html index.html lewy.html linki.html 32 top.html lista.php opis.php rez_szuk.php szukaj.php uzytkownik.php wyloguj.php wypozycz.php wypozyczmenu.php wypozyczOk.php wypozyczone.php zmien.php zmiene.php 3. Część administracyjna serwisu: style.css dol.html index.html lewy.html linki.html top.html access.php admin.php czyoddac.php czyusunac.php czyzmienic.php dodaj.php dodajDane.php edycja.php edycjamenu.php edytuj.php lista.php 33 MySQL.php oddaj.php opis.php pliki.php szukaj.php szukajks.php usun.php uzytkownicy.php wyloguj.php wynikSQL.php wypozyczenia.php zmien.php Wyżej wymienione pliki zawierają bardzo dużą ilość kodu źródłowego, więc w kolejnych podrozdziałach zostaną zaprezentowane najważniejsze fragmenty funkcji wykonywalnych. 4.6.1. Połączenie z bazą danych Program 1 przedstawia zawartość pliku funkcje.php, za pomocą którego jest realizowane połączenie z bazą danych. <?php function lacz_bd() { $wynik = mysql_connect('localhost','czuba_norbert','15028'); mysql_select_db ("czuba_norbert") or die ("You cannot choose the database"); if(!$wynik) echo"('The connection with the server failed') mysql_close($wynik)"; else return $wynik;} ?> Program 1. Połączenie z bazą danych „czuba_norbert” Zastosowana w projekcie baza danych znajduje się na tym samym serwerze, na którym znajduje się zainstalowany system, dzięki czemu możliwa jest jego instalacja w dowolnym środowisku wyposażonym w system bazodanowy. Przy umieszczeniu 34 projektu w nowym miejscu wymagana jest tylko zmiana zawartości jednego pliku. Funkcje zastosowane w projekcie korzystające z bazy danych odwołują się do wyżej wymienionego połączenia. 4.6.2. Prezentacja zawartości tabel Funkcja, dzięki której możliwa jest prezentacja zawartości poszczególnych tabel realizowana jest za pomocą polecenia SELECT. Za pomocą tego polecenia pobierane są dane z tabeli, po czym przypisywane są one pod zmienne i wyświetlane są na stronie serwisu [2]. <?php include("../funkcje.php"); lacz_bd(); $query = "SELECT * FROM ksiazki ORDER by tytul"; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); $i=0; while ($i < $num) { $idK = mysql_result($result,$i,"IdKsiazki"); $autor=mysql_result($result,$i,"Autor"); $tytul=mysql_result($result,$i,"Tytul"); $wydawnictwo=mysql_result($result,$i,"Wydawnictwo"); $rok=mysql_result($result,$i,"Rok"); ?> Program 2. Wykorzystanie polecenia SELECT 4.6.3. Logowanie Logowanie w systemie RSPN odbywa się w ten sam sposób zarówno w module użytkownika, jak i administratora. Użytkownik chcąc się zalogować do serwisu musi wypełnić formularz logowania, po czym wciska przycisk Login. Jeżeli dane przy logowaniu są poprawne, następuje automatyczne przekierowanie do odpowiedniego modułu, w zależności od uprawnień logowanej osoby (użytkownik lub administrator). 35 <?php require_once('funkcje.php'); $login=$_POST['nazwa_uz']; $haslo=$_POST['haslo']; $connection = lacz_bd(); $sql = "SELECT * FROM klienci WHERE Login = '$login' AND Haslo = '$haslo'"; $result = mysql_query($sql, $connection) or die ("Enquiry ended in failure. Return to the <a href='index.html' target='_parent'>home page</a>"); while( $row = mysql_fetch_array($result) ) { $LOCK=$row['LOCK']; $idKlienta_m = $row['IdKlienta']; $login_m = $row['Login']; $access_m = $row['access']; } if($LOCK==0) { echo "<P ALIGN='CENTER' STYLE='color: red '>Your access to the lending library is BLOCKED!!! <br><br>THE PROBABLE CAUSES ARE: <br>incorrect PASSWORD or LOGIN <br><br>OR YOU HAVEN'T RETURNED THE BOOK ON TIME!<B> <br><br>If it repeats, contact the administrator! <br></B>Return to the <a href='index.html' target='_parent'>home page</a></P>"; exit; } $num = mysql_numrows($result); if ($num !=0){ session_start(); session_register('zalogowany'); session_register('access'); session_register('IdKlienta'); $access = $access_m; $zalogowany = $login_m; $IdKlienta = $idKlienta_m; if($access==3) { header("location: ./Admin/index.html"); } else{ header("location: ./User/index.html");} } else { echo "<P ALIGN='CENTER' STYLE='color: red '>Logging ended with error! </P>"; } mysql_close($connection); ?> Program 3. Logowanie do serwisu 4.6.4. Dodawanie, edytowanie i usuwanie użytkowników Operacje na tabelach przeważnie realizowane są za pomocą poleceń: INSERT INTO – polecenie to pozwala dodać nowe informacje do istniejącej już bazy danych, UPDATE – dzięki temu poleceniu możliwa jest aktualizacja danych zawartych w istniejącej już bazie danych, 36 DELETE – używając tej komendy można usunąć zawartość calej tabeli, lecz gdy rozszerzymy składnię o klauzulę „where” można stosować to polecenie do usunięcia konkretnego rekordu z tabeli [8]. require_once('../funkcje.php'); $query="UPDATE ksiazki,recenzje_ksiazek SET ksiazki.Autor='$ud_autor',ksiazki.Tytul='$ud_tytul',ksiazki. IloscStron='$ud_iloscStron',ksiazki.zdjecie='$ud_zdjecie', ksiazki.Wydawnictwo='$ud_wydawnictwo', ksiazki.Rok='$ud_rok',ksiazki.iloscKsiazek='$ud_iloscKsiazek', ksiazki.www='$ud_www',recenzje_ksiazek.Recenzja='$ud_opis' WHERE ksiazki.IdKsiazki='$ud_IdKsiazki' and ksiazki.IdKsiazki=recenzje_ksiazek.IdKsiazki"; mysql_query($query); echo ("Record updated! <br>Return to <a href='edycja.php?idK=$ud_IdKsiazki'>the previous page.</a><br>"); $connection = lacz_bd(); Program 4. Zastosowanie polecenia UPDATE 37 5. Podsumowanie W dzisiejszej dobie Internet jest jednym z najbardziej popularnych środków przekazu informacji. Dlatego kładzie się duży nacisk na rozwój technologii internetowych. Rozwój ten nie byłby możliwy dzięki stałej rozbudowie języków takich jak PHP i HTML. Niekiedy serwisy WWW realizowane są w oparciu o relacyjne bazy danych. Celem niniejszej pracy było stworzenie internetowego modułu bibliograficznego na potrzeby systemu RSPN przeznaczonego do zarządzania zasobami bibliotecznymi. System ten został zrealizowany w oparciu o znane technologie internetowe współpracujące z relacyjnymi bazami danych. W tym celu została stworzona baza danych zawierająca informacje na temat dostępnej literatury oraz użytkowników zarejestrowanych w systemie. Do zarządzania bazą danych stworzoną na potrzeby serwisu bibliograficznego wykorzystano aplikację phpMyAdmin. Wszystkie strony zawarte w serwisie oparte są o strukturę klient – serwer. Przewodnią myślą podczas implementacji systemu była wygoda oraz łatwość obsługi. W pracy tej starano się ująć obowiązujące trendy w projektowaniu witryn WWW. Opis systemu został wykonany w języku angielskim. Przy projektowaniu podobnych modułów bibliograficznych opartych o narzędzia i technologie wykorzystane przez autora, praca ta posłużyć może jako wzór. Stworzony system może być zainstalowany na dowolnym serwerze bazodanowym. 38 Literatura 1. Atkinson L., Core MySQL Przewodnik zaawansowanego programisty, Wydawnictwo Helion, Gliwice 2003 2. Converse T., Park J., Morgan C., PHP5 i MySQL. Biblia, Wydawnictwo Helion, Gliwice 2005 3. Dudek W., Bazy danych SQL. Teoria i praktyka, Wydawnictwo Helion, Gliwice 2006 4. Helling L., Thomson L., MySQL. Podstawy, Wydawnictwo Helion, Gliwice 2004 5. Khristine Annwn Page, Macromedia Dreamweaver 8. Oficjalny podręcznik, Wydawnictwo Helion, Gliwice 2006 6. Lecky-Thompson E., Eide-Goodman H., Nowicki S. D., Cove A., PHP5. Zaawansowane programowanie, Wydawnictwo Helion, Gliwice 2005 7. Lemay L., HTML 4. Vademecum profesjonalisty, Wydawnictwo Helion, Gliwice 1998 8. Nowakowski M., PHP4 & MySQL dla webmastera, Translator, 2001 9. Opis języka SQL, http://pl.wikipedia.org/wiki/SQL, z dnia 27.02.2008 10. Schwendiman B., PHP4. Kompendium programisty, Wydawnictwo Helion, Gliwice 2002 11. Sokół M., ABC języka HTML, Wydawnictwo Helion, Gliwice 2002 12. Sosna Ł., PhpMyAdmin - proste zarządzanie bazą MySQL, Wydawnictwo Nakom, Poznań 2006 13. Szeliga M., Wileczek, PHP. Tworzenie bezpiecznych stron WWW, Wydawnictwo Branta, Łódź 2003 14. Welling L. Thomson L., PHP i MySQL. Tworzenie stron WWW, Wydawnictwo Helion, Gliwice 2005 15. Yank K., PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III, Wydawnictwo Helion, Gliwice 2005 39 Spis rysunków Rysunek 1. Rysunek 2. Rysunek 3. Rysunek 4. Rysunek 5. Rysunek 6. Rysunek 7. Rysunek 8. Rysunek 9. Rysunek 10. Rysunek 11. Rysunek 12. Rysunek 13. Rysunek 14. Rysunek 15. Rysunek 16. Rysunek 17. Rysunek 18. Rysunek 19. Rysunek 20. Rysunek 21. Rysunek 22. Podzbiory zapytań języka SQL............................................................... 10 Macromedia Dreamweaver 8 – index.html............................................. 11 Program phpMyAdmin z bazą danych modułu bibliograficznego ......... 13 Diagram przypadków użycia serwisu ..................................................... 14 Strona główna serwisu bibliograficznego ............................................... 18 Lista książek z menu „List of books” ..................................................... 19 Wyszukiwarka książek z menu „Search books” ..................................... 19 Opis książki – „The description of the book” ......................................... 20 Rejestracja użytkowników – “Registration” ........................................... 21 Logowanie użytkownika i administratora – “Login” ............................ 22 Błąd logowania ....................................................................................... 22 Przypomnienie hasła z menu “Forgot password” ................................... 23 Kontakt z administratorem – „Contact”.................................................. 24 Panel użytkownika serwisu ..................................................................... 25 Panel użytkownika serwisu – „Borrowed books”................................... 26 Panel użytkownika serwisu – potwierdzenie wypożyczenia .................. 26 Panel użytkownika serwisu – „Change the data” ................................... 27 Moduł administracyjny – „Users” .......................................................... 28 Moduł administracyjny – „User’s styles” ............................................... 29 Moduł administracyjny – „Enquiry MySQL” ........................................ 29 Moduł administracyjny – „Add book”.................................................... 30 Moduł administracyjny – „Books borrowed at present” ........................ 31 Spis tabel Tabela 1. Tabela 2. Tabela 3. Tabela 4. Tabela 5. Struktura tabeli „klienci” ............................................................................ 15 Struktura tabeli „ksiazki” ............................................................................ 16 Struktura tabeli „pozycje_zamowione” ...................................................... 16 Struktura tabeli „recenzje_ksiazek” ............................................................ 16 Struktura tabeli „uzytkownik” .................................................................... 17 Spis programów Program 1. Program 2. Program 3. Program 4. Połączenie z bazą danych „czuba_norbert” ............................................... 34 Wykorzystanie polecenia SELECT ............................................................ 35 Logowanie do serwisu ............................................................................... 36 Zastosowanie polecenia UPDATE ............................................................. 37 40 Załączniki 1. 2. Elektroniczna wersja pracy dyplomowej na płycie CD Kod źródłowy części praktycznej pracy dyplomowej na płycie CD 41