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
Serdeczne podziękowania dla
prof. UKSW dr hab. Jerzego
Cytowskiego
za opiekę, udzieloną pomoc
i kierownictwo nad pracą.
- 2 -
- 3 -
..............................................................................................
3.1. Zasady tworzenia stron WWW
...........................................................................
3.2. Dostępne języki programowania
........................................................................
....................................................................................
3.4. Oprogramowanie bazodanowe
..........................................................................
4. Opis zastosowanych technologii
.....................................................................
........................................................................................
4.2. Język programowania PHP i HTML
..................................................................
..............................................................................
5. Projekt witryny internetowej.
..........................................................................
5.1. Założenia do projektowanego systemu.
..............................................................
..................................................................................................
..................................................................................................
.................................................................................................
- 4 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
- 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 -
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 -
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 -
3.2.8. XML
XML czyli Extensible Markup Language to wzorowany na
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
, (skrót z
angielskiego Document Type Definition, definicja typu dokumentu, pozwala
zdefiniować ograniczenia określające formalną strukturę dokumentu zapisanego
w
lub
), dokumentu lub w tzw.
W odróżnieniu od SGML-a możliwe jest jednak także stosowanie w XML-u
kaskadowych arkuszy stylów
, 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
(World
Wide Web Consortium, to organizacja, która zajmuje się ustanawianiem
standardów pisania i przesyłu stron
) i jego rozwój jest silnie wspierany
przez prawie wszystkie najważniejsze firmy produkujące oprogramowanie, takie
, Silicon Graphics, Sun Microsystems, Netscape i wiele
innych. Od 4 lutego 2004 r. najnowszą wersją XML jest XML 1.1, która w
- 24 -
porównaniu do XML 1.0 jest bardziej elastyczna pod względem stosowania
różnych znaków standardu Unicode.
- 25 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
Posiada dwa poziomy dostępu zabezpieczone poprzez funkcję logowania
(uwierzytelniania użytkowników):
- użytkownik
- administrator
- 40 -
Użytkownik może przeglądać oraz modyfikować dane, których jest
właścicielem, natomiast nie ma uprawnień do ich usunięcia.
- 41 -
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 -
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 -
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 -
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 -
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 -
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 -
}
?>
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 -
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 -
6. Podsumowanie
- 50 -
7. Literatura
- 51 -