background image

UNIWERSYSTET KARDYNAŁA STEFANA WYSZYŃSKIEGO 

W WARSZAWIE

WYDZIAŁ:

       

Matematyczno-Przyrodniczy

KIERUNEK:    Matematyka

  

Białas Marcin

„PHP jako język skryptowy zarządzający bazami 

danych na przykładzie MySQL. Projekt bazy 

danych „Rekrutacja Online””.

praca dyplomowa napisana na

Wydziale Matematyczno-Przyrodniczym

Uniwersytetu Kardynała Stefana Wyszyńskiego

w Warszawie pod kierunkiem

prof. UKSW dr hab. Jerzego Cytowskiego

Warszawa 2005

background image

Serdeczne podziękowania dla

prof. UKSW dr hab. Jerzego 

Cytowskiego

za opiekę, udzieloną pomoc

i kierownictwo nad pracą.

- 2 -

background image

- 3 -

background image

1. Wstęp

  

                                                                                                                 

  .................................................................................................................

  

5  

2. Cel i zakres pracy

  

                                                                                              

  ..............................................................................................

  

6  

3. Internet

  

                                                                                                               

  ...............................................................................................................

  

7  

3.1. Zasady tworzenia stron WWW

  

                                                                           

  ...........................................................................

  

11

  

3.2. Dostępne języki programowania

  

                                                                        

  ........................................................................

  

13

  

3.2.1. HTML

  

                                                                                                                     

  .....................................................................................................................

  

14

  

3.2.2. DHTML

  

                                                                                                                  

  ..................................................................................................................

  

16

  

3.2.3. JAVA

  

                                                                                                                      

  ......................................................................................................................

  

18

  

3.2.4. CGI

  

                                                                                                                          

  ..........................................................................................................................

  

19

  

3.2.5. PHP

  

                                                                                                                         

  .........................................................................................................................

  

20

  

3.2.6. ASP

  

                                                                                                                         

  .........................................................................................................................

  

22

  

3.2.7. ACTIVE X

  

                                                                                                              

  ..............................................................................................................

  

23

  

3.2.8. XML

  

                                                                                                                        

  ........................................................................................................................

  

24

  

3.3. Dostępne serwery WWW

  

                                                                                    

  ....................................................................................

  

26

  

3.3.1. Apache

  

                                                                                                                    

  ....................................................................................................................

  

26

  

3.3.2. Xitami

  

                                                                                                                      

  ......................................................................................................................

  

27

  

3.3.3. OmniHTTPd

  

                                                                                                            

  ............................................................................................................

  

29

  

3.3.4. Microsoft IIS

  

                                                                                                           

  ...........................................................................................................

  

30

  

3.4. Oprogramowanie bazodanowe

  

                                                                          

  ..........................................................................

  

31

  

3.4.1. Oracle

  

                                                                                                                      

  ......................................................................................................................

  

31

  

3.4.2. PostgreSQL

  

                                                                                                             

  .............................................................................................................

  

32

  

3.4.3. MySQL

  

                                                                                                                    

  ....................................................................................................................

  

33

  

4. Opis zastosowanych technologii

  

                                                                     

  .....................................................................

  

34

  

4.1. Serwer WWW Apache.

  

                                                                                        

  ........................................................................................

  

34

  

4.2. Język programowania PHP i HTML

  

                                                                  

  ..................................................................

  

35

  

4.3. Serwer bazodanowy MySQL

  

                                                                              

  ..............................................................................

  

36

  

5. Projekt witryny internetowej.

  

                                                                          

  ..........................................................................

  

37

  

5.1. Założenia do projektowanego systemu.

  

                                                              

  ..............................................................

  

38

  

5.2. Budowa witryny

  

                                                                                                  

  ..................................................................................................

  

39

  

5.3. Fragmenty kodu

  

                                                                                                  

  ..................................................................................................

  

43

  

6. Podsumowanie

  

                                                                                                 

  .................................................................................................

  

50

  

7. Literatura

  

                                                                                                         

  .........................................................................................................

  

51

  

- 4 -

background image

1. Wstęp

Niniejsza praca ma pokazać, jak w dobie coraz szybszego rozwoju sieci 

komputerowych, Internetu może wyglądać system wspomagający rekrutację na 

wyższą uczelnię, zwany systemem rekrutacji online.

Pierwsze rozdziały pracy wprowadzają użytkownika w świat Internetu, stron i 

witryn internetowych, zasad ich tworzenia z wykorzystaniem specyfikacji 

HTML, PHP, JavaScript jak również dostępnych języków programowania 

witryn internetowych, dostępnego oprogramowania typu „open source”, 

niezbędnego do prawidłowego działania systemu rekrutacji online.

Ostatnie rozdziały przedstawiają projekt rekrutacji online, w sposób 

ułatwiający zrozumienie zasad jego działania.

- 5 -

background image

2. Cel i zakres pracy

Celem pracy jest stworzenie aplikacji usprawniającej pracę Uczelni Wyższej 

w dziedzinie rekrutacji na studia wyższe. 

Znając możliwości, jakie stwarza sieć komputerowa oraz Internet, poprzez 

doskonałe warunki do szybkiego i łatwego znajdowania informacji, jak i to, że 

jest ona ogólnodostępna uznałem, że do rozwiązania zagadnienia najlepszym 

rozwiązaniem będzie stworzenie witryny internetowej, do której z łatwością 

zainteresowania osoba może się dostać.

Jednym z głównych zadań tej aplikacji jest możliwość bezpiecznego 

dostarczania danych personalnych kandydatów na studia wyższe, do których 

miałaby dostęp wybrana osoba, z odpowiednimi uprawnieniami. Aplikacja 

zapewnia nie tylko bezpieczeństwo w dostarczeniu tych informacji, ale również 

szybkość i pewność działania. 

Kolejną ważną cechą tego systemu jest usprawnienie i udoskonalenie 

przekazywania wyników z przeprowadzonych egzaminów, samym 

zainteresowanym tj. osobom rejestrującym się w systemie rekrutacji online.

- 6 -

background image

3. Internet

Internet to ogólnoświatowa sieć komputerowa pozwalająca na dostęp do 

zasobów komputerowych z każdego miejsca w świecie. 

Sieć komputerowa, to przynajmniej dwa połączone ze sobą komputery. W 

porównaniu z pojedynczym komputerem daje użytkownikowi możliwość 

korzystania z zasobów zgromadzonych na innym komputerze, oraz pozwala na 

komunikowanie się z użytkownikiem innego komputera. 

Ogólna struktura sieci Internet składa się z szeregu sieci lokalnych i 

pojedynczych komputerów połączonych szybką siecią szkieletową.

Wśród komputerów pracujących w sieci, można wyróżnić dwa typy 

nazywane serwerami i klientami. Serwer to komputer, który udostępnia swoje 

zasoby innym komputerom w sieci, np. udostępnia bazę danych, do której 

podłączają się użytkownicy końcowi, zwani klientami.

Klient to komputer, który korzysta z zasobów serwerów, np. domowy komputer, 

który łączy się poprzez sieć z serwisami informacyjnymi. Taki system 

organizacji sieci zbudowany na podstawie tych założeń nosi nazwę modelu 

klient – serwer.

Internet jest rozległą, rozproszoną siecią komputerową. Jest siecią rozległą, 

ponieważ łączy ze sobą wiele odległych systemów komputerowych. Jest on 

także siecią rozproszoną, gdyż nie można w jej całej skali wyróżnić centralnego 

punktu, który w jakikolwiek sposób nadzoruje jej pracę. Każdy fragment sieci o 

dowolnych rozmiarach jest zdolny do samodzielnego działania.

Początek rozwoju sieci Internet został zainicjowany potrzebami militarnymi 

armii Stanów Zjednoczonych. W odpowiedzi na wystrzelenie przez Związek 

Radziecki Sputnika, pierwszego sztucznego satelity Ziemi, w 1957 roku w 

Departamencie Obrony Stanów Zjednoczonych powołano specjalną agencję pod 

nazwą ARPA (Advanced Research Projects Agency) – Agencję 

