Wiedza, której zaufało ponad 15 000 webmasterów. Nowe wydanie najpopularniejszej w Polsce książki o PHP
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 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 na wielu platformach i dostępny bezpłatnie język programowania interpretowany 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.
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, 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.
* 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
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”