You are on page 1of 13

PHP i MySQL.

8 komponentw dla
kreatywnych webmasterw
Autor: Jono Bacon
Tumaczenie: Piotr Pilch
ISBN: 978-83-246-0957-4
Tytu oryginau: Practical PHP and MySQL(R):
Building Eight Dynamic Web Applications
Format: B5, stron: 528

Osiem kompletnych przykadw zastosowania najpopularniejszych narzdzi


open Source do budowy profesjonalnych witryn internetowych przy uyciu PHP i MySQL
Jak stosowa PHP do sprawnego generowania stron?
Jak zarzdza danymi, wykorzystujc serwer MySQL?
Jak szybko tworzy kompletne, dynamiczne aplikacje internetowe?

Czas stron statycznych si skoczy! Blogi, fora dyskusyjne, sklepy internetowe,


serwisy aukcyjne i informacyjne dzi o popularnoci danej strony decyduj przede
wszystkim aplikacje dynamiczne pozwalajce uytkownikom na komunikacj z witryn.
Wikszo stron bazuje na dajcej ogromne moliwoci platformie obejmujcej jzyk
PHP i bazy danych MySQL. Bezpatny dostp do tej technologii, jej potencja
i wydajno przyczyniy si do niesamowitej popularnoci wrd webmasterw.
PHP i MySQL. 8 komponentw dla kreatywnych webmasterw to wprowadzenie
w wiat popularnej platformy do tworzenia aplikacji sieciowych od strony praktycznej.
Krtka cz teoretyczna, dziki ktrej dowiesz si, jak zainstalowa PHP i MySQL,
oraz poznasz podstawy korzystania z tych narzdzi, to jedynie wstp do ksiki.
W czci gwnej przedstawiono techniki stosowania PHP i MySQL na przykadzie
omiu kompletnych, funkcjonalnych aplikacji, ktre decyduj o atrakcyjnoci witryny.
Pracujc na tych przykadach nauczysz si sprawnie zarzdza bazami danych,
dynamicznie aktualizowa informacje na stronach, obsugiwa rejestracj i logowanie,
stosowa pakiety z repozytorium PEAR oraz wykonywa wiele innych operacji
przydatnych na profesjonalnych stronach internetowych.

Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl

Wprowadzenie do jzyka PHP i serwera MySQL


Tworzenie dynamicznych aplikacji sieciowych
Projektowanie interfejsu uytkownika
Zarzdzanie bazami danych
Obsuga rejestracji i uwierzytelniania
Administrowanie witrynami
Stosowanie technologii Ajax
Zarzdzanie treci witryn
Uywanie pakietw z repozytorium PEAR

Bd kreatywnym webmasterem i buduj dynamiczne strony internetowe!

Spis treci
O autorze .....................................................................................9
Przedmowa ................................................................................11
Wprowadzenie ..........................................................................13
Rozdzia 1. Nowa metodyka ........................................................................19
Technologia ........................................................................................................20
Dziaanie dynamicznej aplikacji internetowej ..................................................23
Podsumowanie ...................................................................................................27
Rozdzia 2. Jzyk PHP i serwer MySQL wprowadzenie ...........................29
Konfigurowanie interpretera jzyka PHP i serwera MySQL ..........................30
Rozpoczcie korzystania z jzyka PHP .............................................................32
Instalowanie serwera MySQL ...........................................................................50
czenie si z serwerem MySQL za pomoc skryptu PHP .............................59
Podsumowanie ...................................................................................................65
Rozdzia 3. Uruchamianie projektw ..........................................................67
Zastosowanie rodowiska XAMPP ....................................................................67
Podsumowanie ...................................................................................................70
Rozdzia 4. Dziennik internetowy ...............................................................71
Przegld projektu przypadek uycia dziennika Blogtastic ..........................72
Definiowanie bazy danych .................................................................................73
Rozpoczcie pisania kodu ..................................................................................76

Przegldanie wybranych wpisw ...................................................................... 90