Zaawansowanych Projektów Badawczych. Głównym jej zadaniem było 

opracowanie nowych technologii informacyjnych dla celów militarnych.

- 7 -

background image

W 1962 roku powstała koncepcja sieci opartej na wymianie pakietów – 

informacji dzielonej na mniejsze jednostki i partiami przesyłanej między 

nadawcą i odbiorcą. Ideą była sieć bez centralnego komputera, w której 

istniałoby wiele dróg pomiędzy węzłami. Sieć taka jest w stanie wytrzymać atak 

nuklearny. Zniszczenie nawet kilku węzłów przy odpowiednim rozmiarze sieci 

spowoduje dynamiczne „dopasowanie się” do nowych warunków. 

W listopadzie 1971 roku zdefiniowano podstawowy protokół NCP, protokoły 

zdalnego przesyłania plików FTP, oraz logowania Telnet. Błyskawiczna karierę 

zrobił system poczty elektronicznej e-mail, dzięki szybkości w przesyłaniu 

wiadomości na duże odległości. 

W roku 1973 zainicjowano pierwsze europejskie połączenie poprzez sieć 

pomiędzy Anglią a Norwegią. 

W 1975 roku zarządzanie siecią ARPANET przechodzi z ARPA do DCA 

(Defence Communications Agency), dziś DISA (Defence Information System 

Agency). W kolejnych latach powstały BitNet, UseNet, CSNet i ine sieci.

Na przełomie lat 70-tych i 80-tych rozpoczęto prace nad nowym protokołem 

– TCP. W styczniu 1983 roku nastąpił podział ARPANETu n część militarną: 

MILNET oraz cywilną INTERNET. Dzięki ujednoliconemu protokołowi 

poszczególne sieci mogły łączyć się ze sobą. W 1984 roku wprowadzono usługę 

DNS, dzięki czemu trudno zapamiętywane adresy cyfrowe otrzymują 

odpowiedniki w nazwach literowych. 

Dwa lata później w USA powstał NSFNET – ogólnokrajowa sieć szkieletowa 

o dużej przepustowości, łącząca mniejsze, lokalne sieci z „kręgosłupem” – 

routerem. Był to początek prawdziwej eksplozji Internetu. Burzliwie zaczął 

rozwijać się Usenet i listy dyskusyne, gdzie wymieniane są poglądy na wszelkie 

możliwe tematy. Opracowany został IRC (Internet Relay Chat) – usługa, 

pozwalająca przeprowadzanie rozmów w czasie rzeczywistym. 

W 1991 roku do światowej sieci zostaje przyłączona Polska.

- 8 -

background image

Dziś Internet jest największym zbiorem informacji. Mówi się, że można w nim 

znaleźć wszystko.

Pierwotnie sieciowe informacje były gromadzone w zwyczajnych plikach, 

umieszczonych na serwerach. Dostęp do nich zapewniał protokół FTP (File 

Transfer Protocol). Informacje o tym, że jakieś dane stały się dostępne w sieci 

wysyłano zwykle na odpowiednie listy dyskusyjne. Było to mało efektywne, 

więc pojawił się Archie. Program ten gromadził w swojej bazie danych 

informacje o tym, co znajduje się na poszczególnych serwerach FTP. Pozwalał 

też przeszukiwać zindeksowane dane poprzez zadawanie specjalnych zapytań.

Pojawiają się systemy WAIS (Wide Area Information Server), czyli systemy 

rozległych baz danych. WAIS indeksowały pełną zawartość różnych baz 

danych, dokumentów RFC orz plików FAQ (Frequently Asked Questions – 

Najczęściej Zadawane Pytania) list dyskusyjnych. 

Kolejną usługą, jaka pojawiła się na firmamencie Internetu był Gopher 

uznawany za przodka WWW. Od światowej sieci różnił się tym, że dawał 

dostęp do zwyczajnych dokumentów tekstowych. Aby ułatwić wyszukiwanie 

informacji udostępnionych w ten sposób, opracowano system o nazwie 

VERONICA (Very Easy Rodent-Oriented Netwide Index to Computerized 

Archives). Działał podobnie jak Archie, ale przeszukiwał zasoby Gophera. 

Powstaje standard PGP (Pretty Good Privacy) umożliwiający szyfrowanie 

przesyłek. 

W roku 1990 pojawia się World Wide Web, oparty o ideę hypertekstu 

(odnośników do innych informacji rozsianych po całym świecie), co sprawiło, 

że zasoby internetowe zaczęły szybko rosnąć. Naturalną konsekwencją tego 

faktu było opracowanie programów pomagających w nawigowaniu po Sieci. 

World Wide Web Wanderer powstał po to, by odnajdować nowe serwisy, a 

później zaczął śledzić rozrastanie się WWW. 

- 9 -

background image

W roku 1992 ośrodki naukowe tworzą swoje serwery WWW, pod koniec 

roku jest ich już 50. Liczba komputerów (hostów) w sieci przekracza milion. 

Powstaje Społeczność Internetowa (Internet Society) – ISO.

W 1993 roku wstaje Mosaic – pierwsza przeglądarka graficzna do 

odczytywania stron WWW.

W październiku 1994 roku powołana zostaje organizacja World Wide Web 

Consortium. Powstaje pierwszy europejski serwer W3C, zajmujący się 

rozwojem sieci, tworzeniem nowych standardów i technologii oraz 

zatwierdzaniem oficjalnych specyfikacji (np. języka HTML, arkuszy stylów).

W latach 90-tych pojawiają się nowe technologie Java, JavaScript, Itnernet 

Phone, ActiveX, VRML (Virtual Environments ), RealAudio (przesyłanie 

dźwięku), WebTV, ASP oraz popularny staje się dostęp do sieci przez modem. 

 W 1995 roku NSFNET przekształca się w sieć badawczą, Internet w 

komercyjną. Powstają przeglądarki Netscape Navigator oraz Internet Explorer. 

Pojawiają się firmy Compuserve, America Online, Prodigy zajmujące się 

oferowaniem dostępu do Internetu. Do sieci wkracza komercja. Pojawiają się 

pierwsze sklepy internetowe. 

W 1996 roku powstają wyszukiwarki Lycos i Yahoo. W roku 1999 First Internet 

Bank of Indiana, oferuje całodobową pełną obsługę przez Internet – jest to 

pierwszy bank dostępny tylko przez Internet. 

W 2000 roku powstaje technologia WAP (Wireless Application Protocol), 

która umożliwia korzystanie z Internetu przy pomocy telefonów komórkowych. 

Możliwa staje się rejestracja domen w językach chińskim, japońskim i 

koreańskim. 

W konsekwencji rozwoju globalnej sieci Internet pojawiły się usługi 

komercyjne, do sieci dołączyły banki, domy towarowe, biblioteki, księgarnie, 

firmy.

- 10 -

background image

3.1. Zasady tworzenia stron WWW

Do zapisu dokumentów używanych w ogólnoświatowej sieci Internet 

wykorzystuje się specjalny język - HTML.

Protokoły HTTP oraz TCP/IP umożliwiają porozumiewanie się oraz 

przesyłanie danych pomiędzy komputerami. Aby dane te zostały poprawnie 

odczytane, konieczne jest również zaprojektowanie właściwej struktury 

dokumentów. Dzięki wykorzystaniu języka HTML można przesyłać dane 

zrozumiałe dla odbiorcy.

Rozpoczynając przygodę z siecią internetową i światem stron tworzonych za 

pomocą języka HTML, zastanawiamy się, jakie narzędzie wybrać. Wybór jest 

trudny. Dostępne są edytory tekstowe jak i graficzne.

Używając edytora tekstowego (np. notatnika systemowego) decydujemy się 

na tworzenie stron poprzez edycję kodu źródłowego tworzonej strony. 

Tworzenie stron poprzez edycję ich kodu źródłowego prowadzi do lepszych 

rezultatów, a jeżeli w pracy wspomaga nas odpowiednie narzędzie, wcale nie 

musi być trudniejsze i bardziej pracochłonne, niż w edytorze graficznym.

