plik


ÿþPHP i MySQL. 8 komponentów dla kreatywnych webmasterów Autor: Jono Bacon T³umaczenie: Piotr Pilch ISBN: 978-83-246-0957-4 Tytu³ orygina³u: Practical PHP and MySQL(R): Building Eight Dynamic Web Applications Format: B5, stron: 528 Osiem kompletnych przyk³adów zastosowania najpopularniejszych narzêdzi open Source do budowy profesjonalnych witryn internetowych przy u¿yciu PHP i MySQL " Jak stosowaæ PHP do sprawnego generowania stron? " Jak zarz¹dzaæ danymi, wykorzystuj¹c serwer MySQL? " Jak szybko tworzyæ kompletne, dynamiczne aplikacje internetowe? Czas stron statycznych siê skoñczy³! Blogi, fora dyskusyjne, sklepy internetowe, serwisy aukcyjne i informacyjne  dziS o popularnoSci danej strony decyduj¹ przede wszystkim aplikacje dynamiczne pozwalaj¹ce u¿ytkownikom na komunikacjê z witryn¹. WiêkszoSæ stron bazuje na daj¹cej ogromne mo¿liwoSci platformie obejmuj¹cej jêzyk PHP i bazy danych MySQL. Bezp³atny dostêp do tej technologii, jej potencja³ i wydajnoSæ przyczyni³y siê do niesamowitej popularnoSci wSród webmasterów.  PHP i MySQL. 8 komponentów dla kreatywnych webmasterów to wprowadzenie w Swiat popularnej platformy do tworzenia aplikacji sieciowych od strony praktycznej. Krótka czêSæ teoretyczna, dziêki której dowiesz siê, jak zainstalowaæ PHP i MySQL, oraz poznasz podstawy korzystania z tych narzêdzi, to jedynie wstêp do ksi¹¿ki. W czêSci g³ównej przedstawiono techniki stosowania PHP i MySQL na przyk³adzie oSmiu kompletnych, funkcjonalnych aplikacji, które decyduj¹ o atrakcyjnoSci witryny. Pracuj¹c na tych przyk³adach nauczysz siê sprawnie zarz¹dzaæ bazami danych, dynamicznie aktualizowaæ informacje na stronach, obs³ugiwaæ rejestracjê i logowanie, stosowaæ pakiety z repozytorium PEAR oraz wykonywaæ wiele innych operacji przydatnych na profesjonalnych stronach internetowych. " Wprowadzenie do jêzyka PHP i serwera MySQL " Tworzenie dynamicznych aplikacji sieciowych " Projektowanie interfejsu u¿ytkownika " Zarz¹dzanie bazami danych Wydawnictwo Helion " Obs³uga rejestracji i uwierzytelniania ul. KoSciuszki 1c " Administrowanie witrynami 44-100 Gliwice " Stosowanie technologii Ajax tel. 032 230 98 63 " Zarz¹dzanie treSci¹ witryn e-mail: helion@helion.pl " U¿ywanie pakietów z repozytorium PEAR B¹dx kreatywnym webmasterem i buduj dynamiczne strony internetowe! Spis tre[ci O autorze .....................................................................................9 Przedmowa ................................................................................11 Wprowadzenie ..........................................................................13 RozdziaB 1. Nowa metodyka ........................................................................19 Technologia ........................................................................................................20 DziaBanie dynamicznej aplikacji internetowej ..................................................23 Podsumowanie ...................................................................................................27 RozdziaB 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 Aczenie si z serwerem MySQL za pomoc skryptu PHP .............................59 Podsumowanie ...................................................................................................65 RozdziaB 3. Uruchamianie projektów ..........................................................67 Zastosowanie [rodowiska XAMPP ....................................................................67 Podsumowanie ...................................................................................................70 RozdziaB 4. Dziennik internetowy ...............................................................71 Przegld projektu  przypadek u|ycia dziennika Blogtastic ..........................72 Definiowanie bazy danych .................................................................................73 Rozpoczcie pisania kodu ..................................................................................76 Przegldanie wybranych wpisów ...................................................................... 90 Tworzenie przegldarki kategorii ................................................................... 100 Decydowanie, kto mo|e si zalogowa ........................................................... 103 Definiowanie wBasnych kategorii .................................................................... 109 Tworzenie nowych wpisów blogu ................................................................... 111 Aktualizowanie wpisu blogu ........................................................................... 114 Podsumowanie ................................................................................................. 119 RozdziaB 5. Fora dyskusyjne ......................................................................121 Co jest pod mask? .......................................................................................... 121 Tworzenie wBasnego forum ............................................................................. 124 Zanim rozpocznie si realizacj projektu ....................................................... 124 Tworzenie bazy danych ................................................................................... 125 Projektowanie wygldu witryny ...................................................................... 131 Wy[wietlanie forów ......................................................................................... 133 Zarzdzanie logowaniem u|ytkowników ........................................................ 143 Wiadomo[ci i odpowiadanie na nie ................................................................ 161 Tworzenie stron administracyjnych ................................................................ 169 Podsumowanie ................................................................................................. 178 RozdziaB 6. Koszyk zakupów ......................................................................181 Przegld projektu ............................................................................................ 181 Tworzenie bazy danych ................................................................................... 182 Rozpoczcie pisania kodu ............................................................................... 187 Zarzdzanie logowaniem u|ytkowników ........................................................ 192 Wy[wietlanie i wybieranie produktów ........................................................... 196 PBacenie za produkty ....................................................................................... 208 Strony administracyjne .................................................................................... 219 Podsumowanie ................................................................................................. 227 RozdziaB 7. Witryna aukcji internetowych ................................................229 Przegld projektu ............................................................................................ 230 Tworzenie bazy danych ................................................................................... 230 Rozpoczcie pisania kodu ............................................................................... 233 Wy[wietlanie pozycji aukcji ............................................................................ 236 ObsBuga u|ytkowników ................................................................................... 252 Dodawanie pozycji .......................................................................................... 255 ObsBuga licytacji .............................................................................................. 271 Planowanie wczytywania strony ..................................................................... 275 Podsumowanie ................................................................................................. 276 RozdziaB 8. Kalendarz internetowy ...........................................................277 Przegld projektu ............................................................................................ 277 Tworzenie bazy danych ................................................................................... 278 Rozpoczcie pisania kodu ............................................................................... 280 Przegldanie wydarzeD .................................................................................... 288 Podsumowanie ................................................................................................. 314 6 PHP i MySQL. 8 komponentów dla kreatywnych webmasterów RozdziaB 9. System zarzdzajcy tre[ci pytaD i odpowiedzi ..................315 Przegld projektu .............................................................................................316 Projektowanie bazy danych .............................................................................317 Rozpoczcie tworzenia kodu ...........................................................................322 Wy[wietlanie pytaD ..........................................................................................333 ObsBuga logowania ...........................................................................................343 Dodawanie i ocenianie pytaD ..........................................................................354 Zarzdzanie tematami ......................................................................................369 Zarzdzanie wtkami ........................................................................................374 Prawo wBasno[ci do tematu ..............................................................................378 Podsumowanie .................................................................................................391 RozdziaB 10. Projekt wielokrotnego u|ycia ................................................393 Przegld projektu .............................................................................................394 Projektowanie bazy danych .............................................................................396 Inteligentne u|ywanie katalogów ....................................................................399 Rozpoczcie pisania kodu  tworzenie szkieletu ..........................................400 Pobieranie dystrybucji .....................................................................................408 Przegldanie zrzutów ekranu ..........................................................................410 Przegldarka dostpnych projektów ...............................................................411 Zarzdzanie projektami ....................................................................................413 Modyfikowanie ogólnych ustawieD .................................................................420 Zarzdzanie plikami do pobrania .....................................................................422 Usuwanie dystrybucji .......................................................................................428 Zarzdzanie zrzutami ekranu ...........................................................................430 Usuwanie obrazów ...........................................................................................434 Dodawanie nowego projektu ...........................................................................435 Wdra|anie projektu w obrbie aplikacji .........................................................436 Podsumowanie .................................................................................................438 RozdziaB 11. Witryna informacyjna .............................................................441 Przegld projektu .............................................................................................442 Instalowanie moduBów PEAR .........................................................................442 Projektowanie bazy danych .............................................................................445 Rozpoczcie tworzenia kodu ...........................................................................448 ObsBuga logowania u|ytkowników ..................................................................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 tre[ ci 7 Nowa metodyka panowanie umiejtno[ci programowania zawsze byBo trudn sztuk. Pomimo zadziwiajco du|ej dostpno[ci dokumentacji, podrczników, O stron internetowych, materiaBów wideo, ksi|ek i innych zasobów w grun- cie rzeczy nauka programowania w dalszym cigu nie jest prosta, zwBaszcza gdy nie jest si studentem wydziaBu informatycznego. Jedn z gBównych przyczyn jest to, |e zwykle analizowanie kodu zródBowego przebiega w nienaturalny sposób. Wikszo[ ksi|ek i podrczników wydaje si pod|a [cie|k dokBadnego obja[niania mniej istotnych szczegóBów jzyka, a nastpnie przedstawiania na ich podstawie bardziej zBo|onych zagadnieD. Taka metoda przypomina przygotowywanie si do egzaminów. Ci|ko zapamita w odpowiedniej kolejno[ci poszczególne kawaBki informacji i wiedzie, jak s ze sob powizane. Ta ksi|ka jest inna. Cho wikszo[ ksi|ek korzysta z wy|ej omówionej meto- dyki, ta pokazuje diametralne zmiany w sposobie przekazywania wiedzy. Zamiast zawiera 300 stron przytBaczajcej teorii, ksi|ka przede wszystkim koncentruje si na kilku praktycznych projektach, które Czytelnik zrealizuje we wBasnym zakresie. Projekty te dotycz aplikacji internetowych. Ponadto, zdobywajc wiedz o tworzeniu ró|nych aplikacji, Czytelnik nie tylko lepiej zrozumie jzyk PHP i serwer MySQL, lecz równie| w wikszym stopniu nabdzie umiejtno[ projek- towania rzeczywistych aplikacji. Projekty, które bd realizowane w ksi|ce, dotycz nastpujcych zastosowaD internetowych:  % zwykBa witryna internetowa,  % dziennik internetowy,  % witryna aukcyjna,  % koszyk zakupów,  % fora dyskusyjne,  % witryna zarzdzajca list czsto zadawanych pytaD FAQ (Frequently Asked Questions),  % witryna informacyjna,  % niezale|na aplikacja PHP,  % prosty kalendarz w technologii AJAX. Ka|dy projekt daje mo|liwo[ opanowania nowych umiejtno[ci i koncen- truje si na konkretnych wyzwaniach. Technologia Nie powinno by zaskoczeniem, |e technologia wykorzystana w ksi|ce do two- rzenia aplikacji internetowych to jzyk PHP i serwer MySQL. Je[li Czytelnik znalazB ksi|k w dziale ksigarni dotyczcym technologii ASP (Active Server Pages), obawiam si, |e kto[ sobie w niemiBy sposób za|artowaB. Gdy jzyk PHP i serwer MySQL poBczy si ze sob, uzyska si solidny szkielet pozwalajcy projektowa elastyczne aplikacje internetowe o du|ych mo|liwo[ciach. Powodem dobrej wspóBpracy obu technologii jest to, |e ka|da zapewnia rozbu- dowany zestaw internetowych narzdzi programistycznych. W przypadku pro- jektowania dowolnej aplikacji internetowej przede wszystkim trzeba mie odpo- wiednie [rodowisko umo|liwiajce tworzenie dynamicznych stron oraz funkcji obsBugujcych i przetwarzajcych dane, Bczcych si z zasobami, zarzdzajcych u|ytkownikami i wykonujcych inne zadania. Jzyk PHP speBnia te wymagania. Jest to wyjtkowo elastyczny jzyk oferujcy pokazny wachlarz funkcji radzcych sobie z typowymi wyzwaniami towarzyszcymi projektowaniu aplikacji inter- netowych, z których wiele przedstawiono w ramach projektów zamieszczonych w ksi|ce. Nastpnie trzeba mie rozwizanie pozwalajce magazynowa spore ilo[ci danych, które bd wy[wietlane, aktualizowane, usuwane, modyfikowane i w inny sposób przetwarzane. W tym celu nale|y skorzysta z bazy danych. MySQL jest niezawodnym, elastycznym i Batwym w obsBudze serwerem bazodanowym. Zanim przyjrzymy si modelowi dziaBania aplikacji internetowych, w niniejszym rozdziale bardziej szczegóBowo zostan przedstawione niezbdne narzdzia pracy. 20 RozdziaB 1 Jzyk PHP PHP jest popularnym jzykiem skryptowym wysokiego poziomu wykorzysty- wanym przez wiele organizacji i projektantów. Pierwotnie jzyk PHP, stworzony w ramach niewielkiego projektu opartego na jzyku Perl pod koniec 1995 r. przez Rasmusa Lerdorfa, miaB uBatwi swojemu twórcy zaprojektowanie wBasnej strony internetowej. W zwizku z tym Lerdorf nadaB jzykowi nazw PHP (ang. Personal Home Page  osobista strona domowa). Gdy Lerdorf zaczB pracowa dla uczelni University of Toronto i projektowa system obsBugujcy poBczenia telefoniczne dajce studentom dostpu do interne- tu, nie dysponowaB |adnymi [rodkami pozwalajcymi Bczy strony internetowe z bazami danych. Dlatego Lerdorf zastpiB kod jzyka Perl interfejsem napisanym w jzyku C, który oferowaB mo|liwo[ nawizania poBczenia midzy stronami internetowymi a serwerem bazodanowym MySQL. Gdy pocztkowo niewielki projekt Lerdorfa zaczB si rozrasta, autor udostpniB go w internecie w wersji open source, liczc na udoskonalenia dokonywane przez innych programistów zainteresowanych jzykiem PHP. W pózniejszym czasie skrót PHP przyjB aktu- alne rekurencyjne rozwinicie, czyli PHP Hypertext Preprocessor (ukute przez Zeeva Suraskiego i Andiego Gutmansa, którzy w 1997 r. ponownie napisali ana- lizator skBadni). Oprogramowanie caBy czas byBo rozwijane i obecnie ma posta rozbudowanej platformy. PHP jest solidnym i dobrze zdefiniowanym jzykiem uwzgldniajcym midzy innymi obsBug programowania zorientowanego obiektowo, warunków, plików i operacji arytmetycznych. Pod wzgldem semantycznym jzyk PHP przypomina jzyk skryptowy powBoki rozbudowany o prostsze elementy jzyka C. Jzyk PHP wpisuje si w filozofi jzyków programowania, które oferuj rozbudowan i uniwersaln standardow bibliotek. Ponadto jzyk ten w du|ym zakresie obsBuguje mnóstwo rozwizaD, takich jak pliki cookies, formularze, sesje, pliki nagBówkowe, gniazda sieciowe, poczta elektroniczna oraz protokoBy LDAP, IRC i inne. ObsBuga baz danych uwzgldnia nie tylko serwer MySQL, ale rów- nie| wiele innych, midzy innymi PostgreSQL, Oracle, MS SQL, dBase, Sybase i DB2. Tak rozbudowana obsBuga baz danych oka|e si przydatna, gdy kiedy- kolwiek trzeba bdzie przystosowa aplikacj do wspóBpracy z inn baz. PHP mo|na zastosowa nie tylko do tworzenia aplikacji internetowych, ale tak|e w roli jzyka skryptowego powBoki. Oznacza to, |e za pomoc jednego jzyka mo|na projektowa aplikacje internetowe i pisa skrypty powBoki zarzdzajce prac komputerów. Mo|liwe jest nawet u|ycie jzyka PHP do tworzenia aplikacji przeznaczonych dla stacji roboczych. Cho to zastosowanie zwykle jest zwizane z bardziej ekscentryczn cz[ci entuzjastów jzyka PHP, coraz wicej progra- mistów si do niego przekonuje. Jzyk PHP nie ogranicza si do wBasnych funkcji i obsBuguje zewntrzne funk- cje za po[rednictwem biblioteki PEAR (PHP Extension and Application Repo- sitory). Biblioteka ta dziaBa podobnie do moduBów CPAN jzyka Perl i zapewnia dodatkow funkcjonalno[, która jest Batwo dostpna za pomoc kilku wbudo- wanych niezale|nych moduBów rozwizujcych okre[lone problemy. Te specjalne moduBy mo|na doda do wBasnej aplikacji i uzyska dostp do oferowanych przez Nowa metodyka 21 nie mo|liwo[ci. Je[li na przykBad za pomoc aplikacji internetowej trzeba wysBa wiadomo[ pocztow, mo|na u|y specjalnej funkcji pocztowej biblioteki PEAR, która rozbudowuje obsBug poczty elektronicznej przez jzyk PHP. Dziki temu jzyk PHP lepiej obsBuguje zewntrzne rozszerzenia. W efekcie pojawiBa si ogromna liczba darmowych moduBów PEAR. Serwer MySQL MySQL jest rozbudowanym relacyjnym serwerem bazodanowym o du|ych mo|liwo[ciach, w pierwotnej wersji stworzonym przez Davida Axmarka, Allana Larssona i Michaela  Monty Wideniusa. ZaBo|ona przez nich komercyjna orga- nizacja MySQL AB zajmuje si rozwijaniem i sprzeda| serwera MySQL, a tak|e towarzyszcych mu produktów. Cho pocztkowo projekt serwera MySQL byB realizowany na zasadach open source, jego twórcy byli prze[wiadczeni, |e mog rozpocz dziaBalno[ biznesow opart na tym produkcie. Dziki firmie pro- jektanci mog w peBnym zakresie zajmowa si oprogramowaniem, co przynosi korzy[ci zarówno spoBeczno[ci open source, jak i komercyjnym u|ytkownikom serwera MySQL. Pod wzgldem funkcjonalnym darmowe i komercyjne wersje serwera MySQL s jednakowe. Jedyna ró|nica tkwi w sposobie licencjonowania (firmy musz naby licencj, je[li zamierzaj zastosowa serwer MySQL w celach komercyjnych). Serwer MySQL zyskaB ogromn popularno[. Korzystaj z niego takie firmy, jak Yahoo! Finance, MP3.com, Motorola, NASA, Silicon Graphics i Texas Instruments. MySQL jest w peBni funkcjonalnym serwerem bazodanowym wykorzystujcym otwarte standardy, takie jak ANSI SQL 99 (umo|liwia 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 u|yciu jzyka bdcego standardem przemysBowym. Jzyk SQL jest stosowany zarówno w przypadku produktów bazodanowych, jak i innych. Serwer MySQL obsBuguje kilka dodatkowych instrukcji jzyka SQL. Serwer MySQL nie tylko ma status standardu, jest te| wieloplatformowy. Oznacza to, |e mo|na go uruchomi nie tylko na Linuksie, ale tak|e na innych systemach operacyjnych, takich jak Windows, Mac OS X, BSD lub inne warianty Uniksa. Sam serwer bazodanowy uwzgldnia interaktywnego klienta trybu wiersza poleceD, który umo|liwia komunikowanie si z nim. Cho klient jest przydatny, mo|e wywoBa obawy u pocztkujcych u|ytkowników, niezaznajomionych z wier- szem poleceD. Na szcz[cie istnieje kilka graficznych klientów bazujcych na przegldarce internetowej, dziki którym mo|na unikn kontaktu z wierszem poleceD (w ksi|ce intensywnie wykorzystuje si jednego z takich klientów o nazwie phpMyAdmin). Serwer MySQL obsBuguje te| kilka jzyków programowania pozwalajcych uzyska dostp do bazy danych i pobra z niej informacje. Spo[ród tych jzyków wymieDmy: PHP, Pythona, Perla, C, C++ i Jav. Cho na pocztku w celu wysyBania zapytaD bazodanowych mo|na korzysta wyBcznie z jzyka PHP, obsBuga wielu jzyków bdzie przydatna, gdy konieczne oka|e si utworzenie moduBów i aplikacji za pomoc innych jzyków. 22 RozdziaB 1 DziaBanie dynamicznej aplikacji internetowej Na najbardziej podstawowym poziomie jzyk PHP i serwer MySQL zapewniaj [rodki umo|liwiajce dystrybucj dynamicznej tre[ci do urzdzenia sieciowego. Mo|na tu przytoczy przykBady komputera wujka Janka Bczcego si ze stron internetow, usBugi dostarczania Bczcej si bezprzewodowo ze swoj sieci [le- dzc lub u|ytkownika uzyskujcego dostp do skrzynki pocztowej za po[red- nictwem witryny WWW. Ka|de z tych ró|nych zastosowaD w zasadzie korzysta z takich samych skBadników programowych, które komunikuj si ze sob ponad podziaBami sprztowymi. Projektowanie klient-serwer jest technicznym okre[le- niem typu programowania, który stosuje si w przypadku jzyka PHP i serwera MySQL. Aby Czytelnik w peBni zrozumiaB to zagadnienie, w rozdziale przedsta- wiono kilka przykBadów i obja[niono, jak informacja jest przekazywana midzy skBadnikami internetu. Mo|na sobie wyobrazi dowoln stron internetow. Niech Czytelnik troch pofantazjuje i pomy[li, |e jest tajnym szpiegiem i tak si skBada, |e dysponuje witryn WWW z ulubionymi  zabawkami szpiegowskimi. ZaBó|my, |e witryna wy[wietla podstawowy kod HTML zrozumiaBy dla przegldarki internetowej i nic ponadto. Strona internetowa zawiera wyBcznie list uwzgldniajc szpiegowski materiaB i nie oferuje interaktywno[ci. Po prostu nale|y nawiza poBczenie z witryn WWW o adresie www.adres.com. W efekcie zostanie wy[wietlona jej zawarto[. Na rysunku 1.1 pokazano typ interakcji wystpujcy w przypadku tego przykBadu. Rysunek 1.1. Metoda Bczenia si przegldarki internetowej z witryn WWW W przykBadzie klient Bczy si z serwerem WWW (w tym przypadku z ser- werem Apache) i |da strony HTML. Po nawizaniu poBczenia serwer Apache zwraca klientowi |dan stron. Serwer Apache peBni rol po[rednika odbiera- jcego |dania i wysyBajcego odpowiedzi klientowi. Rysunek 1.2 przedstawia troch bardziej zBo|ony przykBad tego, jak funkcjo- nuje formularz HTML pobierajcy dane. Je[li analiz diagramu rozpocz od jego prawego górnego naro|nika, mo|na zauwa|y, |e w pierwszej kolejno[ci przegldarka internetowa |da formularza HTML. Serwer Apache odpowiada i odsyBa jej formularz. U|ytkownik nastpnie wypeBnia formularz i przekazuje go z powrotem serwerowi Apache, który wysyBa klientowi stron potwierdzajc. Kierujc si wskazówkami, mo|na zorientowa si, jak przebiega proces przekazywania informacji midzy klientem i serwerem. Nowa metodyka 23 Rysunek 1.2. ObsBuga formularza HTML przez klienta i serwer Nastpny przykBad, przedstawiony na rysunku 1.3, demonstruje, co si stanie, gdy poprzedni przykBad zostanie rozbudowany o serwer bazodanowy. W tym przypadku nie tylko u|ytkownik wypeBni formularz, ale równie| jego zawarto[ zostanie zapisana w bazie danych. Aby tak byBo, po pobraniu przez witryn WWW zawarto[ci formularza trzeba bdzie uwzgldni dodatkowy krok. Witryna musi wysBa stron potwierdzajc i umie[ci dane w bazie. Poniewa| druga z wymie- nionych operacji jest jednokierunkowa, na rysunku nie ma widocznej strzaBki z dwoma grotami. Rysunek 1.3. Po dodaniu bazy danych przepByw informacji jest troch inny Model widoczny na rysunku 1.3 jest niemal taki sam jak pokazany na rysun- ku 1.2. Ró|ni si tym, |e dodano dodatkowy etap. Poza umieszczeniem informacji w bazie danych trzeba te| mie mo|liwo[ ich pobrania w celu wy[wietlenia wy- ników. Na rysunku 1.4 wida klienta |dajcego formularza (na przykBad wyszu- kujcego), a nastpnie wysyBajcego go z wprowadzonymi szczegóBami. Wyniki zwrócone w odpowiedzi na zapytanie skierowane do bazy danych s przekazy- wane klientowi. 24 RozdziaB 1 Rysunek 1.4. Typowy przypadek: u|ytkownik wypeBnia formularz i uzyskuje dane z bazy W tym przykBadzie najpierw od serwera |dany jest formularz. Serwer prze- kazuje formularz przegldarce, a nastpnie u|ytkownik umieszcza w nim wyma- gane informacje i wysyBa go. W dalszej kolejno[ci serwer odbiera szukany cig i |da od bazy danych pobrania pozycji, które zawieraj szukane dane. Serwer bazodanowy wyszukuje odpowiednie dane i przekazuje je serwerowi Apache, który przesyBa je klientowi. Przedstawione przykBady modelu klient-serwer korzystaj z do[ luznych de- finicji ró|nych skBadników (baza danych, serwer WWW i przegldarka) wchodz- cych w ich skBad. Chodzi o to, aby mo|na byBo skupi si na tym, w jaki sposób dane s przekazywane midzy ró|nymi podstawowymi elementami architektury klient-serwer. Ostatni przykBad (rysunek 1.5) szczegóBowo wyja[nia, jak ka|dy krok przebiega w ka|dym z wy|ej wymienionych skBadników. Rysunek 1.5. Ka|dy numer odnosi si do ni|ej zamieszczonego punktu Nowa metodyka 25 1. U|ytkownik wprowadza adres w oknie przegldarki internetowej (klient), aby uzyska dostp do witryny WWW. W ramach nawizywanego poBczenia jest te| |dana strona HTML zawierajca formularz. 2. Przegldarka Bczy si z serwerem Apache, który przechowuje pliki HTML i PHP tworzce witryn WWW. Apache obsBuguje |danie (zgodnie z reguBami zdefiniowanymi w jego pliku konfiguracyjnym, które umo|liwiaj zlokalizowanie odpowiedniej strony i jej wysBanie) i odsyBa klientowi stron internetow uwzgldniajc formularz HTML. 3. U|ytkownik wypeBnia formularz wy[wietlony w oknie przegldarki, a nastpnie przesyBa go serwerowi. 4. Serwer Apache odbiera wypeBniony formularz i otwiera odpowiedni plik w celu dostarczenia formularza. Plik zawiera kod jzyka PHP realizujcy poBczenie z baz danych. Kod ten jest przekazywany przez serwer Apache interpreterowi jzyka PHP, który go wykonuje. Kod Bczy si z serwerem MySQL (mo|e znajdowa si na tym samym lub innym komputerze; nie jest to istotne). Po poBczeniu si za pomoc jzyka SQL (sBu|y 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, który wygenerowaB |danie. 6. Skrypt PHP otrzymuje od serwera MySQL wynik i zanim wy[le go przegldarce internetowej (klient), tworzy stron HTML zawierajc rezultat. 7. Przegldarka odbiera wynik zapytania w postaci strony HTML, któr wy[wietla u|ytkownikowi. W zwizku z tym procesem nale|y zapamita kilka istotnych rzeczy. Warto zapozna si z poni|szymi kluczowymi uwagami, a nastpnie ponownie prze- analizowa proces w celu wyeliminowania wszelkich niejasno[ci. Przede wszystkim nale|y podkre[li, |e dla przegldarki internetowej zrozu- miaBy jest jzyk HTML, lecz nie PHP (oczywi[cie przyjto, |e przykBad uwzgldnia wszystkie przegldarki, cho niektóre z nich mog obsBugiwa jzyki skryptowe, takie jak JavaScript; w przykBadzie nie wzito tego pod uwag). Komunikacja realizowana przez przegldark internetow bazuje na jzyku HTML (std w kroku 6. wyniki zapytania wysBanego do serwera MySQL zostaBy zamienione na hipertekst). Nastpn kwesti jest [cisBe powizanie jzyka PHP z serwerem Apache. Wszystkie poBczenia i zapytania bazodanowe s umieszczane w skrypcie PHP. Tak silna integracja ma na celu uzyskanie wysokiej wydajno[ci. Jzyk PHP mo|na potraktowa jak po[rednika przy uzyskiwaniu dostpu do baz danych, plików, danych XML itp. Po[rednik ten wysyBa wszystko z komputera, korzystajc z serwera Apache. Serwer MySQL powinien by uwa|any wyBcznie za urzdzenie magazynujce dane, które bdzie przydatne tylko wtedy, gdy zostanie nawizane z nim poBczenie w celu dodania, usunicia, aktualizacji lub pobrania informacji. 26 RozdziaB 1 Serwer MySQL mo|e by odpowiednikiem dysku twardego komputera, który oka|e si przydatny, tylko je[li oprogramowanie uzyska do niego dostp i zapisze dane. Jzyk PHP mo|na przyrówna do takiego oprogramowania. Podsumowanie Podobnie jak w przypadku dowolnego materiaBu, równie| nauka projektowania przy wykorzystaniu jzyka PHP i serwera MySQL wi|e si z konieczno[ci zrozumienia kilku zasadniczych zagadnieD, zanim przejdzie si do konkretów. W celu zapewnienia solidnych podstaw w niniejszym rozdziale przedstawiono gBówne zagadnienia. W nastpnym rozdziale zostan zaprezentowane podstawy jzyka PHP i ser- wera MySQL. Czytelnik zapozna si z fundamentalnymi skBadnikami jzyka, a nastpnie od razu zacznie tworzy aplikacj. Ka|da aplikacja pozwoli zdoby nowe umiejtno[ci, pogBbi wiedz i pozna nowe pojcia. Nowa metodyka 27

Wyszukiwarka

Podobne podstrony:
PHP MySQL i Apache dla kazdego Wydanie II pmsadk
PHP MySQL i Apache dla kazdego Wydanie III pmsad3
PHP i MySQL Dla kazdego
PHP i MySQL Dla kazdego Wydanie II phmdk2
PHP i MySQL Wprowadzenie Wydanie II
PHP i MySQL Witryna WWW oparta na bazie danych Wydanie IV
PHP i MySQL Tworzenie aplikacji WWW phmsap
helion php i mysql tworzenie sklepów internetowych
PHP 5 i MySQL Zastosowania e commerce
przykladowe php mysql

więcej podobnych podstron