Tworzenie przegldarki kategorii ................................................................... 100
Decydowanie, kto moe si zalogowa ........................................................... 103
Definiowanie wasnych kategorii .................................................................... 109
Tworzenie nowych wpisw blogu ................................................................... 111
Aktualizowanie wpisu blogu ........................................................................... 114
Podsumowanie ................................................................................................. 119
Rozdzia 5. Fora dyskusyjne ......................................................................121
Co jest pod mask? .......................................................................................... 121
Tworzenie wasnego forum ............................................................................. 124
Zanim rozpocznie si realizacj projektu ....................................................... 124
Tworzenie bazy danych ................................................................................... 125
Projektowanie wygldu witryny ...................................................................... 131
Wywietlanie forw ......................................................................................... 133
Zarzdzanie logowaniem uytkownikw ........................................................ 143
Wiadomoci i odpowiadanie na nie ................................................................ 161
Tworzenie stron administracyjnych ................................................................ 169
Podsumowanie ................................................................................................. 178
Rozdzia 6. Koszyk zakupw ......................................................................181
Przegld projektu ............................................................................................ 181
Tworzenie bazy danych ................................................................................... 182
Rozpoczcie pisania kodu ............................................................................... 187
Zarzdzanie logowaniem uytkownikw ........................................................ 192
Wywietlanie i wybieranie produktw ........................................................... 196
Pacenie za produkty ....................................................................................... 208
Strony administracyjne .................................................................................... 219
Podsumowanie ................................................................................................. 227
Rozdzia 7. Witryna aukcji internetowych ................................................229
Przegld projektu ............................................................................................ 230
Tworzenie bazy danych ................................................................................... 230
Rozpoczcie pisania kodu ............................................................................... 233
Wywietlanie pozycji aukcji ............................................................................ 236
Obsuga uytkownikw ................................................................................... 252
Dodawanie pozycji .......................................................................................... 255
Obsuga licytacji .............................................................................................. 271
Planowanie wczytywania strony ..................................................................... 275
Podsumowanie ................................................................................................. 276
Rozdzia 8. Kalendarz internetowy ...........................................................277
Przegld projektu ............................................................................................ 277
Tworzenie bazy danych ................................................................................... 278
Rozpoczcie pisania kodu ............................................................................... 280
Przegldanie wydarze .................................................................................... 288
Podsumowanie ................................................................................................. 314

PHP i MySQL. 8 komponentw dla kreatywnych webmasterw

Rozdzia 9. System zarzdzajcy treci pyta i odpowiedzi ..................315


Przegld projektu .............................................................................................316
Projektowanie bazy danych .............................................................................317
Rozpoczcie tworzenia kodu ...........................................................................322
Wywietlanie pyta ..........................................................................................333
Obsuga logowania ...........................................................................................343
Dodawanie i ocenianie pyta ..........................................................................354
Zarzdzanie tematami ......................................................................................369
Zarzdzanie wtkami ........................................................................................374
Prawo wasnoci do tematu ..............................................................................378
Podsumowanie .................................................................................................391
Rozdzia 10. Projekt wielokrotnego uycia ................................................393
Przegld projektu .............................................................................................394
Projektowanie bazy danych .............................................................................396
Inteligentne uywanie katalogw ....................................................................399
Rozpoczcie pisania kodu tworzenie szkieletu ..........................................400
Pobieranie dystrybucji .....................................................................................408
Przegldanie zrzutw ekranu ..........................................................................410
Przegldarka dostpnych projektw ...............................................................411
Zarzdzanie projektami ....................................................................................413
Modyfikowanie oglnych ustawie .................................................................420
Zarzdzanie plikami do pobrania .....................................................................422
Usuwanie dystrybucji .......................................................................................428
Zarzdzanie zrzutami ekranu ...........................................................................430
Usuwanie obrazw ...........................................................................................434
Dodawanie nowego projektu ...........................................................................435
Wdraanie projektu w obrbie aplikacji .........................................................436
Podsumowanie .................................................................................................438
Rozdzia 11. Witryna informacyjna .............................................................441
Przegld projektu .............................................................................................442
Instalowanie moduw PEAR .........................................................................442
Projektowanie bazy danych .............................................................................445
Rozpoczcie tworzenia kodu ...........................................................................448
Obsuga logowania uytkownikw ..................................................................456
Przegldanie i ocenianie informacji ................................................................462
Zarzdzanie informacjami ................................................................................468
Zarzdzanie kategoriami ..................................................................................475
Tworzenie mechanizmu wyszukiwania ...........................................................479
Podsumowanie .................................................................................................485
Dodatek A Projektowanie witryny WWW .................................................487
Skorowidz ................................................................................517

Spis treci

