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ą.
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.
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.
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.
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.
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.
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.
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 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.
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.
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, 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.
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 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.
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.
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.
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,
- 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.
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.
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.
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 porównaniu do XML 1.0 jest bardziej elastyczna pod względem stosowania różnych znaków standardu Unicode.
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).
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 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.
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.
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ń.
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.
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
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.
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.
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.
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.
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.
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.
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.
Posiada dwa poziomy dostępu zabezpieczone poprzez funkcję logowania (uwierzytelniania użytkowników):
- użytkownik
- administrator
Użytkownik może przeglądać oraz modyfikować dane, których jest właścicielem, natomiast nie ma uprawnień do ich usunięcia.
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.
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
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);
...
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 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"]))
{
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;
}
}
?>
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';
?>
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.
6. Podsumowanie
7. Literatura
- 7 -