SlideShare a Scribd company logo
1 of 6
Download to read offline
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TRE CI   PHP5. Tworzenie
                                         stron WWW.
           KATALOG KSI¥¯EK
                                         Æwiczenia praktyczne
                      KATALOG ONLINE     Autorzy: Andrzej Kierzkowski, Robert Janeczek
                                         ISBN: 83-7361-361-7
       ZAMÓW DRUKOWANY KATALOG           Format: B5, stron: 188


              TWÓJ KOSZYK
                    DODAJ DO KOSZYKA      Statyczne strony WWW ju¿ nie spe³niaj¹ Twoich oczekiwañ? Chcesz zamie ciæ
                                         na swojej stronie liczniki, forum dyskusyjne, ksiêgê go ci, ankietê i inne elementy
                                         interaktywne? Mo¿e potrzebny Ci jest mechanizm umo¿liwiaj¹cy generacjê tre ci strony
         CENNIK I INFORMACJE             na podstawie bazy danych? Rozszerz swoj¹ wiedzê o tworzenie dynamicznych stron
                                         WWW dzia³aj¹cych w oparciu o jêzyk PHP 5 — popularny, efektywny, dzia³aj¹cy
                   ZAMÓW INFORMACJE      na wielu platformach i dostêpny bezp³atnie jêzyk programowania interpretowany
                     O NOWO CIACH        po stronie serwera. Zosta³ on zaprojektowany specjalnie w celu tworzenia aplikacji
                                         WWW i rozwija siê szybko. Warto równie¿ dodaæ, ¿e jest bardzo wygodny w u¿yciu.
                       ZAMÓW CENNIK      Dziêki ksi¹¿ce „PHP5. Tworzenie stron WWW. Æwiczenia praktyczne” poznasz
                                         podstawy tworzenia aplikacji WWW w tym jêzyku. Dowiesz siê, jak obs³ugiwaæ
                                         z poziomu PHP formularze, sesje i pliki, nauczysz siê ³¹czyæ stronê z baz¹ danych,
                 CZYTELNIA               a przede wszystkim — stworzysz skrypty, dziêki którym Twoja witryna WWW stanie
                                         siê o wiele bardziej atrakcyjna dla odwiedzaj¹cych i wygodniejsza w administrowaniu.
          FRAGMENTY KSI¥¯EK ONLINE          • Instalacja i konfiguracja PHP5
                                            • Podstawy jêzyka PHP — zmienne, sta³e, operatory i instrukcje
                                            • Pobieranie danych z formularzy
                                            • Obs³uga sesji, plików i baz danych
                                            • Tworzenie grafiki z poziomu PHP
                                            • Elementy witryn WWW — forum dyskusyjne, ksiêga go ci, ring i inne




Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
                      Wstęp.............................................................................................................................................................. 5
Rozdział 1.           Pierwsze spojrzenie................................................................................................................................. 7
                      1.1. Client-side vs. server-side...................................................................................... 7
                      1.2. Witryna PHP........................................................................................................ 11
                      1.3. Apache, PHP, MySQL — konta w internecie..................................................... 14
                      1.4. Gotowe skrypty.................................................................................................... 15
Rozdział 2. Instalacja i konfiguracja..................................................................................................................... 17
Rozdział 3. Podstawy PHP ...........................................................................................................................................25
            3.1. Pierwsze skrypty.................................................................................................. 26
            3.2. Zmienne, stałe, operatory .................................................................................... 28
            3.3. Instrukcja warunkowa.......................................................................................... 34
            3.4. Pętla for................................................................................................................ 37
            3.5. Pętle while i do…while ....................................................................................... 40
            3.6. Instrukcja wyboru (switch).................................................................................. 43
            3.7. Funkcje ................................................................................................................ 44
            3.8. Zło one struktury danych — tablice zwykłe i tablice asocjacyjne ..................... 58
Rozdział 4. Dane — pobieranie, przekazywanie i przechowywanie .................................................... 67
            4.1. Pobieranie danych z formularzy .......................................................................... 67
            4.2. Cookies ................................................................................................................ 78
            4.3. Obsługa plików.................................................................................................... 84
            4.4. Sesje..................................................................................................................... 91
            4.5. Baza danych......................................................................................................... 97