Nowa metodyka

panowanie umiejtnoci programowania zawsze byo trudn sztuk.


Pomimo zadziwiajco duej dostpnoci dokumentacji, podrcznikw,
stron internetowych, materiaw wideo, ksiek i innych zasobw w gruncie rzeczy nauka programowania w dalszym cigu nie jest prosta, zwaszcza gdy
nie jest si studentem wydziau informatycznego.
Jedn z gwnych przyczyn jest to, e zwykle analizowanie kodu rdowego
przebiega w nienaturalny sposb. Wikszo ksiek i podrcznikw wydaje si
poda ciek dokadnego objaniania mniej istotnych szczegw jzyka,
a nastpnie przedstawiania na ich podstawie bardziej zoonych zagadnie. Taka
metoda przypomina przygotowywanie si do egzaminw. Ciko zapamita
w odpowiedniej kolejnoci poszczeglne kawaki informacji i wiedzie, jak s ze
sob powizane.
Ta ksika jest inna. Cho wikszo ksiek korzysta z wyej omwionej metodyki, ta pokazuje diametralne zmiany w sposobie przekazywania wiedzy. Zamiast
zawiera 300 stron przytaczajcej teorii, ksika przede wszystkim koncentruje
si na kilku praktycznych projektach, ktre Czytelnik zrealizuje we wasnym
zakresie. Projekty te dotycz aplikacji internetowych. Ponadto, zdobywajc wiedz
o tworzeniu rnych aplikacji, Czytelnik nie tylko lepiej zrozumie jzyk PHP
i serwer MySQL, lecz rwnie w wikszym stopniu nabdzie umiejtno projektowania rzeczywistych aplikacji.
Projekty, ktre bd realizowane w ksice, dotycz nastpujcych zastosowa
internetowych:

zwyka witryna internetowa,


dziennik internetowy,
witryna aukcyjna,
koszyk zakupw,
fora dyskusyjne,
witryna zarzdzajca list czsto zadawanych pyta FAQ

(Frequently Asked Questions),

witryna informacyjna,
niezalena aplikacja PHP,
prosty kalendarz w technologii AJAX.

Kady projekt daje moliwo opanowania nowych umiejtnoci i koncentruje si na konkretnych wyzwaniach.

Technologia
Nie powinno by zaskoczeniem, e technologia wykorzystana w ksice do tworzenia aplikacji internetowych to jzyk PHP i serwer MySQL. Jeli Czytelnik
znalaz ksik w dziale ksigarni dotyczcym technologii ASP (Active Server
Pages), obawiam si, e kto sobie w niemiy sposb zaartowa.
Gdy jzyk PHP i serwer MySQL poczy si ze sob, uzyska si solidny szkielet
pozwalajcy projektowa elastyczne aplikacje internetowe o duych moliwociach.
Powodem dobrej wsppracy obu technologii jest to, e kada zapewnia rozbudowany zestaw internetowych narzdzi programistycznych. W przypadku projektowania dowolnej aplikacji internetowej przede wszystkim trzeba mie odpowiednie rodowisko umoliwiajce tworzenie dynamicznych stron oraz funkcji
obsugujcych i przetwarzajcych dane, czcych si z zasobami, zarzdzajcych
uytkownikami i wykonujcych inne zadania. Jzyk PHP spenia te wymagania.
Jest to wyjtkowo elastyczny jzyk oferujcy pokany wachlarz funkcji radzcych
sobie z typowymi wyzwaniami towarzyszcymi projektowaniu aplikacji internetowych, z ktrych wiele przedstawiono w ramach projektw zamieszczonych
w ksice. Nastpnie trzeba mie rozwizanie pozwalajce magazynowa spore
iloci danych, ktre bd wywietlane, aktualizowane, usuwane, modyfikowane
i w inny sposb przetwarzane. W tym celu naley skorzysta z bazy danych. MySQL
jest niezawodnym, elastycznym i atwym w obsudze serwerem bazodanowym.
Zanim przyjrzymy si modelowi dziaania aplikacji internetowych, w niniejszym
rozdziale bardziej szczegowo zostan przedstawione niezbdne narzdzia pracy.

20

Rozdzia 1

