Projekt z Technologii Internetowych
Transkrypt
Projekt z Technologii Internetowych
POLITECHNIKA ŚLĄSKA WYDZIAŁ AUTOMATYKI, ELEKTRONIKI I INFORMATYKI Projekt z Technologii Internetowych Galeria internetowa „PhotoArt” Autorzy: Roman Gajdzik, Michał Nieużyła Rok III, semestr V, grupa 5, sekcja 2 Kierujący pracą: dr inż. Jacek Loska Gliwice, grudzień 2011 2 Galeria internetowa „PhotoArt” Spis treści 1. Wstęp ......................................................................................................................................... 3 2. Cel i zakres projektu .................................................................................................................... 3 3. Harmonogram............................................................................................................................. 4 4. 3.1. Harmonogram zatwierdzony ............................................................................................ 5 3.2. Harmonogram wykonany................................................................................................. 5 Aplikacja programowa i/lub sprzętowa........................................................................................ 5 4.1. Wybór technologii ........................................................................................................... 5 4.2. Analiza rozwiązao ............................................................................................................ 6 4.3. Zaproponowane rozwiązanie ........................................................................................... 6 4.4. Wykonanie ...................................................................................................................... 6 4.5. Problemy w trakcie tworzenia aplikacji .......................................................................... 12 5. Podsumowanie ......................................................................................................................... 13 6. Literatura .................................................................................................................................. 13 3 Galeria internetowa „PhotoArt” 1. Wstęp Galeria internetowa „PhotoArt” to portal, którego myślą przewodnią jest zapewnienie pasjonatom fotografii możliwości udostępniania, przeglądania oraz komentowania zdjęd w Internecie.Naszym głównym celem było stworzenie miejsca gdzie będą mogli spotkad sie ludzie, dla których fotografia jest pasją i sposobem na życie. Dzięki wyżej wymienionym funkcjonalnościom każdy, bez względu na poziom zaawansowania w fotografii, będzie mógł podzielid się swoją twórczością z innymi, zostad przez innych oceniony, a także będzie posiadał możliwośd wyrażenia własnej opinii na temat zdjęd innych użytkowników. Wymiana doświadczeo między użytkownikami z całego świata da możliwośd rozwoju, naprowadzi początkujących na właściwe tory, a także stworzy sposobnośd do zawiązywania nowych znajomości pomiędzy ludźmi odwiedzającymi naszą stronę. Dzięki naszemu portalowi profesjonalni fotografowie będą mogli udostępnid próbki swoich umiejętności, a co za tym idzie znaleźd potencjalnych pracodawców. „PhotoArt” posiada jeszcze jedną wartościową cechę. Dzięki dziale poświęconemu wiadomościom na temat fotografii, nawet najwięksi laicy będą mogli poznad tajniki pięknej sztuki jaką jest fotografia. Odwiedzający dział encyklopedyczny, opuszczą go bogatsi o kilka informacjii, które byd może będą stanowiły pierwszy krok do rozpoczęcia nowej przygody z fotografią. Nasza strona staje naprzeciw wymaganiom internautów – w szybki sposób, bez wychodzenia z domu, można cieszyd oko wspaniałymi fotografiami, stworzyd swoje portfolio i czerpad z niego wiele przyjemności. 2. Cel i zakres projektu Celem projektu jest stworzenie witryny umożliwiającej pasjonatom fotografii zamieszczenie swoich prac w Internecie, jak również oglądad prace innych. Projekt pozwolił też nam zapoznad się z językami wykorzystywanymi do tworzenia serwisów internetowych, jako że nie mieliśmy wcześniej z nimi styczności lub używaliśmy ich w bardzo ograniczonym stopniu. Wszelkie skrypty na stronie zostały napisane w języku PHP, natomiast szata graficzna opiera się na języku HTML z wykorzystaniem arkuszy CSS. Dodatkowo wykorzystywane są bazy danych (do przechowywania danych użytkowników, komentarzy, itd.), dlatego też wykorzystywane są zapytania SQL. 4 Galeria internetowa „PhotoArt” Etapy projektu: Określenie problemu i wykonanie do niego założeo. Analiza możliwych rozwiązao, wraz z kryteriami wyboru. Wykonanie projektu zgodnie z założeniami. Uruchomienie, weryfikacji i przetestowanie aplikacji. Nakreślenie ewentualnych kierunków rozwoju projektu. Wnioski 3. Harmonogram Pierwszym etapem miało byd stworzenie szkieletu strony – zarówno pod względem graficznym jak i funkcjonalnym. Pozwoliło to na łatwą rozbudowę serwisu przez dodawanie kolejnych funkcji do istniejącego „rusztowania”. Dzięki implementacji systemu rejestracji użytkowników możemy utrzymad porządek na stronie: zalogowany użytkownik może oglądad zdjęcia innych oraz je komentowad, natomiast może ingerowad wyłącznie w pliki dodane przez siebie (np. nie może usunąd zdjęd innego użytkownika). W części encyklopedycznej zawarte są artykuły wyjaśniające techniczne zagadnienia z dziedziny fotografii – odwiedzający nasza stronę mogą dzięki temu pogłębid swoją wiedzę. Następny etap to główna funkcjonalnośd naszego serwisu, czyli dodawanie, przechowywanie oraz wyświetlanie zdjęd. Obrazy są przechowywane w katalogu przypisanym do użytkownika, na stronie wyświetlane są ich miniaturki, jedno powiększone zdjęcie oraz jego parametry odczytane z meta danych EXIF. Każde zdjęcie może byd komentowane przez użytkowników – w tym celu przechowywane są w bazie danych i odpowiednio wyświetlane pod aktualnie oglądanym plikiem graficznym. Na koniec zostawiliśmy rezerwę czasową na dopracowanie szczegółów pominiętych w poprzednich etapach. 5 Galeria internetowa „PhotoArt” 3.1.Harmonogram zatwierdzony 1. Ogólny szkielet strony 2. System rejestracji i logowania użytkowników 3. Częśd encyklopedyczna 4. Tworzenie albumów i dodawanie zdjęd 5. System komentarzy 6. System wyszukiwarki 7. Zintegrowanie całości strony 8. Prezentacja projektu 3.2.Harmonogram wykonany Wraz z postępami przy budowie strony wykrystalizowała się jej obecna forma. W związku z tym, że każdy użytkownik otrzymuje swój własny folder do przechowywania zdjęd, stwierdziliśmy że wyszukiwarka będzie zbędna. W zamian za to skupiliśmy się na funkcjach pozwalających usunąd z serwisu wybrane zdjęcie lub nawet cały swój folder zawierający fotografie zamieszczone przez danego użytkownika. Dlatego też ostateczny harmonogram przedstawia się następująco: 1. Ogólny szkielet strony 2. System rejestracji i logowania użytkowników 3. Częśd encyklopedyczna 4. Tworzenie albumów i dodawanie zdjęd 5. System komentarzy 6. System usuwania zdjęd i katalogów 7. Zintegrowanie całości strony 8. Prezentacja projektu 4. Aplikacja programowa i/lub sprzętowa 4.1. Wybór technologii Wraz z rozwojem Internetu coraz bardziej popularne staje się zamieszczanie swojej twórczości w sieci. W związku z tym zdecydowaliśmy się na stworzenie galerii internetowej. Biorąc pod uwagę fakt, że większośd czynności na naszej stronie będą wykonywali użytkownicy nie mający dostępu do funkcji administracyjnych, zdecydowaliśmy się na użycie 6 Galeria internetowa „PhotoArt” popularnego języka PHP – dzięki temu mamy możliwośd tworzenia skryptów. Uzyskanie takiego samego efektu używając czystego języka HTML byłoby co najmniej bardzo trudne. Dodatkowo z racji konieczności obsługi bazy danych, niezbędne jest zastosowanie zapytao SQL. Zastanawialiśmy się nad zastosowaniem apletów JavaScript, jednak doszliśmy do wniosku, że na potrzeby naszej strony skrypty napisane w języku PHP będa wystarczające, gdyż jest on przeznaczony stricte do tworzenia witryn internetowych. 4.2. Analiza rozwiązań Na samym początku stanęliśmy przed wyborem metody przechowywania plików graficznych. Odkryliśmy trzy podejścia do sprawy: 1. Przechowywanie plików na serwerze FTP 2. Przechowywanie plików jako binarne dane w bazie danych 3. Przechowywanie plików na serwerze strony. Ostatecznie wybraliśmy metodę przechowywania plików w katalogu na serwerze strony. 4.3. Zaproponowane rozwiązanie Jako sposób przechowywania plików wybraliśmy stworzenie osobnego katalogu na serwerze strony. Wybierając metodę kierowaliśmy się głównie prostotą obsługi jak i łatwością kontrolowania poprawności działania podczas tworzenia strony – w każdej chwili mamy podgląd w strukturę tworzonych katalogów, poprawnośd zamieszczania plików, i łatwą ingerencję z poziomu menadżera plików. Po zapoznaniu się z opiniami wielu forumowiczów doszliśmy do wniosku, że jakkolwiek przechowywanie plików w bazie ma wiele plusów ( jak na przykład proste tworzenie kopii zapasowych, łatwo można wprowadzid mechanizmy zabezpieczeo), jednak powoduje to znaczne obciążenie silnika bazodanowego (bazy danych nie są jednak przystosowane do działania na dużych plikach binarnych. Jeśli zaś chodzi o serwer FTP, stwierdziliśmy że nie ma sensu dołaczad dodatkowego serwera, skoro mamy do dyspozycji przestrzeo dyskową serwera – zwłaszcza gdy przechowujemy na nim tylko zmniejszone pliki. 4.4. Wykonanie Do stworzenia strony użyliśmy serwera Apache oraz serwera mySQL stworzonych za pomocą programu XAMPP na lokalnym komputerze. Umożliwia nam to proste manipulowanie plikami źródłowymi i ich edycję, a dodatkowo unikamy problemów z hostingiem (np. awarie serwera). Poza tym program ten udostępnia aplet PHPMyAdmin pozwalający na sprawne zarządzanie bazami danych potrzebnych do stworzenia projektu. Na początku chcieliśmy 7 Galeria internetowa „PhotoArt” skonfigurowad osobno serwer Apache oraz serwer mySQL, lecz po zaczerpnięciu wiedzy z różnych for dyskusyjnych dowiedzieliśmy się ze program XAMPP udostępnia juz skonfigurowane serwery, co w znacznym stopniu ułatwia pracę. Podstawowa konstrukcja strony to kod HTML z dołączonymi skryptami napisanymi w języku PHP. Organizacja kodu całej witryny jest stosunkowo prosta: główna częśd zawierająca baner, menu boczne oraz stopkę jest zapisana jako plik index.php, do którego sukcesywnie są dołączane odpowiednie pliki podstron przechowywane w folderze /pages/. Pozwala to na łatwą edycję kodu – każdej podstronie czy nawet funkcji odpowiada osobny plik .php, dzięki czemu nie musimy zajmowad się np. spójnością szaty graficznej każdej podstrony – gdyż ta opisana jest w pliku index.php i zostaje automatycznie zaimplementowana do każdej podstrony. Ponadto w znacznym stopniu ułatwia to pracę nad poszczególnymi funkcjami naszej strony np. daje możliwośd szybkiej modyfikacji treści umieszczanych na stronie głównej. Szatę graficzną zdecydowaliśmy się tworzyd od podstaw – zostały stworzone pliki .png umieszczone na stronie w blokach <div>. Zastosowanie tej techniki pozwala na stworzenie przejrzystego układu strony. Do stworzenia banera tytułowego zostały wykorzystane zdjęcia z własnych zbiorów. W naszym projekcie użyliśmy również technologii CSS (Cascading Style Sheets), która daje możliwości bardziej elastycznego zarządzania sposobem formatowania (wyglądem) elementów znajdujących się w dokumentach elektronicznych. Rozważaliśmy czy nie używad szablonów umieszczanych w Internecie, lecz doszliśmy do wniosków że więcej się nauczymy nie wykorzystując gotowych układów graficznych, a budując je od podstaw. W arkuszu CSS mamy określone takie parametry strony jak: Grafika tła – powtarzający się obraz .png o rozmiarach 300x300 pikseli Rodzaj czcionki (Calibri) Kolor linków – odwiedzonych i nieodwiedzonych Formatowanie tabeli miniatur – obramowanie grubości 3 piksele w kolorze czarnym, styl „ridge” Tła poszczególnych bloków DIV (pliki graficzne) Rozmiary i parametry bloków DIV Jako układ zastosowaliśmy sztywny podział strony za pomocą bloków <div>. Na samej górze znajduje się graficzny baner, który jednocześnie wyznacza szerokośd naszej strony. Zdecydowaliśmy się na szerokośd 800 pikseli, gdyż powinno to zagwarantowad poprawne 8 Galeria internetowa „PhotoArt” wyświetlanie strony nawet na popularnych netbookach o małej przekątnej ekranu, a co za tym idzie małej rozdzielczości. Z drugiej strony jeśli rozdzielczośd pozioma będzie większa niż 800px, zawartośd strony zostaje automatycznie wycentrowana, a puste miejsca wypełnione grafiką tła określoną przez arkusz CSS. Poza tym strona jest automatycznie dopasowywana do treści – przy małej ilości elementów w bloku „treśd strony” stopka znajduje się zaraz pod panelem menu, natomiast przy treści wykraczającej poza minimalne rozmiary strona jest rozciągana w pionie. Po wejściu na naszą stronę oczom internauty ukazuje się strona główna. Jako że to właśnie ona decyduje o pierwszym wrażeniu i wyrobieniu sobie opinii o całej stronie, zadbaliśmy o jej wystrój graficzny. Na samej górze widzimy baner tytułowy, który nawiązuje do tematyki strony: poza nazwą naszego serwisu znajdują się tam zdjęcia stylizowane na odbitki typu polaroid. Cała kolorystyka strony utrzymana jest w kolorystyce brązowo – zielonej. Motyw ten jest zastosowany do wszystkich elementów graficznych strony takiej jak baner, stopka, przyciski czy też tło strony. Na stronie głównej umieszczono przywitanie dla odwiedzającego oraz przykładowe zdjęcia zamieszczone przez administratora. Ma to na celu zachęcenie użytkownika do pozostania na naszym serwisie. Po lewej stronie naszej witryny znajduje się menu nawigacyjne. Przyciski służące do przechodzenia pomiędzy częściami serwisu zostały stworzone jako przyciski graficzne. Nawigacja między podstronami zapewniona jest za pomocą query string: każdy przycisk oskryptowany jest jako odnośnik formatu „index.php?page=podstrona”. Wartośd zmiennej $page jest za każdym razem interpretowana przez instrukcję warunkową switch(), która zapewnia dołączenie odpowiedniego pliku podstrony znajdujący się w folderze pages/ na serwerze. W menu znajduje się również formularz, dzięki któremu można sie zalogowad oraz odnośnik do formularza rejestracyjnego. Przyciski które stworzyliśmy, to: Strona główna – umożliwia przejście z dowolnego miejsca portalu na stronę główną Galeria - tutaj znajdują się zdjęcia zamieszczone przez użytkowników Encyklopedia – ta sekcja zawiera artykuły na temat fotografii Użytkownicy – lista zarejestrowanych użytkowników Rejestracja – formularz umożliwiający zarejestrowanie własnego konta. Do obsługi zarówno rejestracji, jak i logowania potrzebna jest baza danych. Dlatego też stworzyliśmy w bazie danych tabelę o nazwie „rejestracja”. Tabela ta zawiera nazwę użytkownika, jego id oraz hasło zaszyfrowane algorytmem MD5. 9 Galeria internetowa „PhotoArt” Formularz rejestracyjny pobiera dane: nazwę użytkownika oraz hasło, a następnie wysyła je do serwera MySQL, gdzie są zapisywane w tabeli ”rejestracja”. Z racji tego, że w zasadzie wymagamy podania tylko i wyłącznie loginu oraz hasła nie ma problemów z ochroną danych osobowych. Niezalogowany użytkownik ma ograniczony dostęp do serwisu: może zapoznad się z artykułami w encyklopedii, jednakże nie zobaczy już galerii czy tez listy użytkowników. Formularz logujący wysyła wpisane dane na serwer SQL. Za pomocą funkcji mysql_query() sprawdzamy, czy login oraz zahashowane wpisane hasło znajdują się w bazie danych. Jeśli zapytanie zwróci poprawną wartośd, ustawiana jest wartośd zmiennej globalnej $zalogowany na 1. W przeciwnym wypadku zmienna przyjmuje wartośd 0. Dodatkowo zapisuje login użytkownika do zmiennej sesyjnej, co jest wykorzystywane m.in. w galerii. Po udanym zalogowaniu formularz logowania zostaje zastąpiony przez przycisk „wyloguj”. Częśd encyklopedyczna została oparta pod względem merytorycznym na hasłach zaczerpniętych z Wikipedii. Pod względem technicznym zastosowaliśmy kaskadowe dołączanie podstron: do bloku div „treśd strony” dołączana jest podstrona „encyklopedia”, do której z kolei dołączony jest odpowiedni plik php wybrany za pomocą zmiennej $art_id. Jeśli nie jest przekazana żadna wartośd w zmiennej $art_id to do podstrony encyklopedii dołączony jest plik art_default.php, który zawiera listę wszystkich artykułów. Oczywiście do każdego artykułu podane jest źródło, wraz z linkiem przekierowującym do oryginału. Galeria, czyli serce naszego portalu została oparta o katalogowanie zdjęd na serwerze strony. Zdecydowaliśmy, że każdemu użytkownikowi zostaje przydzielony folder, w którym przechowywane będą jego zdjęcia. Katalog ten jest tworzony podczas dodania pierwszego pliku do galerii. Po wejściu do działu galerii oczom użytkownika przedstawia się tabela folderów użytkowników. Tabela ta jest tworzona przy każdym wejściu na podstronę: za pomocą funkcji readdir() przeszukiwany jest folder /zdjęcia/, a wyniki są zapisywane do tablicy. Znając rozmiar tej tablicy (a co za tym idzie ilośd folderów) możemy za pomocą pętli for utworzyd tabelę linków prowadzących do galerii poszczególnych użytkowników. Każda komórka tabeli ma określone tło w postaci obrazu katalogu (obraz jest wspólny dla każdej komórki) oraz dynamicznie utworzony link prowadzący do galerii wybranego użytkownika. Dodatkowo znajduje się tu formularz umożliwiający wysłanie pliku na serwer – plik ten jest umieszczany w folderze o nazwie takiej samej jak nazwa aktualnie zalogowanego użytkownika. Nie ma możliwości ingerencji (dodanie, usunięcie zdjęcia) w galerii innego 10 Galeria internetowa „PhotoArt” użytkownika. Jeśli taki folder nie istnieje (co oznacza że użytkownik nie zamieścił jeszcze żadnego pliku), zostaje on utworzony komendą mkdir(). Po wysłaniu pliku skrypt zaladuj.php sprawdza, czy taki juz istnieje w katalogu. Jeśli tak to kooczy swoje działanie wyświetlając komunikat „Plik już istnieje”. Jeśli nie sprawdza czy przesłany plik jest w odpowiednim formacie (gif, xbm, wbmp, png, jpg). Po pomyślnym przejściu tych dwóch funkcji sprawdzających jest tymczasowo zapisywany w katalogu w oryginalnym rozmiarze. Następnie pobierane są metadane EXIF i wysyłane do bazy danych. Dane te są pobierane funkcją exif_read_data() zwracającej tablicę wszystkich istniejących metadanych. Z tej tablicy wybieramy interesujące nas wartości: model aparatu czas otwarcia migawki wartośd przesłony ogniskową czułośd ISO datę i godzinę utworzenia zdjęcia Sprawdzamy długośd poszczególnych składowych naszej informacji – zawsze istnieje mozliwośd, że do zdjęcia nie były dołaczone żadne metadane – dlatego gdy długośd łaocucha znakowego opisujący daną wartośd jest dłuższa od zera, to jest dopisywana do wynikowego łaocucha znakowego. Wynikowy łaocuch jest zapisywany w bazie danych. Powyższa funkcja pozwala na wyświetlanie tylko istniejących metadanych. Równocześnie w bazie danych zapisywane są nazwa pliku oraz autor. Następnie zdjęcie zmniejszane jest do odpowiednich rozmiarów w celu poprawnego wyświetlania oraz oszczędności miejsca na serwerze. Najpierw pobierany jest rozmiar zdjęcia oraz jego format. Rozmiar zdjęcia jest nam potrzebny do określenia czy jest ono zrobione pionowo czy też poziomo. Pózniej sprawdzany jest format przesłanego pliku oraz tworzy identyfikator pliku oryginalnego. W kolejnym kroku sprawdzamy czy zdjęcie jest poziome czy pionowe i ustawiamy konkretne wartości rozmiaru wynikowego pliku. Następnie tworzymy pusty obrazek o zadanych wymiarach i kopiujemy do niego przeskalowany oryginalny obraz. Na samym koocu zapisywany jest jako plik o odpowiednim rozszerzeniu. Po przejściu do galerii wybranego użytkownika naszym oczom ukazuje się podstrona podzielona na trzy bloki funkcjonalne: W pierwszym bloku od góry znajduje się galeria miniaturek. W związku ze stałą szerokością strony ich liczba jest ograniczona do sześciu sztuk – jeśli galeria użytkownika zawiera więcej 11 Galeria internetowa „PhotoArt” zdjęd niż sześd, pod galerią miniaturek pokazuą się linki pozwalające przechodzid do kolejnych „zestawów” sześciu miniaturek. Są one umieszczone w tabeli o stylu określonym w arkuszu CSS zapisanym w pliku index.php – każda komórka ma obramowanie w kolorze czarnym i grubości 3 pikseli. Drugą częścią strony jest tzw. zdjęcie główne. Jest to pobrane z serwera zdjęcie o rozmiarach dopasowanych do układu naszej strony, tzn o szerokości 650 pikseli. O tym, które zdjęcie wyświetlane jest jako główne, decyduje użytkownik przeglądający: kliknięcie na wybraną miniaturkę powoduje wyświetlenie wybranego zdjęcia jako głównego – jest to realizowane za pomocą zmiennej $photo w adresie strony, do której przypisywana jest ścieżka danego pliku. Jeśli żadne zdjęcie nie zostało wybrane – a ma to miejsce na przykład przy pierwszym wejściu do galerii lub przejściu na kolejną podstronę – jako główne wyświetlane jest pierwsze zdjęcie z zestawu aktualnie wyświetlanych miniaturek. Pod zdjęciem głównym wyświetlane są metadane EXIF zawierające: 1. 2. 3. 4. Model aparatu fotograficznego Ogniskowa obiektywu Prędkośd migawki Wartośd przesłony 5. Czułośc ISO 6. Data i godzina wykonania zdjęcia. Dane te w postaci łaocucha znakowego są pobierane z bazy danych, z tabeli „zdjęcia” na podstawie nazwy pliku (odzyskanej ze zmiennej $photo zawierajacej ścieżkę za pomocą funkcji explode()) oraz nazwy użytkownika – właściciela aktualnej galerii. Trzeci blok jest blokiem komentarzy. Jeśli zdjęcie nie zostało jeszcze skomentowane, wyświetlany jest jedynie formularz umożliwiający napisanie i wysłanie komentarza na serwer. Formularz ten wysyła treśd komentarzaoraz ID aktualnego zdjęcia do skryptu znajdującego się w pliku kom.php. Skrypt ten otwiera tabelę „komentarze” zawierającą następujące kolumny: - ID komentarza - ID zdjęcia – indywidualny identyfikator zdjęcia ( nawet jeśli dwaj użytkownicy zamieszczą ten sam plik, to i tak zdjęcia otrzymają różny identyfikator) - treśd komentarza - autor Po wysłaniu kometarza dodawany jest w powyższej tabeli wpis zawierający ID zdjęcia oraz komentarz przesłane za pomocą formularza oraz nazwę autora pobraną ze zmiennej sesyjnej przechowującej nazwę aktualnie zalogowanego użytkownika. 12 Galeria internetowa „PhotoArt” Jeśli komentarze już istnieją, wysyłane jest zapytanie do bazy danych- pobierane są wszystkie komentarze na podstawie zdefiniowanego ID zdjęcia. Nastepnie za pomocą funkcji num_rows() sprawdzamy ilośd pobranych komentarzy i tworzymy tabelę zawierającą nazwę autora oraz treśd komentarza. Ponadto, jesli użytkownik zalogowany przegląda swoją własną galerię, udostępniane mu są dodatkowe dwa przyciski: - umożliwiający usunięcie z serwera zdjęcia aktualnie wyświetlanego jako główne - umożliwiający usunięcia swojego katalogu wraz ze wszystkimi zdjęciami tam się znajdującymi. Po naciśnięciu przycisku usuwającego pojedyncze zdjęcie użytkownik jest pytany czy na pewno chce usunąd ten plik ( jest on dodatkowo wyświetlany). Potwierdzenie powoduje usunięcie zdjęcia z katalogu za pomocą funkcji unlink() oraz wpisu z bazy danych, natomiast zaprzeczenie przekierowuje z powrotem do galerii. Przycisk usuwający cały katalog również spowoduje wyświetlenie prośby o potwierdzenie decyzji, nastepnie skrypt przeskanuje cały katalog w celu zebrania ścieżek do wszystkich znajdujących się wewnątrz plików. Ścieżki te zostają wykorzystane do usunięcia tych plików funkcją unlink() oraz usunięcia wpisów z bazy danych. Gdy katalog jest już pusty, jest on usuwany za pomocą funkcji rmdir(). Przycisk „Użytkownicy” przenosi nas na podstronę, gdzie zobaczymy listę wszystkich zarejestrowanych użytkowników. Lista ta jest tworzona na podstawie zapytania do bazy SQL – pobieramy wszystkie loginy z tabeli „rejestracja”. Otrzymujemy strukturę, dlatego też musimy sprawdzid ilośd wierszy z tabeli – umożliwia nam to wypisanie loginów w pętli. Prosta pętla for od zera do liczby pobranych wierszy wyświetla kolejne pola struktury za pomocą funkcji echo. 4.5. Problemy w trakcie tworzenia aplikacji Na samym początku problemem było opanowanie podstaw języka PHP. Jednakże wraz z postępem prac nabieraliśmy coraz większej biegłości w programowaniu. Pierwotnie też próbowaliśmy zastosowad gotowe układy graficzne strony jak i gotowe funkcje tworzące 13 Galeria internetowa „PhotoArt” galerie, jednak okazało się że napisanie własnych skryptów stworzy mniej problemów z implementacją, jak również będziemy mied większą kontrolę nad sposobem działania skryptów napisanych przez nas. 5. Podsumowanie Z pierwotnych założeo udało nam się zrealizowad większośd punktów. Jesteśmy zadowoleni z uzyskanego efektu. W pierwotnych założeniach mieliśmy zamiar stworzyd wyszukiwarkę na naszej stronie. Jednakże doszliśmy do wniosku, że przy obecnej mechanice strony ( gdzie każdy użytkownik ma swój własny katalog – nie istnieje centralny folder przechowywujący wszystkie zdjęcia) wyszukiwarka nie ma racji bytu. Mechanika galerii działa dosyd sprawnie, po wielu próbach nie zaobserwowaliśmy znaczących błędów w jej funkcjonowaniu. W celu ochrony danych wprowadziliśmy szyfrowanie haseł w bazie danych. Jednakże w celu poprawy bezpieczeostwa możnaby pokusid się o zastosowanie połączeo szyfrowanych. Przy komunikacji z bazą danych nie wykryliśmy nieprawidłowości. Wydaje nam się również, że stworzona przez nas szata graficzna jest dośd przyjemna dla oka – nie rozprasza użytkownika i pozwala mu skupid się na zdjęciach, ale jednocześnie użytkownik na pewno zwróci na nią uwagę. Istnieje możliwośd udoskonalania szaty graficznej, jak i mechaniki, np stosując aplety JavaScript do tworzenia galerii czy też animacji. 6. Literatura http://php.net/manual/pl/index.php http://www.kurshtml.edu.pl/