praca+magisterska+ +marcin+bialas+ +2005 04 05+php+jako+j%eazyk+skryptowy+zarz%b9dzaj%b9cy+bazami+danych+na+przyk%b3adzie+mysql+projekt+bazy+danych VVFGBJBPN53EC7XPN2OLJFMWPYCIKB45NVBYL2I

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

w

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, BSD, Microsoft 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

w 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


Wyszukiwarka

Podobne podstrony:
praca+magisterska+ +marcin+bialas+ +2005 04 05+php+jako+j eazyk+skryptowy+zarz b9dzaj b9cy+bazami+da
praca NEWCONNECT JAKO NOWE ŹRÓDŁO FINANSOWANIA DZIAŁALNOŚCI PRZEDSIĘBIORSTW (NA PRZYKŁADZIE AUXILIU
WSB Praca magisterska 09 2005
Klastry w Polsce przed 2005 rokiem, Uniwersytet Ekonomiczny JG, Praca magisterska, Klastry.org
05 085530 Praca magisterska Kornelii
praca magisterska Akty kończące ogólne postępowanie administracyjne
circuit cellar1991 04,05
praca-magisterska-a11406, Dokumenty(2)
praca-magisterska-a11222, Dokumenty(2)
praca-magisterska-6811, Dokumenty(8)
praca-magisterska-a11186, Dokumenty(2)
praca-magisterska-7383, Dokumenty(2)
Metody treningowe, Mikołaj praca magisterska
praca-magisterska-a11473, Dokumenty(2)
praca-magisterska-6699, Dokumenty(8)
praca-magisterska-7444, Dokumenty(2)

więcej podobnych podstron