Rozdział 5. Grafika w PHP.......................................................................................................................................... 113
Rozdział 6. Trudniejsze zadania webmasterskie.........................................................................................129
            6.1. Licznik tekstowy................................................................................................ 129
            6.2. Licznik graficzny............................................................................................... 137
            6.3. Księga gości....................................................................................................... 142
            6.4. Newsy na stronie ............................................................................................... 146
            6.5. Ankieta............................................................................................................... 154
            6.6. Ring.................................................................................................................... 158
            6.7. Galeria zdjęć ...................................................................................................... 162
            6.8. Analiza dzienników serwera.............................................................................. 165
            6.9. Forum dyskusyjne.............................................................................................. 169
4                                                                                   PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne


Rozdział 7.   Klasy i obiekty........................................................................................................................................ 175
              7.1. Obiektowy licznik.............................................................................................. 175
              7.2. Biblioteka PEAR ............................................................................................... 180
Dodatek A     Biblioteczka webmastera................................................................................................................ 187
4.                              Rozdział

                    Dane — pobieranie,
                         przekazywanie
                     i przechowywanie
     Programy PHP, które pisaliśmy do tej pory, nie były bardzo rozbudowane i nie szokowały
     swoimi mo liwościami. Nie stanowiły te rozwiązania typowych problemów webma-
     sterskich. Pewnie ju zauwa yłeś, e opierały się na komunikacji jednostronnej: program
     coś wyliczał i wyświetlał wyniki w przeglądarce. Nie mo na było mu jednak w aden
     sposób przekazać danych ani te zapisać na serwerze wyników działania — w celu wy-
     korzystania ich w przyszłości. Nie było te mo liwości przekazywania wyników działania
     z jednej strony do drugiej. W tym rozdziale zajmiemy się tymi właśnie zagadnieniami:
     pobieraniem danych od u ytkownika, pamiętaniem ich zarówno po stronie klienta, jak
     i serwera oraz przekazywaniem informacji pomiędzy stronami.


4.1. Pobieranie danych z formularzy
     Podstawowym sposobem pobierania danych od u ytkownika na stronach WWW są formu-
     larze. Zakładam, e mając styczność z HTML-em, zapoznałeś się ju z tym tematem. Warto
     jednak przypomnieć kilka niezbędnych informacji.

     Formularz na stronie WWW ma następującą postać:
      (14/ #%6+10 UMT[RVRJR /'6*12156
       6W Y[UVúRWLæ RQNC HQTOWNCTC 
      +0276 6;2'5WDOKV 8#.7' 9[ NKL
      (14/
68                                                   PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne


           Metodą w formularzu mo e być tak e )'6 (jest to zresztą metoda domyślna: je eli nie
           wpiszesz w definicji formularza adnej, zostanie u yta właśnie ta). Metody ró nią się
           między sobą sposobem przekazywania danych do serwera. Je eli u yjesz metody )'6, dane
           z formularza zostaną doklejone do adresu skryptu odbierającego formularz po znaku za-
           pytania. Adres będzie więc miał postać:
             JVVRCFTGUUGTYGTCUMT[RVRJR!RQNGYCTV RQNGYCTV  RQNG0YCTV0

           W przypadku formularzy z du ą liczbą danych taka metoda mo e być niewygodna. Ma
           jednak jedną niewątpliwą zaletę: mo na ją stosować nie tylko do obsługi formularzy, ale
           po prostu w łączu, które u ytkownik będzie nawet mógł dodać do zakładek.

           Metoda 2156 z kolei przekazuje dane z formularza w inny sposób (po nagłówkach zle-
           cenia HTTP). Danych z formularza nie zobaczymy więc w adresie, ale mo na ich za to
           przesłać o wiele więcej.

           W formularzu mo esz u ywać: pól tekstowych, pól haseł, pól wyboru, przycisków opcji,
           obszarów tekstowych, menu, pól wyboru pliku do przesłania. Trudno w tym miejscu szcze-
           gółowo omawiać wszelkie elementy formularzy, dlatego zachęcam do zapoznania się z ksią -
           ką Po prostu HTML 4. Wydanie III, a w szczególności z jej 16. rozdziałem („Formularze”).

           Pobieranie danych z formularza przez skrypt jest trywialnym zadaniem. Dane wpisane
           do pól formularza są pamiętane w specjalnych tablicach 
 A)'6 i A2156), a indeksy,
           pod którymi są dostępne, noszą takie nazwy, jak pola formularza. Je eli formularz zo-
           stanie przesłany metodą )'6, to wartości wpisane w pola znajdziesz w odpowiednich
           polach tablicy A)'6. Analogicznie je eli metodą przesłania formularza będzie 2156, to
           dane będziesz mógł odczytać z tablicy A2156.