Edytory graficzne pozwalają autorowi na skupienie się nad kompozycją i 

treścią dokumentu, starannie ukrywając kod źródłowy. Praca odbywa się w 

trybie graficznym, mającym jak najpełniej odwzorowywać wygląd strony w 

przeglądarce. Jedną z podstawowych cech języka HTML jest to, że z założenia 

nie definiuje on tak naprawdę wyglądu strony, tylko jej strukturę, a stanowiące 

jego część polecenia, pozwalające wpłynąć na sposób wyświetlania 

poszczególnych elementów, stanowią jedynie zalecenia dla przeglądarki, która 

może się do nich w jakiejś części zastosować, jednak obowiązku takiego nie ma.

Każdy webmaster (zarządzający daną stroną internetową) powinien poradzić 

sobie z pułapkami zastawianymi przez przeglądarki. Tworząc stronę należy 

sprawdzić, czy wygląda ona dobrze zarówno w przeglądarce najnowszej 

generacji, potrafiącej wyświetlić wszystko, co przewidują i czego nie 

przewidują sieciowe standardy, ale wymagającej potężnego komputera, jak w 

- 11 -

background image

przeglądarce działającej na tekstowym terminalu, która potrafi wyświetlić tekst i 

właściwie nic więcej. Tworzenie takich stron wymaga oczywiście 

doświadczenia, ale czegoś jeszcze - panowania nad kodem, którego nie 

zapewniają edytory graficzne.

W praktyce okazuje się często, iż osiągnięcie zamierzonego efektu jest trudne 

lub wręcz niemożliwe przy wykorzystaniu gotowych programów. Dlatego też 

osoby zajmujące się tworzeniem dokumentów HTML powinny znać ten język, 

aby ręcznie wprowadzać poprawki do struktury projektowanej strony WWW. 

- 12 -

background image

3.2. Dostępne języki programowania

Obecnie na rynku dostępnych jest wiele języków programowania, toteż każdy 

webmaster, początkujący czy też bardziej zaawansowany, ma możliwość 

wyboru. Języki programowania dzielą się na działające po stronie serwera i te 

drugie działające po stronie klienta. Do najbardziej popularnych języków 

działających po stronie serwera zaliczamy PHP, natomiast po stronie klienta 

zaliczana jest JavaScript.

Języki te można łączyć, to znaczy się wykorzystywać interesujące nas 

możliwości obu języków. Nie mogą jednak działać one samodzielnie i 

wymagana jest minimalna ilość kodu HTML-a.

- 13 -

background image

3.2.1. HTML

HTML to skrót od angielskiego Hypertext Markup Language. Powstał on w 

oparciu o język SGML (ang. Standard Generalized Markup Language), który 

jest poważnym i bardzo skomplikowanym systemem tworzenia dokumentów. 

Można powiedzieć, że HTML jest aplikacją SGML-u, co oznacza tyle, że każdy 

dokument napisany w HTML jest jednocześnie dokumentem w SGML-u, 

natomiast nie każdy dokument SGML-owy będzie dokumentem HTML.

HTML jest formatem tekstowym. Celem jego twórców było stworzenie 

sposobu zapisu dokumentów hypertekstowych, który będzie czytelny zarówno 

dla maszyny jak i człowieka bez konieczności korzystania z 

wyspecjalizowanych narzędzi. Założeniem było, żeby strony WWW dało się 

tworzyć i przeglądać pod każdym systemem operacyjnym i na każdym 

komputerze. Ta właśnie cecha HTML-a zadecydowała o sukcesie WWW i 

sprawiła, że to HTML stał się podstawą prezentowania informacji w globalnej 

sieci.

HTML jest też językiem opisującym strukturę dokumentu. Idea polega na 

tym, że większość dokumentów posiada pewne cechy wspólne, takie jak 

nagłówki, akapity czy wyliczenia. Tworząc stronę WWW, określa się jej 

strukturę nadając różnym jej elementom etykiety. Te etykiety nazywane są 

znacznikami.

Pracując z edytorem tekstu wykorzystującym arkusze stylów, np. Microsoft 

Word, wykorzystujemy podobny mechanizm. Jednakże między dokumentem 

Worda a dokumentem napisanym w HTML istnieje zasadnicza różnica - style w 

edytorach tekstu są nie tylko nazwami przypisanymi do poszczególnych 

elementów strony, ale zawierają też informacje o formatowaniu tych elementów, 

a więc jaką i jakiej wielkości czcionką mają być one wyświetlane i drukowane, 

jaki ma być odstęp od marginesów itp. HTML pozostawia takie szczegóły 

przeglądarce - zawiera tylko informację, że dany element jest nagłówkiem, 

- 14 -

background image

natomiast to, jak ten nagłówek zostanie wyświetlony na ekranie, zależy od 

przeglądarki.

Od momentu powstania język HTML jest stale rozwijany, uwzględniając 

postęp, jaki dokonuje się w dziedzinie przekazywania danych przez Internet.

Kolejne wersje języka HTML zachowują wsteczną kompatybilność z 

poprzednimi. Oznacza to, że najnowszy standard języka HTML bez problemu 

poradzi sobie ze stronami zaprojektowanymi przy użyciu jego starszych wersji.

Aby w pełni wykorzystać możliwości języka HTML, trzeba zadbać o jego 

odpowiednią współpracę z przeglądarką internetową. Zdarza się, że niektóre 

przeglądarki nie do końca uwzględniają specyfikację kolejnych wersji języka 

HTML. Na wielu stronach WWW można na przykład spotkać napis „Najlepiej 

oglądać przy użyciu Internet Explorer 5.0 lub nowszej". Oznacza to, że twórca 

strony zaplanował swoją witrynę specjalnie do współpracy z wyżej 

wymienionym programem. Użytkownicy korzystający z innych przeglądarek 

powinni się liczyć z ewentualnością nieprawidłowego wyświetlania 

prezentowanych na stronie danych.

Każdy twórca stron staje przed pokusą rezygnacji z takich zalet HTML, jak 

wieloplatformowość czy przenośność, na rzecz wizualnego uatrakcyjnienia 

witryny WWW, tworząc strony dla jednej przeglądarki, jednej rozdzielczości i 

jednego systemu operacyjnego. Takie podejście miałoby swoje uzasadnienie, 

gdyby nie to, że w ten sposób sami zamykamy dostęp do naszej strony jakiejś 

części odbiorców.

Pisząc specyfikację należy zwrócić uwagę, aby zachowana została „zgodność 

w dół". Zadaniem specyfikacji jest to, by nasze dopracowane graficznie i 

efektowne strony dobrze wyglądały w przeglądarkach starszej generacji, 

interpretujących jedynie jakąś część obowiązujących standardów.

Pomimo wspomnianych różnic i wprowadzanych modyfikacji dokumenty 

hypertekstowe spełniają swoje zadanie - umożliwiają tworzenie połączeń 

między dokumentami występującymi w Internecie.

- 15 -

background image

3.2.2. DHTML

Dynamiczny HTML daje dużo więcej możliwości niż sam język JavaScript. 

Jednocześnie ma z nim bardzo dużo wspólnego.

Termin Dynamiczny HTML (DHTML) jest stosunkowo nowy. Możliwości, 

DHTML-a powstawały wraz z nowymi wersjami przeglądarek. Jest on 

rozbudowaniem JavaScriptu o nowe możliwości i techniki, połączony z 

arkuszami stylów i nowymi możliwościami przeglądarek.

Nowa wersja języka skryptowego pozwala dynamicznie zmieniać zawartość 

strony WWW, daje dostęp do nowych możliwości, niedostępnych w starych 

wersjach tego języka. Strona nie musi być już statyczna. Ruch na stronach 

WWW to przede wszystkim animowane banery oraz Flash. JavaScript daje 

bardzo szerokie możliwości dodawania do niej ruchomych elementów, 

zmieniania ich pozycji, ukrywania, i pokazywania ich. Nowe możliwości, to np. 

kontrolowanie rozdzielczości ekranu. Mając tak cenną informację, można 

dostosować szerokość tabelki, rozmiar czcionki, odstępy itd.