Jzyk PHP
PHP jest popularnym jzykiem skryptowym wysokiego poziomu wykorzystywanym przez wiele organizacji i projektantw. Pierwotnie jzyk PHP, stworzony
w ramach niewielkiego projektu opartego na jzyku Perl pod koniec 1995 r. przez
Rasmusa Lerdorfa, mia uatwi swojemu twrcy zaprojektowanie wasnej strony
internetowej. W zwizku z tym Lerdorf nada jzykowi nazw PHP (ang. Personal
Home Page osobista strona domowa).
Gdy Lerdorf zacz pracowa dla uczelni University of Toronto i projektowa
system obsugujcy poczenia telefoniczne dajce studentom dostpu do internetu, nie dysponowa adnymi rodkami pozwalajcymi czy strony internetowe
z bazami danych. Dlatego Lerdorf zastpi kod jzyka Perl interfejsem napisanym
w jzyku C, ktry oferowa moliwo nawizania poczenia midzy stronami
internetowymi a serwerem bazodanowym MySQL. Gdy pocztkowo niewielki
projekt Lerdorfa zacz si rozrasta, autor udostpni go w internecie w wersji
open source, liczc na udoskonalenia dokonywane przez innych programistw
zainteresowanych jzykiem PHP. W pniejszym czasie skrt PHP przyj aktualne rekurencyjne rozwinicie, czyli PHP Hypertext Preprocessor (ukute przez
Zeeva Suraskiego i Andiego Gutmansa, ktrzy w 1997 r. ponownie napisali analizator skadni). Oprogramowanie cay czas byo rozwijane i obecnie ma posta
rozbudowanej platformy.
PHP jest solidnym i dobrze zdefiniowanym jzykiem uwzgldniajcym midzy
innymi obsug programowania zorientowanego obiektowo, warunkw, plikw
i operacji arytmetycznych. Pod wzgldem semantycznym jzyk PHP przypomina
jzyk skryptowy powoki rozbudowany o prostsze elementy jzyka C.
Jzyk PHP wpisuje si w filozofi jzykw programowania, ktre oferuj
rozbudowan i uniwersaln standardow bibliotek. Ponadto jzyk ten w duym
zakresie obsuguje mnstwo rozwiza, takich jak pliki cookies, formularze, sesje,
pliki nagwkowe, gniazda sieciowe, poczta elektroniczna oraz protokoy LDAP,
IRC i inne. Obsuga baz danych uwzgldnia nie tylko serwer MySQL, ale rwnie wiele innych, midzy innymi PostgreSQL, Oracle, MS SQL, dBase, Sybase
i DB2. Tak rozbudowana obsuga baz danych okae si przydatna, gdy kiedykolwiek trzeba bdzie przystosowa aplikacj do wsppracy z inn baz.
PHP mona zastosowa nie tylko do tworzenia aplikacji internetowych, ale
take w roli jzyka skryptowego powoki. Oznacza to, e za pomoc jednego jzyka
mona projektowa aplikacje internetowe i pisa skrypty powoki zarzdzajce
prac komputerw. Moliwe jest nawet uycie jzyka PHP do tworzenia aplikacji
przeznaczonych dla stacji roboczych. Cho to zastosowanie zwykle jest zwizane
z bardziej ekscentryczn czci entuzjastw jzyka PHP, coraz wicej programistw si do niego przekonuje.
Jzyk PHP nie ogranicza si do wasnych funkcji i obsuguje zewntrzne funkcje za porednictwem biblioteki PEAR (PHP Extension and Application Repository). Biblioteka ta dziaa podobnie do moduw CPAN jzyka Perl i zapewnia
dodatkow funkcjonalno, ktra jest atwo dostpna za pomoc kilku wbudowanych niezalenych moduw rozwizujcych okrelone problemy. Te specjalne
moduy mona doda do wasnej aplikacji i uzyska dostp do oferowanych przez
Nowa metodyka

21

nie moliwoci. Jeli na przykad za pomoc aplikacji internetowej trzeba wysa


wiadomo pocztow, mona uy specjalnej funkcji pocztowej biblioteki PEAR,
ktra rozbudowuje obsug poczty elektronicznej przez jzyk PHP. Dziki temu
jzyk PHP lepiej obsuguje zewntrzne rozszerzenia. W efekcie pojawia si
ogromna liczba darmowych moduw PEAR.

