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/