Bardzo często stosowanym wykorzystaniem nowych możliwości są warstwy, 

zwane także blokami. Mają one bardzo szerokie zastosowanie. Pozwalają 

nanieść na stronę normalne elementy stron WWW, z dokładnym określeniem 

ich położenia. Elementy warstwy mogą znaleźć się nad innym tekstem lub 

grafiką. Wygląda to, jakby jedna strona była naniesiona na już istniejącą. 

Warstwa może być w każdej chwili ukryta lub zamieniona na inną, zawierającą 

inne elementy strony WWW. Warstwa może być również ruchoma - w postaci 

rozwijanego menu. Takie rozwiązanie daje możliwość nawigacji całego serwisu 

w bardzo wygodny sposób, niczym normalny program wykonywalny na 

komputerze stacjonarnym. Jeżeli menu przeszkadza, to można je myszką 

przesunąć w inne miejsce - metodą przenieś i upuść. Można je rozwinąć, by 

dostać się głębiej w serwis. Zaletą jest jego bardzo mała powierzchnia, nie 

większa niż standartowego menu programowego. Wprawdzie stworzenie 

profesjonalnego menu zajmie wiele pamięci, ale umieszczenie go w dowolnym 

- 16 -

background image

zewnętrznym pliku, jak style, pozwala udostępnić menu z każdej strony, bez 

ponownego ładowania. A strona zyskuje dodatkowe miejsce, na inne ważniejsze 

rzeczy.

- 17 -

background image

3.2.3. JAVA

Jest to język obiektowy, podobny nieco do C++, jednakże z założenia 

wieloplatformowy. Dzięki wykorzystaniu tzw. maszyny wirtualnej, możliwe jest 

uruchamianie programów napisanych w Javie i skompilowanych do specjalnej 

postaci na wszystkich systemach operacyjnych, które posiadają obsługę Javy. 

Oznacza to, że programy w Javie zadziałają zarówno pod Windows, jak i np. 

Linuxem czy MacOs'em. Java może być wykorzystana do pisania tzw. apletów 

lub w pełni działających aplikacji, także dużych, jak np. prezentowany przez 

firmę Corel pakiet biurowy napisany w całości w Javie.

Ąplety są to specjalnie skompilowane programy, napisane w języku Java, 

które mogą być umieszczane na stronach WWW i uruchamiane w 

przeglądarkach.

Aplet osadzony na stronie WWW, jest odczytywany przez przeglądarkę i 

pobierany z serwera w celu uruchomienia na komputerze użytkownika. Do 

wykonywania apletów potrzebna jest specjalna przeglądarka, ale obecnie 

wszystkie nowe przeglądarki obsługują aplety.

Aplety można wykorzystać praktycznie do wszystkiego. Jedynym 

ograniczeniem jest wyobraźnia programisty. W sieci znajdują się strony z 

darmowymi apletami, które można osadzać na swoich stronach. Pamiętać 

trzeba, że aplety posiadają spore rozmiary.

- 18 -

background image

3.2.4. CGI

CGI jest skrótem angielskiego określenia Common Gateway Interface, które 

oznacza zestaw mechanizmów umożliwiających uruchamianie programów na 

serwerze WWW, w odpowiedzi na dane pochodzące ze strony WWW, 

wyświetlanej w przeglądarce. Programy CGI, zwane również skryptami, 

pozwalają na stworzenie zasad interakcji między witryną WWW, a 

odwiedzającą je osobą. Może to być zarówno proste przetwarzanie formularza, 

jak i skomplikowane przeszukiwanie bazy danych SQL.

Skrypty CGI to programy, które tworzone są w języku PERL. Mogą to być 

również skompilowane programy zakodowane w C/C++ lub w dowolnym 

innym języku oferującym możliwość interakcji z serwerem przy użyciu 

bibliotek CGI.

- 19 -

background image

3.2.5. PHP

PHP (pierwotnie ang. Pretty Home Page, obecnie Hypertext Preprocessor) 

jest to język skryptowy wykonywany, podobnie jak CGI czy ASP po stronie 

serwera (server-side), a nie po stronie użytkownika (client-side), więc nie jest 

zależny od rodzaju przeglądarki, czy od systemu operacyjnego, (jak wiemy 

różne elementy mogą być odmiennie wyświetlane na różnych przeglądarkach) 

tylko od oprogramowania serwera. 

PHP jest językiem interpretowanym (co oznacza, że nie trzeba go 

kompilować przed wykonaniem). Serwer WWW po otrzymaniu żądania 

dokumentu i stwierdzeniu, że jest to skrypt PHP, „przepuszcza go” przez 

interpreter PHP. Interpreter po wykonaniu skryptu przygotowuje stosowny kod 

HTML, który jest przesłany przez serwer WWW do klienta.

Wszystko to połączone ze stosunkowo dużą łatwością obsługi i ogromnymi 

możliwościami sprawia, że PHP staje się bardzo dobrym konkurentem innych 

server-side'owych języków, chociażby CGI. Wielką zaletą PHP jest ścisła 

integracja z językiem HTML i protokołem HTTP. Oczywiście PHP może być 

również użyty jako typowy program CGI.

Kod skryptów PHP jest mieszany z kodem HTML, co pozwala wykonywać 

skrypty jakby wewnątrz stron WWW. Oczywiście jest to wrażenie tylko 

pozorne, bowiem zapisane dokumenty są przetwarzane przez serwer zanim 

jeszcze użytkownik zobaczy je w przeglądarce. PHP oferuje duże możliwości, 

takie jak:

- obsługa systemów baz danych: dbase, informix, interbase, msql, mysql, mssql, 

oracle, Sybase, postgresql i innych,

- wsparcie dla IMAP, SNMP, POP, SMTP, LDAP, NIS,

- dynamiczne generowanie grafiki,

- generowanie plików PDF,

- obsługa xml i wddx,

- sprawdzanie poprawności ortograficznej tekstu,

- 20 -

background image

- funkcje sieciowe (np. FTP, DNS),

- funkcje do obsługi semaforów i pamięci wspólnej,

- kompresja plików,

- obsługa wyszukiwania z użyciem wyrażeń regularnych,

- obsługa Javy,

- funkcje kryptograficzne (np. RSA, Crypt).

Aby móc używać PHP, serwis musi być zlokalizowany, podobnie jak w 

przypadku CGI, na serwerze obsługującym to rozszerzenie. PHP jest dostępny w 

większości obecnych dystrybucji LINUX, natomiast jeśli chcemy tworzyć i 

testować skrypty PHP w systemie Windows, musimy posiadać zainstalowany 

serwer WWW w połączeniu z odpowiednimi modułami włączającymi obsługę 

PHP.

- 21 -

background image

3.2.6. ASP

ASP jest skryptowym językiem programowania, służącym do tworzenia 

aplikacji WWW działających na serwerze. Skrypty ASP można wykorzystać 

zarówno do prostych, tworzonych dynamicznie stron WWW, jak i 

zaawansowanych aplikacji opartych o bazy danych.

Strony ASP składają się z elementów języka HTML, tekstu oraz komend 

języka skryptowego, którym może być JąyaScript lub VBScript. W odróżnieniu 

od zwykłych skryptów JavaScript i VBScript działających w przeglądarce, 

strony ASP wykonywane są w całości po stronie serwera. ASP intensywnie 

korzysta przy tym z technologii Active Platform i za pomocą mechanizmów 

ActiveX umożliwia komunikację z bazami danych.

ASP wykorzystuje wiele najnowszych technologii programowania, wśród jego 

zalet wymienić można:

- niezależność od języka programowania - standardowo można używać JScript 

lub JavaScript, ponieważ wsparcie dla nich dostępne jest po instalacji, natomiast 

dla innych języków konieczne są rozszerzenia,

- dostęp do baz danych za pomocą OLE DB lub ODBC (MS Access, dBase, MS 

SQL Server, Oracle)

- obsługa transakcji, co pozwala na jednoczesne manipulowanie wieloma 

rozproszonymi bazami danych,

- wsparcie dla ActiveX i COM,