Serwer MySQL
MySQL jest rozbudowanym relacyjnym serwerem bazodanowym o duych
moliwociach, w pierwotnej wersji stworzonym przez Davida Axmarka, Allana
Larssona i Michaela Monty Wideniusa. Zaoona przez nich komercyjna organizacja MySQL AB zajmuje si rozwijaniem i sprzeda serwera MySQL, a take
towarzyszcych mu produktw. Cho pocztkowo projekt serwera MySQL by
realizowany na zasadach open source, jego twrcy byli przewiadczeni, e mog
rozpocz dziaalno biznesow opart na tym produkcie. Dziki firmie projektanci mog w penym zakresie zajmowa si oprogramowaniem, co przynosi
korzyci zarwno spoecznoci open source, jak i komercyjnym uytkownikom
serwera MySQL. Pod wzgldem funkcjonalnym darmowe i komercyjne wersje
serwera MySQL s jednakowe. Jedyna rnica tkwi w sposobie licencjonowania
(firmy musz naby licencj, jeli zamierzaj zastosowa serwer MySQL w celach
komercyjnych). Serwer MySQL zyska ogromn popularno. Korzystaj z niego
takie firmy, jak Yahoo! Finance, MP3.com, Motorola, NASA, Silicon Graphics
i Texas Instruments.
MySQL jest w peni funkcjonalnym serwerem bazodanowym wykorzystujcym
otwarte standardy, takie jak ANSI SQL 99 (umoliwia komunikacj z bazami
danych za pomoc jzyka SQL Structured Query Language). Standard ten
zapewnia rodki pozwalajce wstawia, aktualizowa i pobiera informacje z bazy
danych przy uyciu jzyka bdcego standardem przemysowym. Jzyk SQL jest
stosowany zarwno w przypadku produktw bazodanowych, jak i innych. Serwer
MySQL obsuguje kilka dodatkowych instrukcji jzyka SQL. Serwer MySQL
nie tylko ma status standardu, jest te wieloplatformowy. Oznacza to, e mona
go uruchomi nie tylko na Linuksie, ale take na innych systemach operacyjnych,
takich jak Windows, Mac OS X, BSD lub inne warianty Uniksa.
Sam serwer bazodanowy uwzgldnia interaktywnego klienta trybu wiersza
polece, ktry umoliwia komunikowanie si z nim. Cho klient jest przydatny,
moe wywoa obawy u pocztkujcych uytkownikw, niezaznajomionych z wierszem polece. Na szczcie istnieje kilka graficznych klientw bazujcych na
przegldarce internetowej, dziki ktrym mona unikn kontaktu z wierszem
polece (w ksice intensywnie wykorzystuje si jednego z takich klientw o nazwie
phpMyAdmin). Serwer MySQL obsuguje te kilka jzykw programowania
pozwalajcych uzyska dostp do bazy danych i pobra z niej informacje. Spord
tych jzykw wymiemy: PHP, Pythona, Perla, C, C++ i Jav. Cho na pocztku
w celu wysyania zapyta bazodanowych mona korzysta wycznie z jzyka PHP,
obsuga wielu jzykw bdzie przydatna, gdy konieczne okae si utworzenie
moduw i aplikacji za pomoc innych jzykw.

22

Rozdzia 1

Dziaanie dynamicznej aplikacji internetowej


Na najbardziej podstawowym poziomie jzyk PHP i serwer MySQL zapewniaj
rodki umoliwiajce dystrybucj dynamicznej treci do urzdzenia sieciowego.
Mona tu przytoczy przykady komputera wujka Janka czcego si ze stron
internetow, usugi dostarczania czcej si bezprzewodowo ze swoj sieci ledzc lub uytkownika uzyskujcego dostp do skrzynki pocztowej za porednictwem witryny WWW. Kade z tych rnych zastosowa w zasadzie korzysta
z takich samych skadnikw programowych, ktre komunikuj si ze sob ponad
podziaami sprztowymi. Projektowanie klient-serwer jest technicznym okreleniem typu programowania, ktry stosuje si w przypadku jzyka PHP i serwera
MySQL. Aby Czytelnik w peni zrozumia to zagadnienie, w rozdziale przedstawiono kilka przykadw i objaniono, jak informacja jest przekazywana midzy
skadnikami internetu.
Mona sobie wyobrazi dowoln stron internetow. Niech Czytelnik troch
pofantazjuje i pomyli, e jest tajnym szpiegiem i tak si skada, e dysponuje
witryn WWW z ulubionymi zabawkami szpiegowskimi. Zamy, e witryna
wywietla podstawowy kod HTML zrozumiay dla przegldarki internetowej i nic
ponadto. Strona internetowa zawiera wycznie list uwzgldniajc szpiegowski
materia i nie oferuje interaktywnoci. Po prostu naley nawiza poczenie
z witryn WWW o adresie www.adres.com. W efekcie zostanie wywietlona jej
zawarto. Na rysunku 1.1 pokazano typ interakcji wystpujcy w przypadku
tego przykadu.