Ćwiczenie 4.1.

           Utwórz program, który będzie wyświetlał formularz z jednym polem tekstowym, a po
           wysłaniu tego formularza wyświetli wpisaną wartość.

           W zale ności od tego, czy zmienna VGMUV (VGMUV będzie nazwą pola w formularzu) przyj-
           muje jakąś wartość, czy te nie, wyświetlimy albo formularz, albo informację o tym, co
           w nim zostało wpisane.

                                                                                            4-01.php
             *6/.
               *'#
                 /'6# *662'37+8 %QPVGPV6[RG %106'06 VGZVJVON EJCTUGVKUQ
                 6+6.' (QTOWNCT6+6.'
               *'#
               $1;
                 !  TWMWLG HQTOWNCT K LGFPQEG PKG QFDKGTC K Y[ YKGVNC YRKUCPG Y PKO FCPG

                   KH 
 A)'6= VGMUV ? ]              LGUV YRKUCPC LCMC YCTVQ è Y HQTOWNCTW
                      VGMUV  A)'6= VGMUV ?
                     RTKPV 9RKUCPC YCTVQ è VQ $ VGMUV$ $4 
                     RTKPV # *4'( RJR 2QYTÎV FQ HQTOWNCTC# 
                   _ GNUG ]             PKG OC YRKUCP[EJ FCP[EJ Y[ YKGVNCO[ HQTOWNCT
                     RTKPV (14/ #%6+10 RJR /'6*1)'6 
                     RTKPV +0276 6;2' VGZV 0#/' VGMUV
Rozdział 4.    Dane — pobieranie, przekazywanie i przechowywanie                                  69


                           RTKPV +0276 6;2' UWDOKV 8#.7' 9[ NKL   
                           RTKPV (14/ 
                       _

                   !
                 $1;
               *6/.


              Warto sprawdzić, jak działa skrypt, zarówno z wykorzystaniem metody )'6, jak i 2156.
              Pamiętaj, e poza zmianą metody w formularzu musisz te zmienić nazwę tablicy,
              z której odczytywane są dane, na A2156 Zauwa ró nicę w adresie po wysłaniu for-
              mularza za pomocą jednej i drugiej metody.

              Wpisz w pole formularza tekst: * VGMUV* . Pojawi się niespodziewany efekt —
              wyświetlony tekst zostanie wypisany du ą czcionką. Dzieje się tak, poniewa wpisany
              tekst wklejamy bezpośrednio do kodu strony. Jeszcze ciekawszy efekt uzyskasz, wpi-
              sując tekst: UETKRV CNGTV
UETKRV .

              Jak widzisz, łatwo stracić kontrolę nad tym, co wyświetla strona, je eli wyświetlane na
              niej dane pochodzą bezpośrednio z formularza. Sprawa nie jest powa na, je eli chodzi
              tylko o stronę wysyłaną pojedynczemu klientowi po wpisaniu przez niego danych. Mo na
              sobie jednak wyobrazić księgę gości z wpisami gromadzonymi w bazie danych i wy-
              świetlanymi na ądanie. Je eli do bazy będziemy wpisywać nieobrobione dane z for-
              mularza, efekty działania odwiedzających (czasem zupełnie niepo ądane) będą oglądali
              wszyscy. Z tego powodu powinieneś stosować funkcję „oczyszczającą” wpisywane dane,
              szczególnie takie, które mogą się pojawić na stronach WWW.

Ćwiczenie 4.2.

              Popraw program z ćwiczenia 4.1 tak, by przetwarzał wpisane dane, aby były bezpieczne
              w wyświetlaniu. Sprawdź jego działanie na przykładach z poprzedniego ćwiczenia.

              W przyszłości zapewne przygotujesz własną funkcję „oczyszczającą” wprowadzane dane.
              W zale ności od ich charakteru, funkcja powinna wykonywać ró ne operacje. Na po-
              czątek wykorzystaj wbudowaną funkcję PHP, która znaczniki HTML-a przetworzy na
              „bezpieczne” do wyświetlenia. W szczególności zamieni znaki większości i mniejszości
              na IV i NV, co spowoduje, e wpisane znaczniki HTML nie zostaną przy ich dołą-
              czeniu do strony zinterpretowane, lecz wyświetlone.

                 htmlspecialchars        Zamienia znaczniki HTML na kody „bezpieczne”

More Related Content

Viewers also liked

Fotografia cyfrowa. Świat w obiektywie. Wydanie II
Fotografia cyfrowa. Świat w obiektywie. Wydanie IIFotografia cyfrowa. Świat w obiektywie. Wydanie II
Fotografia cyfrowa. Świat w obiektywie. Wydanie IIWydawnictwo Helion
 
Google Picasa. Ćwiczenia praktyczne
Google Picasa. Ćwiczenia praktyczneGoogle Picasa. Ćwiczenia praktyczne
Google Picasa. Ćwiczenia praktyczneWydawnictwo Helion
 
Finale. Edytor nutowy nie tylko dla profesjonalistów
Finale. Edytor nutowy nie tylko dla profesjonalistówFinale. Edytor nutowy nie tylko dla profesjonalistów
Finale. Edytor nutowy nie tylko dla profesjonalistówWydawnictwo Helion
 
Windows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratoraWindows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratoraWydawnictwo Helion
 
Mambo. Tworzenie, edycja i zarządzanie stroną. Niebieski podręcznik
Mambo. Tworzenie, edycja i zarządzanie stroną. Niebieski podręcznikMambo. Tworzenie, edycja i zarządzanie stroną. Niebieski podręcznik
Mambo. Tworzenie, edycja i zarządzanie stroną. Niebieski podręcznikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 

Viewers also liked (7)

Fotografia cyfrowa. Świat w obiektywie. Wydanie II
Fotografia cyfrowa. Świat w obiektywie. Wydanie IIFotografia cyfrowa. Świat w obiektywie. Wydanie II
Fotografia cyfrowa. Świat w obiektywie. Wydanie II
 
Google Picasa. Ćwiczenia praktyczne
Google Picasa. Ćwiczenia praktyczneGoogle Picasa. Ćwiczenia praktyczne
Google Picasa. Ćwiczenia praktyczne
 
Finale. Edytor nutowy nie tylko dla profesjonalistów
Finale. Edytor nutowy nie tylko dla profesjonalistówFinale. Edytor nutowy nie tylko dla profesjonalistów
Finale. Edytor nutowy nie tylko dla profesjonalistów
 
Windows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratoraWindows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratora
 
Mambo. Tworzenie, edycja i zarządzanie stroną. Niebieski podręcznik
Mambo. Tworzenie, edycja i zarządzanie stroną. Niebieski podręcznikMambo. Tworzenie, edycja i zarządzanie stroną. Niebieski podręcznik
Mambo. Tworzenie, edycja i zarządzanie stroną. Niebieski podręcznik
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 

More from Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieWydawnictwo Helion
 
USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++Wydawnictwo Helion
 

More from Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanie
 
USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++
 

PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TRE CI PHP5. Tworzenie stron WWW. KATALOG KSI¥¯EK Æwiczenia praktyczne KATALOG ONLINE Autorzy: Andrzej Kierzkowski, Robert Janeczek ISBN: 83-7361-361-7 ZAMÓW DRUKOWANY KATALOG Format: B5, stron: 188 TWÓJ KOSZYK DODAJ DO KOSZYKA Statyczne strony WWW ju¿ nie spe³niaj¹ Twoich oczekiwañ? Chcesz zamie ciæ na swojej stronie liczniki, forum dyskusyjne, ksiêgê go ci, ankietê i inne elementy interaktywne? Mo¿e potrzebny Ci jest mechanizm umo¿liwiaj¹cy generacjê tre ci strony CENNIK I INFORMACJE na podstawie bazy danych? Rozszerz swoj¹ wiedzê o tworzenie dynamicznych stron WWW dzia³aj¹cych w oparciu o jêzyk PHP 5 — popularny, efektywny, dzia³aj¹cy ZAMÓW INFORMACJE na wielu platformach i dostêpny bezp³atnie jêzyk programowania interpretowany O NOWO CIACH po stronie serwera. Zosta³ on zaprojektowany specjalnie w celu tworzenia aplikacji WWW i rozwija siê szybko. Warto równie¿ dodaæ, ¿e jest bardzo wygodny w u¿yciu. ZAMÓW CENNIK Dziêki ksi¹¿ce „PHP5. Tworzenie stron WWW. Æwiczenia praktyczne” poznasz podstawy tworzenia aplikacji WWW w tym jêzyku. Dowiesz siê, jak obs³ugiwaæ z poziomu PHP formularze, sesje i pliki, nauczysz siê ³¹czyæ stronê z baz¹ danych, CZYTELNIA a przede wszystkim — stworzysz skrypty, dziêki którym Twoja witryna WWW stanie siê o wiele bardziej atrakcyjna dla odwiedzaj¹cych i wygodniejsza w administrowaniu. FRAGMENTY KSI¥¯EK ONLINE • Instalacja i konfiguracja PHP5 • Podstawy jêzyka PHP — zmienne, sta³e, operatory i instrukcje • Pobieranie danych z formularzy • Obs³uga sesji, plików i baz danych • Tworzenie grafiki z poziomu PHP • Elementy witryn WWW — forum dyskusyjne, ksiêga go ci, ring i inne Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl
  • 2. Spis treści Wstęp.............................................................................................................................................................. 5 Rozdział 1. Pierwsze spojrzenie................................................................................................................................. 7 1.1. Client-side vs. server-side...................................................................................... 7 1.2. Witryna PHP........................................................................................................ 11 1.3. Apache, PHP, MySQL — konta w internecie..................................................... 14 1.4. Gotowe skrypty.................................................................................................... 15 Rozdział 2. Instalacja i konfiguracja..................................................................................................................... 17 Rozdział 3. Podstawy PHP ...........................................................................................................................................25 3.1. Pierwsze skrypty.................................................................................................. 26 3.2. Zmienne, stałe, operatory .................................................................................... 28 3.3. Instrukcja warunkowa.......................................................................................... 34 3.4. Pętla for................................................................................................................ 37 3.5. Pętle while i do…while ....................................................................................... 40 3.6. Instrukcja wyboru (switch).................................................................................. 43 3.7. Funkcje ................................................................................................................ 44 3.8. Zło one struktury danych — tablice zwykłe i tablice asocjacyjne ..................... 58 Rozdział 4. Dane — pobieranie, przekazywanie i przechowywanie .................................................... 67 4.1. Pobieranie danych z formularzy .......................................................................... 67 4.2. Cookies ................................................................................................................ 78 4.3. Obsługa plików.................................................................................................... 84 4.4. Sesje..................................................................................................................... 91 4.5. Baza danych......................................................................................................... 97 Rozdział 5. Grafika w PHP.......................................................................................................................................... 113 Rozdział 6. Trudniejsze zadania webmasterskie.........................................................................................129 6.1. Licznik tekstowy................................................................................................ 129 6.2. Licznik graficzny............................................................................................... 137 6.3. Księga gości....................................................................................................... 142 6.4. Newsy na stronie ............................................................................................... 146 6.5. Ankieta............................................................................................................... 154 6.6. Ring.................................................................................................................... 158 6.7. Galeria zdjęć ...................................................................................................... 162 6.8. Analiza dzienników serwera.............................................................................. 165 6.9. Forum dyskusyjne.............................................................................................. 169
  • 3. 4 PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne Rozdział 7. Klasy i obiekty........................................................................................................................................ 175 7.1. Obiektowy licznik.............................................................................................. 175 7.2. Biblioteka PEAR ............................................................................................... 180 Dodatek A Biblioteczka webmastera................................................................................................................ 187
  • 4. 4. Rozdział Dane — pobieranie, przekazywanie i przechowywanie Programy PHP, które pisaliśmy do tej pory, nie były bardzo rozbudowane i nie szokowały swoimi mo liwościami. Nie stanowiły te rozwiązania typowych problemów webma- sterskich. Pewnie ju zauwa yłeś, e opierały się na komunikacji jednostronnej: program coś wyliczał i wyświetlał wyniki w przeglądarce. Nie mo na było mu jednak w aden sposób przekazać danych ani te zapisać na serwerze wyników działania — w celu wy- korzystania ich w przyszłości. Nie było te mo liwości przekazywania wyników działania z jednej strony do drugiej. W tym rozdziale zajmiemy się tymi właśnie zagadnieniami: pobieraniem danych od u ytkownika, pamiętaniem ich zarówno po stronie klienta, jak i serwera oraz przekazywaniem informacji pomiędzy stronami. 4.1. Pobieranie danych z formularzy Podstawowym sposobem pobierania danych od u ytkownika na stronach WWW są formu- larze. Zakładam, e mając styczność z HTML-em, zapoznałeś się ju z tym tematem. Warto jednak przypomnieć kilka niezbędnych informacji. Formularz na stronie WWW ma następującą postać: (14/ #%6+10 UMT[RVRJR /'6*12156 6W Y[UVúRWLæ RQNC HQTOWNCTC +0276 6;2'5WDOKV 8#.7' 9[ NKL (14/
  • 5. 68 PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne Metodą w formularzu mo e być tak e )'6 (jest to zresztą metoda domyślna: je eli nie wpiszesz w definicji formularza adnej, zostanie u yta właśnie ta). Metody ró nią się między sobą sposobem przekazywania danych do serwera. Je eli u yjesz metody )'6, dane z formularza zostaną doklejone do adresu skryptu odbierającego formularz po znaku za- pytania. Adres będzie więc miał postać: JVVRCFTGUUGTYGTCUMT[RVRJR!RQNGYCTV RQNGYCTV RQNG0YCTV0 W przypadku formularzy z du ą liczbą danych taka metoda mo e być niewygodna. Ma jednak jedną niewątpliwą zaletę: mo na ją stosować nie tylko do obsługi formularzy, ale po prostu w łączu, które u ytkownik będzie nawet mógł dodać do zakładek. Metoda 2156 z kolei przekazuje dane z formularza w inny sposób (po nagłówkach zle- cenia HTTP). Danych z formularza nie zobaczymy więc w adresie, ale mo na ich za to przesłać o wiele więcej. W formularzu mo esz u ywać: pól tekstowych, pól haseł, pól wyboru, przycisków opcji, obszarów tekstowych, menu, pól wyboru pliku do przesłania. Trudno w tym miejscu szcze- gółowo omawiać wszelkie elementy formularzy, dlatego zachęcam do zapoznania się z ksią - ką Po prostu HTML 4. Wydanie III, a w szczególności z jej 16. rozdziałem („Formularze”). Pobieranie danych z formularza przez skrypt jest trywialnym zadaniem. Dane wpisane do pól formularza są pamiętane w specjalnych tablicach A)'6 i A2156), a indeksy, pod którymi są dostępne, noszą takie nazwy, jak pola formularza. Je eli formularz zo- stanie przesłany metodą )'6, to wartości wpisane w pola znajdziesz w odpowiednich polach tablicy A)'6. Analogicznie je eli metodą przesłania formularza będzie 2156, to dane będziesz mógł odczytać z tablicy A2156. Ćwiczenie 4.1. Utwórz program, który będzie wyświetlał formularz z jednym polem tekstowym, a po wysłaniu tego formularza wyświetli wpisaną wartość. W zale ności od tego, czy zmienna VGMUV (VGMUV będzie nazwą pola w formularzu) przyj- muje jakąś wartość, czy te nie, wyświetlimy albo formularz, albo informację o tym, co w nim zostało wpisane. 4-01.php *6/. *'# /'6# *662'37+8 %QPVGPV6[RG %106'06 VGZVJVON EJCTUGVKUQ 6+6.' (QTOWNCT6+6.' *'# $1; ! TWMWLG HQTOWNCT K LGFPQEG PKG QFDKGTC K Y[ YKGVNC YRKUCPG Y PKO FCPG KH A)'6= VGMUV ? ] LGUV YRKUCPC LCMC YCTVQ è Y HQTOWNCTW VGMUV A)'6= VGMUV ? RTKPV 9RKUCPC YCTVQ è VQ $ VGMUV$ $4 RTKPV # *4'( RJR 2QYTÎV FQ HQTOWNCTC# _ GNUG ] PKG OC YRKUCP[EJ FCP[EJ Y[ YKGVNCO[ HQTOWNCT RTKPV (14/ #%6+10 RJR /'6*1)'6 RTKPV +0276 6;2' VGZV 0#/' VGMUV
  • 6. Rozdział 4. Dane — pobieranie, przekazywanie i przechowywanie 69 RTKPV +0276 6;2' UWDOKV 8#.7' 9[ NKL RTKPV (14/ _ ! $1; *6/. Warto sprawdzić, jak działa skrypt, zarówno z wykorzystaniem metody )'6, jak i 2156. Pamiętaj, e poza zmianą metody w formularzu musisz te zmienić nazwę tablicy, z której odczytywane są dane, na A2156 Zauwa ró nicę w adresie po wysłaniu for- mularza za pomocą jednej i drugiej metody. Wpisz w pole formularza tekst: * VGMUV* . Pojawi się niespodziewany efekt — wyświetlony tekst zostanie wypisany du ą czcionką. Dzieje się tak, poniewa wpisany tekst wklejamy bezpośrednio do kodu strony. Jeszcze ciekawszy efekt uzyskasz, wpi- sując tekst: UETKRV CNGTV UETKRV . Jak widzisz, łatwo stracić kontrolę nad tym, co wyświetla strona, je eli wyświetlane na niej dane pochodzą bezpośrednio z formularza. Sprawa nie jest powa na, je eli chodzi tylko o stronę wysyłaną pojedynczemu klientowi po wpisaniu przez niego danych. Mo na sobie jednak wyobrazić księgę gości z wpisami gromadzonymi w bazie danych i wy- świetlanymi na ądanie. Je eli do bazy będziemy wpisywać nieobrobione dane z for- mularza, efekty działania odwiedzających (czasem zupełnie niepo ądane) będą oglądali wszyscy. Z tego powodu powinieneś stosować funkcję „oczyszczającą” wpisywane dane, szczególnie takie, które mogą się pojawić na stronach WWW. Ćwiczenie 4.2. Popraw program z ćwiczenia 4.1 tak, by przetwarzał wpisane dane, aby były bezpieczne w wyświetlaniu. Sprawdź jego działanie na przykładach z poprzedniego ćwiczenia. W przyszłości zapewne przygotujesz własną funkcję „oczyszczającą” wprowadzane dane. W zale ności od ich charakteru, funkcja powinna wykonywać ró ne operacje. Na po- czątek wykorzystaj wbudowaną funkcję PHP, która znaczniki HTML-a przetworzy na „bezpieczne” do wyświetlenia. W szczególności zamieni znaki większości i mniejszości na IV i NV, co spowoduje, e wpisane znaczniki HTML nie zostaną przy ich dołą- czeniu do strony zinterpretowane, lecz wyświetlone. htmlspecialchars Zamienia znaczniki HTML na kody „bezpieczne”