- wbudowany program uruchamiający.

Jeśli chcemy używać ASP, serwis musi być zlokalizowany na serwerze 

obsługującym to rozszerzenie, zazwyczaj opartym o platformę Windows.

- 22 -

background image

3.2.7. ACTIVE X

Technologia ActiveX została stworzona przez firmę Microsoft jako 

odpowiedź na technologię Java i jest obsługiwana tylko przez przeglądarkę MS 

Internet Explorer. Dla Netscape istnieją również dodatki umożliwiające obsługę 

ActiveX, jednakże są to rozwiązania niedostępne domyślnie i wymagają 

interwencji ze strony użytkownika ActiveX. Ze względu na swoją budowę, 

działa również tylko w przeglądarkach uruchamianych pod kontrolą systemu 

Windows. ActiveX jest z założenia różny od Java, a różnice te są następujące:

- ActiveX jest zależny od przeglądarki. Niektóre funkcje (np. kontrolki) działają 

tylko w przeglądarce MS Internet Explorer 3.0 lub nowszej. Java jest z kolei 

całkowicie niezależna od platformy systemowej.

- Kontrolki ActiveX są udostępniane w formie prekompilowanych kodów 

źródłowych i zanim zostaną opublikowane, muszą być przetestowane na 

obecność błędów zabezpieczeń lub zarządzania pamięcią.

- Kontrolki ActiveX są standardem zintegrowanym z systemem Windows i 

mogą być używane nie tylko na stronach WWW, ale również wewnątrz 

programów działających pod Windows.

- Kontrolki ActiveX są instalowane w systemie i nie muszą być ponownie 

pobierane z sieci, jak aplety Javy.

- 23 -

background image

3.2.8. XML

XML czyli Extensible Markup Language to wzorowany na 

SGML-u

 sposób 

opisu znacznikami, umożliwiający wygodniejsze, szybsze i mniej 

sformalizowane przygotowywanie wszelkich dokumentów tekstowo-

graficznych, które można bez większych problemów przenosić i adaptować do 

różnych form przekazu elektronicznego.

XML to język znaczników umożliwiający podobnie jak SGML tworzenie 

swoich własnych znaczników formatujących definiowanych w 

DTD

, (skrót z 

angielskiego Document Type Definition, definicja typu dokumentu, pozwala 

zdefiniować ograniczenia określające formalną strukturę dokumentu zapisanego 

XML

 lub 

SGML

), dokumentu lub w tzw. 

schematach XML

W odróżnieniu od SGML-a możliwe jest jednak także stosowanie w XML-u 

kaskadowych arkuszy stylów 

CSS

, programowalnych arkuszy stylów specjalnie 

zaprojektowanych dla XML-a o nazwie XSL i innych interaktywnych 

elementów często stosowanych przy pisaniu stron WWW.

XML wymaga znacznie większej dyscypliny przy pisaniu dokumentów niż 

HTML, gdyż zasadą interpretacji XML-a jest najpierw kontrola poprawności 

składniowej a dopiero później ewentualne wyświetlenie/wykonanie dokumentu, 

tak więc błędnie napisane dokumenty XML nie będą w ogóle wyświetlane przez 

przeglądarki. Z drugiej jednak strony, dzięki restrykcyjnej składni, dokumenty 

XML mogą być automatycznie przekształcane na inne formaty języków, przez 

programy zwane parserami.

XML i jego zastosowania prawdopodobnie w przyszłości zastąpią całkowicie 

HTML, gdyż XML w wersji 1.0 został uznany za standard przez 

W3C

 (World 

Wide Web Consortium, to organizacja, która zajmuje się ustanawianiem 

standardów pisania i przesyłu stron 

WWW

) i jego rozwój jest silnie wspierany 

przez prawie wszystkie najważniejsze firmy produkujące oprogramowanie, takie 

jak: 

Microsoft

Oracle

Silicon Graphics, Sun Microsystems, Netscape i wiele 

innych. Od 4 lutego 2004 r. najnowszą wersją XML jest XML 1.1, która w 

- 24 -

background image

porównaniu do XML 1.0 jest bardziej elastyczna pod względem stosowania 

różnych znaków standardu Unicode.

- 25 -

background image

3.3. Dostępne serwery WWW

3.3.1. Apache

Apache jest otwartym serwerem HTTP dostępnym dla wielu systemów 

operacyjnych (m.in. UNIX, GNU/Linux, BSDMicrosoft Windows). Po 

angielsku słowo Apache wymawia się epaczi, co brzmi tak samo jak a patchy 

(server), co było określeniem tego serwera we wczesnym stadium jego rozwoju 

1995 roku, kiedy był on głównie zbiorem poprawek (patch) nałożonych na 

serwer HTTP o nazwie NCSA.

Apache jest najszerzej stosowanym serwerem HTTP w Internecie. W maju 2003 

jego udział wśród serwerów wynosił 62%. W połączeniu z interpreterem języka 

skryptowego PHP i bazą danych MySQL, Apache stanowi jedno z najczęściej 

spotykanych środowisk w firmach oferujących miejsce na serwerach 

sieciowych.

Apache/PHP jest platformą konkurencyjną do microsoftowej technologii 

ASP.NET opartej na komercyjnym serwerze IIS. Wraz z PHP i silnikiem baz 

danych MySQL na platformie Linux, Apache stanowi tzw. platformę LAMP 

(Linux, Apache, MySQL, PHP).

- 26 -

background image

3.3.2. Xitami

Jeśli poszukujemy szybkiego, lecz nie dużego serwera Web odpowiedzią 

najprawdopodobniej będzie Xitami. Mocnymi stronami Xitami jest jego 

niewielki rozmiar i wspaniała praca, gdyż jest on zbudowany na podstawie 

iMatix, wysokiej jakości jądra SMT (Simple Multi-Threading). Xitami ma 

lojalnych zwolenników, których liczba równomiernie rośnie z powodu jego ceny 

(jest on darmowy!) i jego wypróbowanej i prawdziwej wydajności.

Instalacja jest prosta i szybka, przebiega bardzo sprawnie - po kilku minutach 

jest on gotowy do działania. Istnieją trzy wersje Windows'owe: "Console", 

"Vanilla" i "Service". Wersja "Console" jest najbardziej atrakcyjna; aczkolwiek, 

wersje "Vanilla" oraz "Service" są bardziej przyjazne w konfiguracji i 

administracji serwera. Te dwie wersje Xitami; nie są zbyt fantazyjne, 

aczkolwiek spełniają swe zadanie w wydajny i intuicyjny sposób, gdyż 

posiadają oparty na przeglądarce interfejsy (plus linię poleceń).

Dokumentacja dla Xitami jest solidna, jak również gruntowna i pomaga w 

pracy z serwerem, znacznie ją ułatwiając. Obaj użytkownicy początkujący i 

expert znajdą pomoc w dobrze napisanej i dokładnej dokumentacji. Xitami 

zawiera standardowe funkcje takie jak HTTP/1.0, FTP, CGI/1.1, jak również 

wirtualne hosty działające w sposób bardzo sprawny. Dodatkowo, rozszerzenia 

serwera mogą być dodawane poprzez Xitami's Web Server Extension Agents 

(WSX), co jest niewątpliwie zaletą. W odróżnieniu do API, WSX nie są 

ładowane w czasie pracy z bibliotek DLL, lecz wprowadzane do plików 

wykonywalnych Xitami. Podobną do FastCGI, LRWP (Long Running Web 

Process), jest metoda Xitami służąca nieustannemu zarządzaniu CGI, i jest to 

konieczne dla tych stron, które w dużym stopniu działają w oparciu o języki 

skryptowe, jak również dynamiczną zawartość. Serwer ten zawiera LRWP 

podobnie jak agenta WSX.

Xitami jest silnym, dobrze przygotowanym i szczelnym serwerem we 

wszystkich odpowiednich miejscach. Przenośność to w przypadku Xitami nie 

- 27 -

background image

jest problem, ponieważ współpracuje on z ważniejszymi systemami opartymi na 