Rysunek 1.1. Metoda czenia si przegldarki internetowej z witryn WWW


W przykadzie klient czy si z serwerem WWW (w tym przypadku z serwerem Apache) i da strony HTML. Po nawizaniu poczenia serwer Apache
zwraca klientowi dan stron. Serwer Apache peni rol porednika odbierajcego dania i wysyajcego odpowiedzi klientowi.
Rysunek 1.2 przedstawia troch bardziej zoony przykad tego, jak funkcjonuje formularz HTML pobierajcy dane.
Jeli analiz diagramu rozpocz od jego prawego grnego naronika, mona
zauway, e w pierwszej kolejnoci przegldarka internetowa da formularza
HTML. Serwer Apache odpowiada i odsya jej formularz. Uytkownik nastpnie
wypenia formularz i przekazuje go z powrotem serwerowi Apache, ktry wysya
klientowi stron potwierdzajc. Kierujc si wskazwkami, mona zorientowa
si, jak przebiega proces przekazywania informacji midzy klientem i serwerem.

Nowa metodyka

23

Rysunek 1.2. Obsuga formularza HTML przez klienta i serwer

Nastpny przykad, przedstawiony na rysunku 1.3, demonstruje, co si stanie,


gdy poprzedni przykad zostanie rozbudowany o serwer bazodanowy. W tym
przypadku nie tylko uytkownik wypeni formularz, ale rwnie jego zawarto
zostanie zapisana w bazie danych. Aby tak byo, po pobraniu przez witryn WWW
zawartoci formularza trzeba bdzie uwzgldni dodatkowy krok. Witryna musi
wysa stron potwierdzajc i umieci dane w bazie. Poniewa druga z wymienionych operacji jest jednokierunkowa, na rysunku nie ma widocznej strzaki
z dwoma grotami.

Rysunek 1.3. Po dodaniu bazy danych przepyw informacji jest troch inny

Model widoczny na rysunku 1.3 jest niemal taki sam jak pokazany na rysunku 1.2. Rni si tym, e dodano dodatkowy etap. Poza umieszczeniem informacji
w bazie danych trzeba te mie moliwo ich pobrania w celu wywietlenia wynikw. Na rysunku 1.4 wida klienta dajcego formularza (na przykad wyszukujcego), a nastpnie wysyajcego go z wprowadzonymi szczegami. Wyniki
zwrcone w odpowiedzi na zapytanie skierowane do bazy danych s przekazywane klientowi.

24

Rozdzia 1

Rysunek 1.4. Typowy przypadek: uytkownik wypenia formularz i uzyskuje dane z bazy

W tym przykadzie najpierw od serwera dany jest formularz. Serwer przekazuje formularz przegldarce, a nastpnie uytkownik umieszcza w nim wymagane informacje i wysya go. W dalszej kolejnoci serwer odbiera szukany cig
i da od bazy danych pobrania pozycji, ktre zawieraj szukane dane. Serwer
bazodanowy wyszukuje odpowiednie dane i przekazuje je serwerowi Apache,
ktry przesya je klientowi.
Przedstawione przykady modelu klient-serwer korzystaj z do lunych definicji rnych skadnikw (baza danych, serwer WWW i przegldarka) wchodzcych w ich skad. Chodzi o to, aby mona byo skupi si na tym, w jaki sposb
dane s przekazywane midzy rnymi podstawowymi elementami architektury
klient-serwer.
Ostatni przykad (rysunek 1.5) szczegowo wyjania, jak kady krok przebiega
w kadym z wyej wymienionych skadnikw.

Rysunek 1.5. Kady numer odnosi si do niej zamieszczonego punktu

Nowa metodyka

25

1. Uytkownik wprowadza adres w oknie przegldarki internetowej (klient),