Unix'ie, OS/2, OpenVMS, Windows 3.x, Windows 95 oraz Windows NT. 

Aktualnie nie jest niestety dostępna wersja dla Mac. Support techniczny jest 

dostępny poprzez e-mail, grupy dyskusyjne oraz dokumentację online. 

Komercyjni klienci, którym należna jest szczególna uwaga mogą zamówić 

roczną licencję na techniczny support w cenie $250 dla całej firmy. 

Użytkownicy poszukujący szybkiego, przenośnego i niedrogiego 

wielowątkowego serwera Web znajdą odpowiedź w Xitami.

- 28 -

background image

3.3.3. OmniHTTPd

Jest to nowoczesny serwer, którego głównym celem jest szybkość, niewielki 

rozmiar i współpraca z Windows'ami. Jest skierowany dla klientów 

indywidualnych, chcących publikować własną stronę Web oraz małych firm. 

Nie wymaga on nawet od użytkownika dostępu do sieci, aby z komputera 

osobistego zrobić w pełni funkcjonalny serwer Web.

Może on pracować na łączu PPP (dynamicznym lub dedykowanym), 

charakteryzuje się wielowątkowością i wieloźródłowością, wspiera współpracę z 

serwerami wirtualnymi (równoczesne wspieranie zarówno serwerów opartych 

na adresie IP jak i bez niego), może pracować jak proces zarówno w systemie 

Windows NT jak i 9x, charakteryzuje się architekturą nastawioną na szybkość 

(Rapid Response Architecture), wykorzystuje HTTP 1.1, umożliwia 

uruchomienie wielu serwerów dostępnych na różnych portach pracujących na 

jednej maszynie, wspiera połączenia typu Keep-Alive oraz CGI (CGI 1.1 i 

Windows CGI 1.3), umożliwia utrzymywanie do 512 równoległych połączeń, 

pozwala na kontrolę opcji bezpieczeństwa. Pakiet jest wyposażony w interfejs 

graficzny ułatwiający konfigurację i zadania administracyjne.

Serwer nie jest polecany do celów komercji elektronicznej, ponieważ nie jest 

wyposażony w zaawansowane techniki zapewniające bezpieczeństwo (SSL czy 

S/HTTP). Jednak w porównaniu z innymi równorzędnymi produktami osiąga 

przewagę pod względem prędkości pracy i wspieranych technologii co sytuuje 

go pomiędzy produktami klasy najprostszej (ang. entry-level) a średniej (ang. 

mid-level). Jeśli nawet serwery takie jak Microsoft Personal Web Server czy 

AOLserver mogą mu dorównać pod względem prędkości to nie dościgają go 

pod względem wykorzystywanych technologii. Niestety wersja bezpłatna 

pracuje tylko pod Windows 95, nie jest już rozwijana, nie może wspierać 

techniki wirtualnych serwerów, protokołu HTTP 1.1 i zarządzania 

bezpieczeństwem oraz nie może działać jako proces.

- 29 -

background image

3.3.4. Microsoft IIS

Wersja 5 serwera IIS Microsoftu kontynuuje ulepszanie już wspaniałego 

serwera WWW. Wersja ta, która jest dostarczana jako część systemu Windows 

2000 Server, zawiera wiele nowych zalet łącznie z poprawą wydajności i 

niezawodności działania. Zauważalne udogodnienia zawierają lepsze i 

dokładniej udokumentowane polityki bezpieczeństwa, wsparcie dla nowego 

standardu publikowania WebDAV, i szybszy restart serwera WWW i FTP.

     IIS v.5.0 jest dobry zarówno jako podstawowy serwer sieciowy, znany i 

wygodny w użyciu używany pod kontrolą systemu Windows, a także jako 

wysokiej klasy serwer dla providerów i wielkich instalacji korporacyjnych. 

Zarządza dobrze podstawami i jest lepiej zintegrowany z Windows niż 

poprzednie wersje. Poprawie uległa również wydajność i działanie podczas 

krytycznych zadań.

- 30 -

background image

3.4. Oprogramowanie bazodanowe

3.4.1. Oracle

Oracle jest kompleksowym systemem baz danych pozwalającym na uniwersalne 

i wielopoziomowe korzystanie z danych przechowywanych w systemie. 

Uniwersalność Oracla polega na tym, że może on pracować w środowisku 

większości znanych systemów operacyjnych, zaczynając od systemu Windows, 

poprzez komercyjne systemy UNIXowe, a na darmowych systemach 

Linuxowych kończąc. Wielopoziomowość natomiast oznacza możliwość 

dostępu do bazy Oracle z aplikacji napisanych w praktycznie dowolnej 

technologii (Java, XML, usługi WWW, i inne).

Powyższa charakterystyka techniczna systemu Oracle pokazuje, że nadaje się on 

do niemal wszystkich zastosowań związanych z przechowywaniem i 

przetwarzaniem danych we współczesnej gospodarce. Obecnie systemy oparte o 

technologię firmy Oracle są wiodącymi produktami na rynku światowym, a 

także rodzimym. Można je spotkać w wielu działach gospodarki oraz 

administracji publicznej.

- 31 -

background image

3.4.2. PostgreSQL

PostgreSQL, wersja 6.4 jest darmową bazą danych, której pełny kod źródłowy 

został Ci dostarczony. Jest również obiektowo-relacyjnym Systemem 

Bazodanowym w dużym stopniu zgodnym ze standardami ANSI SQL 

1998,92,89. Można go uruchomić na wielu platformach sprzętowych i pod 

kontrolą różnych systemów operacyjnych.

Innym założeniem i końcowym celem PostgreSQL jest osiągnięcie 

stuprocentowej zgodności ze standardem ANSI/ISO SQL, a także osiągnięcie 

pierwszej pozycji wśród tego typu baz danych na całym świecie. PostgreSQL 

wobec tego wskaże drogę rozwoju, ukierunkuje i podyktuje przyszłość 

standardu ANSI/ISO SQL. Właśnie tak, implementacja i idee najpierw pojawią 

się w PostgreSQL, a dopiero potem zostaną uznane przez ANSI/ISO SQL. 

Informix Universal server (opracowany w 1997 roku) bazuje na wczesnej wersji 

PostgreSQL, gdyż Informix zakupił firmę Illustra Inc. i połączył się z nią. Baza 

danych Illustra była w całości oparta na PostgreSQL (jego wczesnej wersji). 

PostgreSQL jest rozwinięciem SZBD POSTGRES, prototypu badawczego 

SZBD nowej generacji. PostgreSQL zawiera silny model danych i całe 

bogactwo typów danych POSTGRES-a, jednak język zapytań PostQuel został 

zastąpiony rozszerzonym podzbiorem języka SQL. 

Nad rozwojem PostgreSQL pracuje internetowy zespół ludzi, którzy 

subskrybują listę dystrybucyjną developerów PostgreSQL. Obecnie jej 

koordynatorem jest Marc G. Fournier 

- 32 -

background image

3.4.3. MySQL

MySQL był pisany raczej z myślą o szybkości, niż kompatybilności ze 

standardem SQL – przez dłuższy czas MySQL nie obsługiwał nawet transakcji, 

co było zresztą głównym argumentem przeciwników tego silnika bazodanowego 

(najczęściej zwolenników PostgreSQL) – w nowszych wersjach (>=4) jest 

jednak zaimplementowana większość istotnych funkcji, a z każdą nowszą 

wersją, wsparcie SQL staje się coraz bardziej kompletne.

Cieszy się natomiast opinią jednego z szybszych serwerów bazodanowych, 

dzięki czemu znakomicie nadaje się jako serwer dla często odwiedzanych witryn 

WWW.

- 33 -

background image

4. Opis zastosowanych technologii

4.1. Serwer WWW Apache.

Darmowy pakiet oprogramowania Apache, dostarczany wraz z każdą 

dystrybucją Linuxa, jest jednym z najczęściej stosowanych serwerów WWW 

pracujących nie tylko pod kontrolą Linuxa, ale również systemem Windows i 

innymi.

Dzięki niezliczonej mnogości operacji sieciowych, obsłudze CGI, PHP serwer 

ten jest jednym z najpopularniejszych serwerów WWW na niewielkich 

serwerach prywatnych użytkowników jak i w dużych firmach zajmujących się 

dostawą usług internetowych. Program ten jest darmowy – rozprowadzany na 

licencji public domain, dzięki czemu mamy również dostęp do kodu 

źródłowego. Siłą napędową rozwoju serwera Apache jest Apache Group zespół 

programistów ochotników, którzy wraz z użytkownikami rozwijają program 

jako Apache Projekt, a główna baza programu znajduje się pod adresem 

htp://www.apache.org.

Dla przeciętnego użytkownika serwer Apache jest najczęściej przydatny do 

testowania przez siebie wykonywanych stron WWW, a gównie do testowania 

skryptów CGI (Common Gateway Interface) i PHP, które są często podłączone 

do naszych stron jako: liczniki odwiedzin, księgi gości, wyszukiwarki, czy 

programy działające na danych znajdujących się w bazach danych. Zarówno 

skrypty CGI jak i PHP działają po stronie serwera. Przetwarzają wiadomości 

przesyłane za pomocą HTTP przy użyciu przeglądarki internetowej. 

Dane te są najczęściej zapisane w formularzach HTML i przesyłane za pomocą 

metody POST, która do przekazywania parametrów wykorzystuje nagłówek 

zapytania.

- 34 -

background image

4.2. Język programowania PHP i HTML

Przy tworzeniu witryny internetowej, będącej tematem pracy magisterskiej 

wybrałem język programowania PHP, choć nie była to jedyna możliwość. 

Istnieje wiele podobnych technologii. Każda ma jakieś swoje wady i zalety. 

Należy tylko dokonać wyboru stosownego do funkcjonalnych wymagań 

projektowanej witryny.

Wybrana przeze mnie technologia jest popularna, efektywna, działa na wielu 

platformach, a przy tym, co jest chyba najważniejsze, dostępna jest bezpłatnie 

(Open Source).

Została zaprojektowana do tworzenia dynamicznych serwisów www i co 

najważniejsze jest bardzo wygodna w użyciu.

Podobnie język HTML, który stwarza możliwość łatwego tworzenia i 

przeglądania serwisów www pod każdym systemem operacyjnym i na każdym 

komputerze. 

- 35 -

background image

4.3. Serwer bazodanowy MySQL

MySQL jest najpopularniejszym serwerem baz danych mających zastosowanie 

w internecie. Jest szybkim, wielowątkowym serwerem baz danych 

obsługującym język zapytań SQL. Pracuje z wieloma użytkownikami i 

doskonale nadaje się do wykorzystania razem z PHP, jako darmowa platforma 

aplikacji internetowych.

W MySQL-u można między innymi tworzyć nowe bazy danych, na których w 

większości opierają się wyszukiwarki, księgi gości, fora, liczniki odwiedzin itd. 

a w nich tabele, dodawać nowe rekordy, edytować je lub usuwać. Mamy do 

dyspozycji możliwość zarządzania użytkownikami, w tym również dokładnego 

określenia praw dostępu do konkretnego pola w bazie danych. W danym 

momencie z bazy danych może korzystać nieograniczona liczba osób, zależy to 

jedynie od zasobów serwera. 

- 36 -

background image

5. Projekt witryny internetowej.

W ramach pracy magisterskiej zaprojektowana i wykonana została witryna 

internetowa dla potrzeb Uniwersytetu Kardynała Stefana Wyszyńskiego, jak 

również dla potrzeb samych kandydatów na studia.

Zadaniem Witryny Internetowej jest zapisywanie w bazie danych osób 

kandydujących na studentów Uniwersytetu Kardynała Stefana Wyszyńskiego. 

Do budowy witryny wykorzystana została specyfikacja języka HTML, skrypty 

pisane w języku PHP, jak również baza danych MySQL’a.

- 37 -

background image

5.1. Założenia do projektowanego systemu.

Projektując system wspomagający rekrutację na studia założono, że powinien 

być stabilny – to znaczy powinien wytrzymywać pracę całodobową bez wpływu 

na wydajność, sprawny – sprawna modyfikacja istniejących danych, oraz 

posiadać szybki i niezawodny mechanizm wymiany danych. Powinien być 

odporny na błędne dane wprowadzone przez użytkownika, czyli powinien 

zawierać mechanizm kontrolny blokujący wprowadzanie niepoprawnych 

danych, orz powinien być łatwy w obsłudze jak i czytelny. Powinien być 

zabezpieczony przed nieautoryzowaną zmianą danych znajdujących się w bazie. 

- 38 -

background image

5.2. Budowa witryny

Instalacja systemu „Rekrutacji Online” została maksymalnie ułatwiona to 

znaczy, dołączone zostały skrypty, dzięki którym w systemie bazodanowym 

MySQL’a zostaje utworzona baza danych rekrutacja, następnie są w tej bazie 

tworzone odpowiednie tabele i słowniki i na końcu tworzone jest konto 

administratora systemu.

Rys. 

Witryna posiada wszystkie niezbędne do działania na danych funkcje.

Umożliwia dodawanie, edycję, oraz usuwanie danych. 

- 39 -

background image

Posiada dwa poziomy dostępu zabezpieczone poprzez funkcję logowania 

(uwierzytelniania użytkowników):

- użytkownik

- administrator

- 40 -

background image

Użytkownik może przeglądać oraz modyfikować dane, których jest 

właścicielem, natomiast nie ma uprawnień do ich usunięcia.

- 41 -

background image

Administrator natomiast ma pełne prawa. Ma możliwość przeglądania 

wszystkich zarejestrowanych użytkowników w systemie, usuwanie ich i 

wszystkich danych z nimi związanych. 

- 42 -

background image

5.3. Fragmenty kodu

Wycinek kodu ze skryptu create_database.php odpowiedzialnego za 

tworzenie struktury bazy danych Rekrutacji Online, jej tabel, słowników 

oraz wszystkich niezbędnych danych w niej zawartych.

...

$create_db_rekrutacja="create database rekrutacja;";

$create_db_rekrutacja_result=mysql_query($create_db_rekrutacj

a) or die ("Nie masz praw dostępu do servera, powstał błąd w 

połączeniu, lub baza danych już istnieje");

mysql_select_db("$db",$connect);

$create_table_admin="CREATE TABLE admin(usr_Login 

varchar(30), usr_Password varchar(200)) TYPE=MyISAM;";

$create_table_admin_result=mysql_query($create_table_admin);

$create_table_panstwa="CREATE TABLE panstwa(panstwo_id 

int(11) NOT NULL, panstwo_nazwa varchar(50) NOT NULL, PRIMARY 

KEY (panstwo_id)) TYPE=MyISAM;";

$create_table_panstwa_result=mysql_query($create_table_panstw

a);

//wstawianie wartosci ze skryptu panstwa_values.sql do tabeli 

panstwa_values

$panstwa_values_file='skrypty-sql/panstwa_values.sql';

$panstwa_values_handle=fopen($panstwa_values_file, "r");

$panstwa_values_query=fread($panstwa_values_handle, 

filesize($panstwa_values_file));

fclose($panstwa_values_handle);

foreach(explode(";", "$panstwa_values_query") as 

$panstwa_values_line)

{

$panstwa_values_insert=mysql_query("$panstwa_values_line");

}

$create_table_dane="CREATE TABLE dane(usr_id int(10) NOT NULL 

auto_increment, usr_Login varchar(30), usr_Password 

- 43 -

background image

varchar(200),";

$create_table_dane.="usr_PESEL varchar(11), usr_NIP int(20), 

usr_NrDowOs varchar(20), usr_Plec varchar(10), usr_Nazwisko 

varchar(50),";

$create_table_dane.="usr_Imiona1 varchar(20), usr_Imiona2 

varchar(20), usr_NazwPan varchar(50), usr_DataUr varchar(20), 

usr_MjUr varchar(30),";

$create_table_dane.="usr_Kraj int(3), usr_WojUr varchar(30), 