aby uzyska dostp do witryny WWW. W ramach nawizywanego


poczenia jest te dana strona HTML zawierajca formularz.
2. Przegldarka czy si z serwerem Apache, ktry przechowuje pliki

HTML i PHP tworzce witryn WWW. Apache obsuguje danie


(zgodnie z reguami zdefiniowanymi w jego pliku konfiguracyjnym,
ktre umoliwiaj zlokalizowanie odpowiedniej strony i jej wysanie)
i odsya klientowi stron internetow uwzgldniajc formularz HTML.
3. Uytkownik wypenia formularz wywietlony w oknie przegldarki,

a nastpnie przesya go serwerowi.


4. Serwer Apache odbiera wypeniony formularz i otwiera odpowiedni

plik w celu dostarczenia formularza. Plik zawiera kod jzyka PHP


realizujcy poczenie z baz danych. Kod ten jest przekazywany
przez serwer Apache interpreterowi jzyka PHP, ktry go wykonuje.
Kod czy si z serwerem MySQL (moe znajdowa si na tym samym
lub innym komputerze; nie jest to istotne). Po poczeniu si za pomoc
jzyka SQL (suy do komunikowania si z bazami danych) jest tworzone
danie pobrania informacji.
5. Serwer bazodanowy MySQL otrzymuje danie SQL i szuka danych.

Po ich zlokalizowaniu wynik jest przekazywany skryptowi PHP,


ktry wygenerowa danie.
6. Skrypt PHP otrzymuje od serwera MySQL wynik i zanim wyle go

przegldarce internetowej (klient), tworzy stron HTML zawierajc


rezultat.
7. Przegldarka odbiera wynik zapytania w postaci strony HTML,

ktr wywietla uytkownikowi.


W zwizku z tym procesem naley zapamita kilka istotnych rzeczy. Warto
zapozna si z poniszymi kluczowymi uwagami, a nastpnie ponownie przeanalizowa proces w celu wyeliminowania wszelkich niejasnoci.
Przede wszystkim naley podkreli, e dla przegldarki internetowej zrozumiay jest jzyk HTML, lecz nie PHP (oczywicie przyjto, e przykad uwzgldnia
wszystkie przegldarki, cho niektre z nich mog obsugiwa jzyki skryptowe,
takie jak JavaScript; w przykadzie nie wzito tego pod uwag). Komunikacja
realizowana przez przegldark internetow bazuje na jzyku HTML (std
w kroku 6. wyniki zapytania wysanego do serwera MySQL zostay zamienione
na hipertekst). Nastpn kwesti jest cise powizanie jzyka PHP z serwerem
Apache. Wszystkie poczenia i zapytania bazodanowe s umieszczane w skrypcie
PHP. Tak silna integracja ma na celu uzyskanie wysokiej wydajnoci. Jzyk PHP
mona potraktowa jak porednika przy uzyskiwaniu dostpu do baz danych,
plikw, danych XML itp. Porednik ten wysya wszystko z komputera, korzystajc
z serwera Apache. Serwer MySQL powinien by uwaany wycznie za urzdzenie
magazynujce dane, ktre bdzie przydatne tylko wtedy, gdy zostanie nawizane
z nim poczenie w celu dodania, usunicia, aktualizacji lub pobrania informacji.

26

Rozdzia 1

Serwer MySQL moe by odpowiednikiem dysku twardego komputera, ktry


okae si przydatny, tylko jeli oprogramowanie uzyska do niego dostp i zapisze
dane. Jzyk PHP mona przyrwna do takiego oprogramowania.

Podsumowanie
Podobnie jak w przypadku dowolnego materiau, rwnie nauka projektowania
przy wykorzystaniu jzyka PHP i serwera MySQL wie si z koniecznoci
zrozumienia kilku zasadniczych zagadnie, zanim przejdzie si do konkretw.
W celu zapewnienia solidnych podstaw w niniejszym rozdziale przedstawiono
gwne zagadnienia.
W nastpnym rozdziale zostan zaprezentowane podstawy jzyka PHP i serwera MySQL. Czytelnik zapozna si z fundamentalnymi skadnikami jzyka,
a nastpnie od razu zacznie tworzy aplikacj. Kada aplikacja pozwoli zdoby
nowe umiejtnoci, pogbi wiedz i pozna nowe pojcia.

Nowa metodyka

27

You might also like