usr_Obywatel varchar(20), usr_ImOjca varchar(20), usr_ImMat 

varchar(20),";

$create_table_dane.="usr_NazwPanMat varchar(50), usr_MjZam 

varchar(20), usr_Kod_1 int(2), usr_Kod_2 int(3), usr_Ulica 

varchar(20), usr_Dom varchar(5),";

$create_table_dane.="usr_Lokal int(5), usr_WojZam 

varchar(30), usr_MjK varchar(30), usr_KodK_1 int(2), 

usr_KodK_2 int(3), usr_UlicaK varchar(20),";

$create_table_dane.="usr_DomK varchar(5), usr_LokalK int(5), 

usr_WojKor varchar(30), usr_NrTel int(20), usr_StatusWKU 

varchar(20), usr_KatWKU varchar(5),";

$create_table_dane.="usr_AdrWKU varchar(50), usr_Karany 

varchar(3), usr_Szkola2 varchar(50), usr_MceSzkola 

varchar(30), usr_WojSzkol varchar(30),";

$create_table_dane.="usr_KrajSzkola int(3), usr_SzkolaRokUk 

int(4), usr_UczelniaNazwa varchar(50), usr_UczelniaWydzial 

varchar(50), usr_UczelniaKierunek varchar(50),";

$create_table_dane.="usr_UczelniaMiejsc varchar(30), 

usr_KrajUczelnia int(3), usr_UczelnialataOd int(4), 

usr_UczelnialataDo int(4), usr_UczelniaSemestry int(2),";

$create_table_dane.="usr_UczelniaKoniec varchar(20), 

usr_UczelniaPowod varchar(100), usr_EgzJezyk varchar(20), 

primary key (usr_id)) TYPE=MyISAM;";

$create_table_dane_result=mysql_query($create_table_dane);

...

- 44 -

background image

W skrypcie użyte zostały polecenia SQL’a mające za zadanie stworzenie bazy 

danych, tabel oraz słowników zawierających niezbędne do poprawnego 

funkcjonowania serwisu dane. Można zauważyć, że słownik o nazwie panstwa 

został wypełniony danymi pobranymi ze skryptu panstwa_values.sql.

Wycinek kodu ze skryptu autoryzacja.php odpowiedzialnego za logowanie 

do serwisu Rekrutacji Online.

...

if($_POST["akcja"]=='Autoryzacja')

{

if($_POST["usr_Login"] && $_POST["usr_Password1"] && 

$_POST["usr_Login"]!='root')

{

$zapytanie="SELECT * FROM dane join kierunek 

using(usr_id);";

$zapytanie_result=mysql_query($zapytanie);

while($row=mysql_fetch_array($zapytanie_result))

{

$usr_Login=$row["usr_Login"];

$usr_Password1=$row["usr_Password"];

$logowanie=0;

if($_POST["usr_Login"]==$usr_Login && 

md5($_POST["usr_Password1"])==$usr_Password1)

{

$logowanie=1;

print "Potwierdzenie autoryzacji zwykłego 

użytkownika<br>";

naglowek($dane_uzytkownika);

$p_usr_PESEL=$row["usr_PESEL"];

...

Umożliwia przeprowadzenie logowania użytkownika. Weryfikuje jego nazwę i 

hasło. Niepoprawne podanie nazwy lub hasła uniemożliwia rozpoczęcie 

- 45 -

background image

dalszych działań na stronie. Zostaje wyświetlony komunikat o błędnym 

logowaniu, po czym użytkownik zostaje skierowany do strony, na której 

powtórnie będzie mógł wpisać nazwę i hasło.

Ważnym elementem jest sposób przekazywania zmiennych z formularza do 

skryptu sprawdzającego poprawność wpisanych danych (nazwy użytkownika i 

hasła). Zmienne te są przesyłane metodą POST, która jest wysoce zalecana, a 

wręcz wymagana przy przekazywaniu haseł lub dużej ilości zmiennych, z uwagi 

na ukryte wartości przekazywanych przez tą metodę zmiennych.

Kolejnym elementem zwiększającym bezpieczeństwo jest użycie funkcji md5(), 

która służy do kodowania hasła kluczem 128 bitowym, co uniemożliwia jego 

podejrzenie bezpośrednio w bazie. Dzięki temu nawet administrator nie ma 

możliwości poznania hasła użytkownika co zapewnia pewnego rodzaju 

prywatność każdemu użytkownikowi, gdyż np. hasło, którego użył dany 

użytkownik może być również użyte przy innych rejestracjach. Z tego tytułu 

administrator znający hasło użytkownika mógłby go nadużyć co jest nie do 

przyjęcia. 

Należy zauważyć również, że jest tutaj użyta funkcja naglowek(), która 

odpowiedzialna jest za dynamiczne tworzenie nagłówka html’a w zależności od 

argumentu z jakim została wywołana. 

Wycinek kodu ze skryptu funkcje.php, w którym znajdują się wszystkie 

funkcje użyte w systemie Rekrutacji Online.

<?php

function spr_danych_rekrutacja6()

{

global $pomoc1;

$pomoc1=0;

if($_POST["usr_StatusWKU"]!='1' && $_POST["usr_AdrWKU"]=='' 

|| ereg("([^-a-z.A-Z0-9 ])",$_POST["usr_AdrWKU"]))

{

- 46 -

background image

if($pomoc1==0)

{

print "Podane dane nie zostały wypełnione lub zostały 

wypełnione nieprawidłowo:<br>";

}

print "<font color=\"red\">Przynależność do 

WKU</font><br>";

$pomoc1=1;

if(ereg("([^ABCDEF]{1})",$_POST["usr_KatWKU"]))

{

if($pomoc1==0)

{

print "Podane dane nie zostały wypełnione lub zostały 

wypełnione nieprawidłowo:<br>";

}

print "<font color=\"red\">Kategoria</font><br>";

$pomoc1=1;

}

}

if($_POST["usr_StatusWKU"]=='1')

{

$_POST["usr_AdrWKU"]='';

}

if($_POST["usr_Karany"]=='')

{

if($pomoc1==0)

{

print "Podane dane nie zostały wypełnione lub zostały 

wypełnione nieprawidłowo:<br>";

}

print "<font color=\"red\">Czy był(a) Pan(i) karany(a), czy 

toczyło się, bądź toczy postępowanie karne?</font><br>";

$pomoc1=1;

}

- 47 -

background image

}

?>

Funkcja ta ma za zadanie sprawdzenie czy dane wpisane w poszczególnych 

polach formularza zostały poprawnie wpisane, np. 

usr_KatWKU

 może zawierać 

tylko jeden znak spośród zbioru 

{A,B,C,D,E,F}

.

W przypadku braku danych lub ich błędnych wartości po zatwierdzeniu 

formularza zostaje zgłoszona uwaga, iż 

”Podane dane nie zostały 

wypełnione lub zostały wypełnione nieprawidłowo:”

 i zostają 

wskazane pola zgłoszone przez aplikację jako dane do poprawienia, po czym 

zostaje ponownie wyświetlony ten sam formularz z wpisanymi wcześniej przez 

użytkownika danymi.

Wycinek kodu ze skryptów connect.php i baza.php odpowiedzialnych za 

logowanie do bazy Rekrutacji Online.

“connect.php”

<?php

require("baza.php");

$connect= mysql_connect("localhost", "$user_db", "$pass_db");

if(!$connect)

{

echo "Błąd połączenia z baza danych lub serverem";

exit();

}

mysql_select_db("$db",$connect);

?>

”baza.php”

<?php

$user_db='root';

$pass_db='haselko';

$db='rekrutacja';

?>

- 48 -

background image

Skrypty te mają za zadanie połączenie się z serwerem baz danych, a konkretniej 

do bazy danych o nazwie przechowywanej w zmiennej 

$db

. Funkcja 

mysql_connect()

 pełni tutaj rolę łącznika z bazą danych wykorzystując 

zmienne: nazwy użytkownika, hasła oraz nazwy bazy danych.

- 49 -

background image

6. Podsumowanie

- 50 -

background image

7. Literatura

- 51 -


Document Outline