PHP Tworzenie stron WWW Szybki start

background image

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63

e-mail: helion@helion.pl

PRZYK£ADOWY ROZDZIA£

PRZYK£ADOWY ROZDZIA£

IDZ DO

IDZ DO

ZAMÓW DRUKOWANY KATALOG

ZAMÓW DRUKOWANY KATALOG

KATALOG KSI¥¯EK

KATALOG KSI¥¯EK

TWÓJ KOSZYK

TWÓJ KOSZYK

CENNIK I INFORMACJE

CENNIK I INFORMACJE

ZAMÓW INFORMACJE

O NOWOCIACH

ZAMÓW INFORMACJE

O NOWOCIACH

ZAMÓW CENNIK

ZAMÓW CENNIK

CZYTELNIA

CZYTELNIA

FRAGMENTY KSI¥¯EK ONLINE

FRAGMENTY KSI¥¯EK ONLINE

SPIS TRECI

SPIS TRECI

DODAJ DO KOSZYKA

DODAJ DO KOSZYKA

KATALOG ONLINE

KATALOG ONLINE

PHP. Tworzenie stron
WWW. Szybki start

B³yskawiczny kurs tworzenia dynamicznych

stron WWW z wykorzystaniem jêzyka PHP

Jêzyk PHP cieszy siê zas³u¿on¹ popularnoci¹ wród twórców stron WWW. Z ma³o
znanego produktu open source szybko sta³ siê cenionym narzêdziem stosowanym
do tworzenia dynamicznych witryn sieciowych opartych na bazach danych. PHP jest
wykorzystywany w portalach, sklepach internetowych, forach dyskusyjnych i wielu
innych witrynach z dynamicznie generowan¹ zawartoci¹. Jeli jêzyk HTML i pisane
w nim statyczne strony HTML nie odpowiadaj¹ ju¿ Twoim wymaganiom, zrób nastêpny
krok — poznaj jêzyk PHP.

„PHP. Tworzenie stron WWW. Szybki start” to idealny podrêcznik dla Ciebie. Dowiesz
siê z niego wszystkiego, co jest niezbêdne do wykorzystywania jêzyka PHP w pracy
webmastera. W prostych æwiczeniach poznasz podstawy jêzyka PHP i nauczysz siê
stosowaæ go do ró¿nych zadañ zwi¹zanych z tworzeniem stron WWW. Wiadomoci
zawarte w ksi¹¿ce dotycz¹ zarówno wersji 4, jak i wchodz¹cej w³anie na rynek wersji 5.

• Podstawy sk³adni jêzyka PHP
• Osadzanie kodu PHP w kodzie HTML
• Zmienne i ich typy
• Obs³uga formularzy HTML
• Instrukcje steruj¹ce dzia³aniem programu
• Tablice
• Obs³uga sesji i plików cookie
• Praca z systemem plików
• Korzystanie z baz danych
• Stosowanie wyra¿eñ regularnych

Autor: Larry Ullman
T³umaczenie: Pawe³ Gonera
ISBN: 83-7361-530-X
Tytu³ orygina³u:

PHP for the World Wide Web

Visual QuickStart Guide, 2nd Edition

Format: B5, stron: 456

background image

Spis treści

5

Spis treści

Wstęp

9

Czym jest PHP?.........................................................................................10

Dlaczego korzystamy z PHP? ...................................................................12

Jak działa PHP?.........................................................................................14

Czego będziesz potrzebował? ...................................................................16

O książce ...................................................................................................18

Rozdział 1. Rozpoczynamy pracę z PHP

21

Podstawy składni XHTML........................................................................22

Podstawy składni PHP ..............................................................................26

Testowanie skryptu ...................................................................................29

Wysyłanie tekstu do przeglądarki .............................................................32

Wysyłanie kodu HTML do przeglądarki...................................................36

Użycie odstępów w PHP oraz HTML .......................................................38

Dodawanie komentarzy do skryptów ........................................................41

Rozdział 2. Zmienne

45

Czym są zmienne?.....................................................................................46

Składnia zmiennych ..................................................................................50

Typy zmiennych ........................................................................................52

Przypisywanie wartości do zmiennych .....................................................57

Apostrofy i cudzysłowy.............................................................................60

Rozdział 3. Formularze HTML i PHP

63

Tworzenie prostego formularza.................................................................64

Użycie GET oraz POST ............................................................................70

Odbieranie danych z formularza w PHP ...................................................72

Wyświetlanie błędów ................................................................................75

Raportowanie błędów................................................................................78

Problem z register_globals ........................................................................80

Ręczne wysyłanie danych do strony .........................................................82

Spis treści

background image

Spis treści

6

Spis treści

Rozdział 4. Użycie liczb

87

Tworzenie formularza ...............................................................................88

Dodawanie, odejmowanie, mnożenie i dzielenie ......................................91

Formatowanie liczb ...................................................................................96

Użycie wielu operatorów...........................................................................98

Inkrementacja i dekrementacja liczb .......................................................100

Tworzenie liczb losowych.......................................................................102

Rozdział 5. Użycie ciągów

105

Tworzenie formularza HTML .................................................................106

Łączenie ciągów (konkatenacja) .............................................................109

Obsługa parametru magic_quotes ...........................................................113

HTML oraz PHP .....................................................................................116

Kodowanie i dekodowanie ciągów..........................................................120

Zamiana fragmentów ciągu .....................................................................125

Inne funkcje operujące na ciągach ..........................................................128

Rozdział 6. Struktury sterujące

133

Tworzenie formularza HTML .................................................................134

Instrukcja if .............................................................................................139

Użycie klauzuli else ................................................................................145

Więcej na temat operatorów....................................................................148

Użycie elseif............................................................................................158

Instrukcja warunkowa switch..................................................................163

Pętla for ...................................................................................................169

Rozdział 7. Użycie tablic

175

Czym są tablice?......................................................................................176

Tworzenie tablicy ....................................................................................178

Dodawanie elementów do tablicy ...........................................................182

Odwoływanie się do elementów tablicy..................................................185

Tworzenie tablic wielowymiarowych .....................................................189

Sortowanie tablic.....................................................................................194

Przekształcenia między ciągami i tablicami............................................199

Tworzenie tablicy z formularza...............................................................204

background image

Formularze HTML i PHP

63

Formularze HTML i PHP

W poprzednim rozdziale przedstawiliśmy krótkie
wprowadzenie do zmiennych. Choć bardzo często
będziemy tworzyli własne zmienne, to jednak
najczęściej będziemy je wykorzystywali
w połączeniu z formularzami HTML. Formularze,
jak na pewno się już przekonałeś, są podstawowym
mechanizmem we współczesnych stronach
WWW, pozwalającym zrealizować takie funkcje,
jak: rejestracja, logowanie, przeszukiwanie oraz
obsługa sklepów internetowych. Korzyści płynące
z używania formularzy widać już w najprostszych
witrynach WWW. Łącząc je z kodem PHP,
możemy niezwykle łatwo odczytywać
i obsługiwać generowane przez nie dane.

W rozdziale tym opiszemy podstawy tworzenia
formularzy HTML oraz sposoby przesyłania
danych do skryptu PHP. Jednocześnie rozdział
wprowadza kilka kluczowych mechanizmów
prawdziwego programowania w PHP — w tym
sposoby uruchamiania skryptów oraz obsługę
błędów.

Formularze HTML i PHP

3

Formu

larze HTML i

PHP

background image

Rozdział 3.

64

Tworzenie prostego
formularza

Jako przykład formularza HTML utworzymy
tutaj stronę informacji zwrotnej, która pobiera
powitanie użytkownika, jego imię, adres e-mail,
odpowiedź oraz komentarz. Będziemy musieli
utworzyć odrębne pola dla wszystkich
wymienionych tutaj danych. Na początek jednak
wrócimy do tematu XHTML.

Jak wspomnieliśmy w pierwszym rozdziale
(w którym poinformowaliśmy, że w książce tej
będziemy korzystać z XHTML), język ten ma
kilka zasad, które powodują, że ma on wyraźnie
inną składnię niż HTML. Przypominamy, że kod
musi być zapisany małymi literami, a każdy
atrybut znacznika należy ująć w cudzysłowy.
Dodatkowo, każdy znacznik musi być zamknięty;
te, które nie mają formalnego znacznika
zamykającego, jak na przykład



, są

zamykane przez dodanie spacji i ukośnika na
jego końcu. Dlatego w HTML można napisać:

    

Ale w XHTML to samo wyrażenie musi przyjąć
postać:

   ! "

Powyższe wyjaśnienie pozwoli uniknąć
pomyłek w przypadku naszej strony
wykorzystującej standard XHTML.

Aby rozpocząć tworzenie
podstawowego formularza HTML:

1.

Otwórz edytor tekstu i rozpocznij nowy
dokument (listing 3.1):

#$%& ' ()*&+"",-&""$$ . *

å/01("" 

'2""33303-014"5"' (/"$$"

å' (/+1(0

' ( ( '2""33303-014"/666"' (

'

 '+78 91+

å91 "' (:

å9' 1+;;<6+="

(>1 (!!1?"(

"'

Listing 3.1. Każdy formularz HTML rozpoczyna
się i kończy znacznikami <form></form>. Gdy
kodujesz formularze ręcznie ― uważaj, aby nie
zapomnieć żadnego z tych znaczników. Pamiętaj
również o przekierowaniu formularza do właściwego
skryptu obsługi za pomocą atrybutu action

/#$%& ' ()*&+"",-&""$$ . *

/01("" 

='2""33303-014"5"' (/"$$"

' (/+1(0

-' ( ( '2""33303-014"/666"' (

'

< '+78 91+

91 "' (:

9' 1+;;<6+="

@(>1 (!!1?"(

A"'

;B1

61!C3DEF1 (!GB

!H!E 31I342B"

/

  

   

/=



/

/<#++*4-0/+10' (++

/@"B1

/A"' (

Tworzenie prostego

for

mularza

background image

Formularze HTML i PHP

65

B1

1!C3DEF1 (!GB

å!H!E 31I342B"

2.

Dodaj otwierający i zamykający znacznik

 

:

F1 91 1B(4JF1 (!0'

"F1 

Znaczniki

 

określają początek i koniec

formularza. Każdy element tego formularza
musi być zdefiniowany pomiędzy tymi
dwoma wierszami. Atrybut

 

wskazuje

serwerowi stronę (lub skrypt), która otrzyma
dane wprowadzone do formularza, dlatego
jest on jednym z najważniejszych elementów.

3.

Zakończ stronę, dodając znaczniki
zamykające dokument.

#++*4-0/+10' (++

"B1

"' (

4.

Zapisz stronę pod nazwą

  

.

Wskazówki



Zwróć uwagę, że użyliśmy tutaj rozszerzenia
dokumentu właściwego dla HTML (.html),
ponieważ jest to standardowa strona HTML
(a nie strona PHP). Bez problemu można
zastosować rozszerzenie .php, nawet
pomimo to, że nie ma w tym dokumencie
kodu PHP (pamiętaj, że na stronie PHP
wszystkie elementy poza znacznikami



i



są traktowane jako kod HTML).



Upewnij się, że atrybut

 

prawidłowo

wskazuje na istniejący na serwerze plik,
ponieważ w przeciwnym wypadku formularz
nie zostanie właściwie przetworzony.
W naszym przykładzie określiliśmy,
że formularz ma być przesłany do strony

obsluga_formularz.php, która jest umieszczona
w tym samym katalogu, co strona opinia.html.

Tworzenie prostego

for
mularza

background image

Rozdział 3.

66

Po tym omówieniu podstawowych znaczników
formularzy dodajmy do niego różne elementy
(pola tekstowe przeznaczone na nazwę
użytkownika, adres e-mail itd.).

Aby utworzyć elementy formularza:

1.

Po wierszu z otwierającym znacznikiem



(wiersz 11.), ale przed zamykającym

znacznikiem



naciśnij Enter,

aby utworzyć nowy wiersz.

2.

Dodaj dwa przyciski opcji przeznaczone na
tytuł osoby (listing 3.2):

 1  (

å8( "

 1  (

å8( "

B"

Ten kod HTML powoduje utworzenie dwóch
przycisków opcji (w postaci wybieranych
kółeczek, rysunek 3.1). Ponieważ oba
przyciski posiadają taką samą wartość
atrybutu

 

, może być zaznaczony tylko

jeden z nich. Zgodnie z zasadami XHTML,
kod jest zapisywany małymi literami (poza
wartościami), a na końcu każdego znacznika



dodana jest spacja oraz ukośnik

domykający znacznik.

Aby uzyskać odpowiednie rozmieszczenie
formularza, na końcu dodaliśmy znacznik

 

.

3.

Dodaj pola tekstowe przeznaczone na nazwę
użytkownika oraz adres e-mail:

 C2    

å! ="

B"

+ (2 

å   (! ="

B"

Należy stosować spójną konwencję
nazewnictwa elementów formularza
i nadawać każdemu elementowi logiczną
i opisową nazwę. Przy nadawaniu nazw polom
formularza można stosować litery, cyfry
oraz znaki podkreślenia (



). Zamieszczone

tutaj pola



powodują utworzenie

w przeglądarce pól tekstowych (rysunek 3.2).

Rysunek 3.1. Przyciski opcji tytułu

Rysunek 3.2. Znaczniki text powodują utworzenie
takich pól tekstowych

Tworzenie prostego

for

mularza

background image

Formularze HTML i PHP

67

Listing 3.2. Do formularza można dodać dowolną kombinację elementów wprowadzania danych — należy się
tylko upewnić, że znajdują się one wewnątrz znaczników <form>, ponieważ inaczej nie pokażą się na stronie

/#$%& ' ()*&+"",-&""$$ . */01("" 

='2""33303-014"5"' (/"$$"' (/+1(0

-' ( ( '2""33303-014"/666"' (

'

< '+78 91+91 "' (:9' 1+;;<6+="

@(>1 (!!1?"(

A"'

;B1

61!C3DEF1 (!GB!H!E 31I342B"

/

//F1 91 1B(4JF1 (!0'

/=

             

!             

"

#$ %&     '       ()

*

+,- &     '      ()

.

()/ &    

(    01  23 01    

((    14523 145  

(     23     

(! 

("

(#6 & '   5 1   ) ' 

(*

(+       1 3  70 3 %

=6

-"F1 

-/

-=#++*4-0=+10' (++

--"B1

-"' (

Tworzenie prostego

for
mularza

background image

Rozdział 3.

68

4.

Dodaj listę wyboru opinii:

%2(9  1

118( K31I

åK30"11

118( 31!?H1I

å31!?H0"11

118( 1I0

å"11

"(9

B"

Znaczniki te powodują dodanie rozwijanej
listy wyboru, jednego z najpopularniejszych
typów pól formularza (rysunek 3.3).
Każda z opcji umieszczonych pomiędzy
znacznikami

 

może zostać wybrana

przez użytkownika.

5.

Dodaj wielowierszowe pole tekstowe,
w którym można napisać własny komentarz:

L1 !2  H1 !

å13 -91( -"

B"

Wielowierszowe pole tekstowe (rysunek 3.4)
udostępnia użytkownikowi więcej miejsca na
komentarz niż zwykłe pole tekstowe. Jednak
pole tekstowe pozwala na ograniczenie liczby
znaków, które może wprowadzić użytkownik,
natomiast nie da się tego zrobić w przypadku
wielowierszowego pola tekstowego
(bez użycia dodatkowego kodu JavaScript).
W czasie tworzenia formularza należy
wybierać typ pola tekstowego najbardziej
odpowiedni dla danych, jakie będziesz
chciał uzyskać od użytkownika.

Rysunek 3.3. Znacznik select pozwala utworzyć
listę rozwijaną

Rysunek 3.4. Znacznik textarea pozwala utworzyć
duże pole tekstowe

Tworzenie prostego

for

mularza

background image

Formularze HTML i PHP

69

Rysunek 3.5. Każdy formularz musi mieć przycisk
wysyłania danych, który może wyglądać inaczej
w różnych przeglądarkach

Rysunek 3.6. Jeżeli prawidłowo wprowadziłeś kod
formularza, powinien on wyglądać w przeglądarce
w następujący sposób

6.

Dodaj przycisk wysyłania danych:

 B   3(I

å8( ,K(I1C"

Wartość atrybutu

 

w elemencie typu

 

jest wyświetlana na przycisku

w przeglądarce WWW (rysunek 3.5).
Można również tutaj zastosować
na przykład słowo Dalej.

7.

Zapisz skrypt i prześlij go na serwer
(lub zapisz w odpowiednim katalogu swojego
komputera z zainstalowanym kodem PHP)
i wyświetl go w przeglądarce (rysunek 3.6).
Ponieważ jest to strona HTML, a nie skrypt
PHP, możesz obejrzeć go w przeglądarce
bezpośrednio z Twojego komputera.

Wskazówka



W tym przykładzie utworzyłeś formularz
przez ręczne kodowanie w HTML, ale jeżeli
wolisz, to samo można zrobić korzystając
z aplikacji do projektowania stron WWW
(na przykład w programach Macromedia
Dreamweaver lub Adobe GoLive).

Tworzenie prostego

for
mularza

background image

Rozdział 3.

70

Użycie GET oraz POST

Doświadczeni autorzy stron HTML zauważą,
że w formularzu opinii brakuje jednego elementu:
otwierający znacznik

 

nie ma atrybutu

 

. Atrybut ten informuje serwer, w jaki

sposób przesłać dane do skryptu obsługi.

Atrybut

 

może przyjmować dwie wartości:



oraz

 

. Wielu koderów HTML nie

do końca zna różnice między tymi wartościami
i ma wątpliwości, kiedy ich używać.
W rzeczywistości dla większości programistów
nie ma to najmniejszego znaczenia (szczególnie,
gdy zaczynamy dopiero z nich korzystać),
ponieważ obie metody pozwalają zazwyczaj
na osiągnięcie oczekiwanych wyników.

Różnica między metodami



oraz

 

polega

na sposobie przesyłania danych z formularza do
obsługującego go skryptu. Metoda



przesyła

wszystkie zebrane informacje jako część adresu
URL. Metoda

 

przesyła dane w sposób

niewidoczny dla użytkownika. Na przykład,
jeżeli użyjesz metody



w czasie przesyłania

danych formularza, wynikowy adres URL
będzie miał następującą postać:

'2""33303091 "'"1B(4JF1 (!

å0'M( N!3 *O=(( 000

Tymczasem jeśli zastosujemy metodę

 

,

końcowy użytkownik zobaczy adres w postaci
skróconej:

'2""33303091 "'"

å1B(4JF1 (!0'

Wybierając jedną z tych metod, należy pamiętać
o następujących trzech zasadach:

u

W przypadku metody



można przesłać

tylko ograniczoną ilość informacji.

u

Metoda



wysyła dane do skryptu obsługi

w sposób jawny. Przykładowo oznacza to,
że hasło wprowadzone w formularzu może
być przeczytane przez każdego, kto patrzy
na przeglądarkę. Warto zauważyć, że jest to
dużym zagrożeniem dla bezpieczeństwa.

u

Strona wygenerowana przez formularz
korzystający z metody



może zostać

zapisana w zakładkach, natomiast nie jest to
możliwe, gdy dane są przesyłane metodą

 

.

Listing 3.3. Aby dokończyć nasz formularz,
dodajemy atrybut method z wartością post

/#$%& ' ()*&+"",-&""$$

 . */01("" 

='2""33303-014"5"' (/"$$"

' (/+1(0

-' ( ( '2""33303-014"/666"' (

'

< '+78 91+

91 "' (:9'

1+;;<6+="

@(>1 (!!1?"(

A"'

;B1

61!C3DEF1 (!GB

!H!E 31I342B"

/

  

   

/=

/- 1  (

8( "

/ 1  (

8( "

/<B"

/@ C2    

! ="

/AB"

/; + (2 

   (! ="

/6B"

=%2(9  1

=/118( K31IK30

"11

==118( 31!?H1I

31!?H0"11

=-118( 1I0

"11

="(9

=<B"

=@L1 !2  H1 !

13 -91( -"

=AB"

=; B   3(I

8( ,K(I1C"

=6

-"F1 

-/

-=#++*4-0-+10' (++

--"B1

-"' (

Użycie GE

T oraz POST

background image

Formularze HTML i PHP

71

Rysunek 3.7. Przejrzyj źródło strony HTML,
aby sprawdzić jej poprawność

W tej książce do obsługi formularzy niemal
wyłącznie stosujemy metodę

 

, choć

przedstawimy przydatną technikę, gdzie metoda



pozwala zyskać dodatkowe możliwości

dla stron WWW (patrz podrozdział „Ręczne
wysyłanie danych do strony” pod koniec
bieżącego rozdziału). Dzięki każdej z tych
metod można przesyłać dane z formularza,
a ostateczny wybór metody powinien zależeć
od potrzebnego Ci poziomu zabezpieczeń
oraz od tego, czy wynikowa strona powinna być
zapisywana w zakładkach. Nabyte doświadczenie
pozwoli szybko rozróżniać obydwie sytuacje,
a na razie bezpiecznie możesz w większości
przypadków korzystać z metody

 

.

Aby dodać znacznik method do skryptu:

1.

Otwórz plik opinia.html w edytorze tekstu
(listing 3.2).

2.

Wewnątrz otwierającego znacznika

 

dodaj

 !" "

(listing 3.3, wiersz 11.).

Atrybut formularza

 

wskazuje

przeglądarce, w jaki sposób ma ona wysłać
dane do skryptu odbierającego.

3.

Zapisz skrypt i obejrzyj go ponownie
w twojej przeglądarce WWW.

4.

Obejrzyj źródło strony, aby upewnić się,
że wszystkie potrzebne elementy znajdują
się na swoim miejscu. (rysunek 3.7).

Wskazówka



W opisie metod



oraz



przy ich

zapisywaniu korzystaliśmy z wielkich liter.
Jednak w formularzu dla zachowania
zgodności z XHTML korzystamy z małych
liter (

 

). Nie należy przejmować się

niespójnością — metoda będzie
funkcjonowała prawidłowo niezależnie
od wielkości liter.

Użycie GE

T oraz POST

background image

Rozdział 3.

72

Odbieranie danych
z formularza w PHP

Po utworzeniu prostego formularza HTML
musimy napisać skrypt pod nazwą obsluga_

formularz.php, który otrzymuje i przetwarza
dane wygenerowane przez stronę opinia.html.
W tym konkretnym przykładzie skrypt PHP
tylko powtarza wartości wprowadzone przez
użytkownika do formularza. W kolejnych
rozdziałach pokażemy, w jaki sposób można
zapisać dane w bazie danych lub wysłać je
korzystając z poczty elektronicznej.

Dla wielu Czytelników przykład ten będzie
zaskakująco prosty i utworzony skrypt będzie
działał bez zarzutu. Niektórzy mogą jednak
napotkać niewielkie problemy spowodowane
znacznymi zmianami w domyślnej konfiguracji
PHP. W wielu instalacjach PHP można
odwoływać się do wartości z formularza poprzez
zmienną o nazwie takiej samej, jak nazwa
elementu formularza. W omawianym przykładzie
zmiennymi tymi są:

#$

,

# 

,

# 

,

#%  &

oraz

#'$(

.

Napisaliśmy powyższy skrypt korzystając ze
standardowej metody, która powinna działać
u większości Czytelników. Jeżeli tak nie będzie,
to w następnym podrozdziale odnajdziesz opisy
alternatywnych technik uruchamiania programów.
Jeżeli więc w przypadku tego przykładu
nie będziesz mógł osiągnąć oczekiwanych
wyników, nie musisz się martwić. Następne trzy
podrozdziały wszystko wyjaśnią i przy okazji
nauczą kilku wartościowych metod.

Aby utworzyć skrypt PHP:

1.

Otwórz edytor tekstu i utwórz w nim nowy
dokument (listing 3.4):

#$%& ' ()*&+"",-&""$$ . *

å/01("" 

'2""33303-014"5"' (/"$$"

å' (/+1(0

' ( ( '2""33303-014"/666"' (

'

 '+78 91+

å91 "' (:

å9' 1+;;<6+="

Listing 3.4. Biorąc nazwę elementu z formularza
HTML oraz dodając znak dolara ($), tworzymy
zmienne zawierające wartości wprowadzone przez
użytkownika w odpowiednim polu

/#$%& ' ()*&+"",-&""$$ . *

/01("" 

=

'2""33303-014"5"' (/"$$"' (/+

1(0

-' ( ( '2""33303-014"/666"' (

'

< '+78 91+

91 "' (:

9' 1+;;<6+="

@(31I1"(

A"'

;B1

.89  !

/

:    3   

(/ 3&  ;< 1%<- <

 %5 

/-

! =  =  < %53

5 >

" 5;   ;  

=    &=5 >

#8

/A"B1

/;"' (

Odbieranie danych z formu

larza w

PHP

background image

Formularze HTML i PHP

73

(31I1"(

"'

B1

2.

Wstaw otwierający znacznik PHP i wpisz
komentarz:

M'""*4-01B(4JF1 (!0'

""11! I!10' (0

""%! I2DG!3CG+ (G1C

å1!H1 !0

Komentarze do skryptu dodajemy,
aby pomagały zapamiętać, jakie jest jego
przeznaczenie. Choć w kodzie strony

opinia.html zapisane jest, gdzie są wysyłane
dane (poprzez atrybut

 

), ten komentarz

wskazuje zależność odwrotną, tzn. z którego
skryptu otrzymujemy dane.

3.

Wyświetl informacje o użytkowniku:

P(P G!CHI !

åH1 !0B":

!HD!1D!!

åP1112PH1 !:

Aby skorzystać z danych, które użytkownik
wpisał do pola

 &'

, odwołujemy się

do zmiennej

# &'

. To samo dotyczy

wszystkich elementów formularza,
niezależnie od ich typu.

4.

Zamknij sekcję PHP i zakończ stronę HTML.

M

"B1

"' (

5.

Zapisz skrypt pod nazwą

) 

  &

.

6.

Prześlij skrypt na serwer (lub zapisz
w odpowiednim katalogu swojego
komputera z zainstalowanym PHP),
pamiętając, że trzeba go umieścić w tym
samym katalogu, co opinia.html.

Odbieranie danych z formu

larza w

PHP

background image

Rozdział 3.

74

7.

Sprawdź skrypt w przeglądarce WWW
otwierając stronę opinia.html, a następnie
wysyłając dane formularza (rysunki 3.8
oraz 3.9).

Jeżeli wartości zmiennych nie są wyświetlane,
gdy uruchomisz skrypt albo nie są wyświetlane
i widzisz wiele komunikatów błędów, jest to
związane ze wspomnianymi wcześniej
kłopotami. Niektórzy mogą nic nie zobaczyć
(pokaże się pusta strona). Dla każdego z tych
przypadków Czytelnik znajdzie rozwiązanie
w trzech następnych podrozdziałach.

Wskazówki



Jeżeli chcesz przekazać do skryptu ustaloną
wcześniej wartość, to możesz skorzystać
z ukrytego elementu formularza. Na przykład,
jeżeli do formularza wstawimy wiersz:

 '  J1

å8( 10' ("

spowoduje to utworzenie w skrypcie
przetwarzającym zmiennej

#  

posiadającej wartość opinia.html.



Zwróć uwagę, że wartości przycisków opcji
oraz wybrane pozycje z listy rozwijanej mają
wartość atrybutu

 

wybranego elementu

(na przykład świetnie w liście wyboru).
Taka sama zasada obowiązuje dla pól wyboru.
W przypadku pól tekstowych wartością
zmiennej jest tekst wpisany przez użytkownika.



Nawet przycisk przesyłania jest wysyłany
do strony obsługi w postaci zmiennej.



Jeżeli skrypt obsluga_formularz.php
w wysłanych ciągach wyświetla dodatkowe
ukośniki, zapoznaj się z podrozdziałem
„Panowanie nad mechanizmem

) * 

z rozdziału 5. — „Użycie ciągów”.



Powinieneś wiedzieć, że przedstawiona tutaj
metoda obsługi danych formularza (odwoływanie
się do

# &'

,

#$

itd.) nie jest zalecaną

metodą i może powodować naruszenie systemu
bezpieczeństwa. Ale pomimo to, oczywiście
działa ona skutecznie. Wkrótce przedstawimy
lepszą i bardziej bezpieczną metodę, ale na
początek chcieliśmy pokazać możliwie proste
rozwiązanie.

Rysunek 3.8. Wszystko, co użytkownik wpisze
do formularza HTML, powinno być wyświetlone
w przeglądarce WWW przez skrypt obsluga_
formularz.php (rysunek 3.9)

Rysunek 3.9. Jest to inne zastosowanie instrukcji
print omówionej w rozdziale 1., ale dzięki niemu
powstała nasza pierwsza wygenerowana
dynamicznie strona WWW

Rysunek 3.10. Jeżeli strona nie wyświetla
przesłanych informacji, przeczytaj podrozdział
„Problem z register_globals”

Odbieranie danych z formu

larza w

PHP

background image

Formularze HTML i PHP

75

Wyświetlanie błędów

Po zainstalowaniu PHP na serwerze WWW
będzie on działał zgodnie z domyślnymi
ustawieniami zabezpieczeń, sposobu obsługi
danych, wydajności itd. Od czasu pierwszego
wydania tej książki do domyślnej konfiguracji
zostały wprowadzone trzy znaczące zmiany
i wszyscy programiści PHP powinni o tym
wiedzieć. Pierwsza zmiana dotyczy tego,
kiedy są wyświetlane komunikaty błędów.

PHP może być ustawiony w taki sposób, że
będzie informował nas w przypadku napotkania
problemów. To, czy faktycznie to zrobi, zależy
od ustawienia parametru

 $ 

w pliku

konfiguracyjnym PHP (o nazwie php.ini).
W bieżącej wersji PHP parametr ten jest
domyślnie wyłączony, więc błędy generowane
przez skrypt powodują wyświetlenie pustej
strony. Mogłeś zobaczyć wynik takiego
działania w przypadku poprzedniego skryptu.

Jeżeli chcesz, żeby PHP wyświetlał błędy,
to powinieneś wykonać następujące operacje:

u

Włącz z powrotem parametr

 $ 

(więcej informacji znajdziesz w podrozdziale
„Konfigurowanie PHP” w dodatku A
— „Instalacja i konfiguracja”).

u

Włącz parametr

 $ 

w samym

skrypcie.

Chociaż pierwsza możliwość jest najlepsza dla
osób uczących się dopiero PHP, nadaje się tylko
dla tych, którzy mogą administrować serwerem.
Druga opcja może być użyta przez każdego,
wystarczy dodać do skryptu wiersz:

JQR(J1RG/S:

Funkcja

+,

pozwala na tymczasową

zmianę w skrypcie ustawień pliku
konfiguracyjnego PHP. W tym przykładzie
ustawiamy parametr

 $ 

na on,

co reprezentuje liczba 1.

Wyświetlanie błędów

background image

Rozdział 3.

76

Aby wyświetlać błędy:

1.

Otwórz w edytorze plik obsluga_

formularz.php.

2.

W pierwszym wierszu kodu PHP (listing 3.5)
wprowadź następujący kod:

JQR(J1RG/S:

Powyższy wiersz pozwoli zobaczyć
komunikaty o występujących błędach.
Powinieneś wpisać ten wiersz jako pierwszą
instrukcję PHP, dzięki czemu pozostała
część kodu PHP będzie wykonywana
z nowymi ustawieniami konfiguracji.

3.

Zapisz plik pod nazwą

) 

  &

.

4.

Wyślij plik na serwer WWW i sprawdź go
w przeglądarce (rysunki 3.11 oraz 3.12).

Jeżeli wynikowa strona nie posiada błędów,
skrypt będzie działał tak, jak do tej pory.
Jeżeli jednak poprzednio widziałeś pustą
stronę, teraz powinieneś zobaczyć komunikat
błędu, tak jak na rysunku 3.12. Gdy tak się
stanie, rozwiązanie problemu znajdziesz
w dalszej części tego rozdziału.

Listing 3.5. Włączenie dyrektywy display_errors
powinno wyeliminować wyświetlanie pustej strony
w przypadku wystąpienia błędu

/#$%& ' ()*&+"",-&""$$ . *

/01("" 

='2""33303-014"5"' (/"$$"

' (/+1(0

-' ( ( '2""33303-014"/666"' (

'

< '+78 91+

91 "' (:

9' 1+;;<6+="

@(31I1"(

A"'

;B1

6M'""*4-0<1B(4JF1 (!0'

Q3I4S

/

  ?@ @<A>

1B  C % ;% 

/=

/-""11! I!10' (0

/""%! I2DG!3CG+ (G

1C1!H1 !0

/<

/@P(P G!CHI !

H1 !0B":

/A!HD!1D!!

P1112PH1 !:

/;

/6M

="B1

=/"' (

Wyświetlanie błędów

background image

Formularze HTML i PHP

77

Rysunek 3.11. Jeszcze raz wypełniamy formularz…

Rysunek 3.12. …i teraz wyświetlane są
komunikaty o błędach

Wskazówki



Jeżeli masz problemy z uruchamianiem
skryptu, pamiętaj o włączeniu opcji

 $ 

. Jeżeli zainstalowałeś PHP

na swoim komputerze, gorąco zalecamy
włączenie tej opcji na czas nauki
(patrz dodatek A).



Jeżeli w trakcie uruchamiania skryptu PHP
zobaczysz pustą stronę, sprawdź również,
czy nie ma błędów w kodzie HTML.



Funkcja

+,

może być wykorzystana

do zmiany tylko niektórych ustawień. Więcej
informacji znajdziesz w podręczniku PHP.



Pamiętaj, że dyrektywa

 $ 

steruje tylko tym, czy komunikaty błędów
będą wysyłane do przeglądarki. Nie tworzy
ona błędów ani nie zapobiega ich powstawaniu.



Zalecane jest, aby wyłączyć parametr

 $ 

w produkcyjnej witrynie

WWW, ponieważ błędy są zarówno
niewłaściwe, jak również mogą spowodować
naruszenie systemu bezpieczeństwa.
W trakcie tworzenia witryny powinieneś
jednak włączyć parametr

 $ 

.



Możliwe jest, że twórcy PHP zmienią inne
ustawienia, które zmodyfikują sposób
działania skryptów opisanych w tej książce.
Niezbędne stanie się wtedy wprowadzenie
odpowiednich korekt.

Wyświetlanie błędów

background image

Rozdział 3.

78

Raportowanie błędów

Drugim z trzech zagadnień konfiguracji PHP,
o których powinieneś wiedzieć, jest sposób
raportowania błędów. W PHP mamy osiem
typów błędów oraz trzy typy definiowane przez
użytkownika (o których nie będziemy tutaj
mówić). W tabeli 3.1 wymienione są cztery
najważniejsze typy błędów, wraz z opisami
i przykładami.

Można określić, w jaki sposób PHP będzie
raportował błędy, korzystając z funkcji

 

 )+,

. Wymieniona funkcja jako parametru

oczekuje liczby lub stałej (stała to ciąg nie ujęty
w apostrofy, który ma zdefiniowane wcześniej
znaczenie) w celu zmiany tego poziomu.
Na przykład:

1J14QS:"",D?9! 9DH1390

1J14Q J **S:""51I 3!H10

1J14Q J **NT J%& S:

å""1H!I 190

Ostatni przykład pozwala na ustawienie
wyświetlania wszystkich komunikatów błędów
poza typem

  

(

-.

oznacza i nie). Można

zastosować to ustawienie do naszego skryptu

obsluga_formularz.php, aby usunąć komunikaty
o błędach (rysunek 3.12).

Listing 3.6. Można ustawić poziom raportowania
błędów przez PHP, aby dawał mniej lub więcej
informacji zwrotnej

/#$%& ' ()*&+"",-&""$$ . *

/01("" 

='2""33303-014"5"' (/"$$"

' (/+1(0

-' ( ( '2""33303-014"/666"' (

'

< '+78 91+

91 "' (:

9' 1+;;<6+="

@(31I1"(

A"'

;B1

6M'""*4-0@1B(4JF1 (!0'

Q3I!9S

/

//JQR(J1RG/S:

""1!3U( 9!ECBDC9'0

( ?D,99EFDG/2$HDA>

G 53   

/-

/""11! I!10' (0

/<""%! I2DG!3CG+ (G

1C1!H1 !0

/@

/AP(P G!CHI !

H1 !0B":

/;!HD!1D!!

P1112PH1 !:

/6

=M

=/"B1

=="' (

Tabela 3.1. Cztery najczęściej spotykane typy błędów w PHP

Typy błędów PHP

Typ

Opis

Przykład

Notice

Błąd niekrytyczny, który może (ale nie musi)
oznaczać problem.

Odwołanie się do zmiennej bez wartości.

Warning

Błąd niekrytyczny, który nie zawsze oznacza
wystąpienie poważnego problemu.

Przekazanie do funkcji parametru o niewłaściwym typie.

Parse error

Błąd krytyczny powodowany przez błąd składni.

Brak średnika lub brak pary dla apostrofu, nawiasu
lub klamry.

Error

Ogólny błąd krytyczny.

Problem z przydziałem pamięci.

Raportowa

nie błędów

background image

Formularze HTML i PHP

79

Rysunek 3.13. Jeszcze raz wypełniamy formularz…

Rysunek 3.14. …i teraz komunikaty o błędach
zniknęły

Aby ustawić poziom raportowania błędów:

1.

Otwórz w edytorze plik obsluga_

formularz.php (listing 3.5).

2.

Po wierszu zawierającym

+,

wprowadź następujący wiersz (listing 3.6):

1J14Q J **NT J%& S:

3.

Zapisz plik pod nazwą

) 

  &

.

4.

Wyślij plik na serwer WWW i obejrzyj go
w przeglądarce (rysunki 3.13 oraz 3.14).

W tym momencie powinieneś widzieć
wynik pomyślnego przetworzenia skryptu
(rysunek 3.9) lub brakujące wartości
zmiennych, ale bez komunikatów błędów
(rysunek 3.14). W następnym podrozdziale
pokażemy, w jaki sposób poradzić sobie
z problemem brakujących zmiennych.

Wskazówki



W podręczniku PHP wymienione są
wszystkie poziomy raportowania błędów,
ale przytoczone tutaj są najbardziej użyteczne.



Możesz również zmienić poziom
raportowania błędów PHP w pliku php.ini,
ale taka zmiana wpłynie na wszystkie
skrypty. Jeżeli masz własny serwer PHP,
w czasie tworzenia własnych skryptów
prawdopodobnie będziesz chciał odpowiednio
skonfigurować tę funkcję. Zapoznaj się
z podrozdziałem „Konfigurowanie PHP”
w dodatku A.



W naszym skrypcie pod nazwą obsluga_

formularz.php błędy

  

wskazują na

problem — do zmiennej nie została
przypisana wartość. Ale ten problem jest na
tyle oczywisty w wynikowej stronie WWW,
że wyłączenie komunikatu o błędzie wydaje
się całkowicie uzasadnione.

Raportowa

nie błędów

background image

Spis treści

7

Spis treści

Rozdział 8. Tworzenie aplikacji WWW

209

Tworzenie szablonów..............................................................................210

Użycie zewnętrznych plików ..................................................................218

Użycie stałych .........................................................................................224

Operacje na datach i czasie .....................................................................229

Obsługa formularzy HTML za pomocą PHP — powtórzenie ................231

Tworzenie lepkich formularzy ................................................................237

Wysyłanie poczty elektronicznej.............................................................244

Buforowanie danych wyjściowych .........................................................248

Manipulowanie nagłówkami HTTP ........................................................252

Rozdział 9. Cookie i sesje

259

Czym są cookie?......................................................................................260

Tworzenie plików cookie ........................................................................262

Czytanie danych z cookie........................................................................268

Dodawanie parametrów do plików cookie ..............................................273

Kasowanie plików cookie .......................................................................278

Czym są sesje? ........................................................................................281

Tworzenie sesji........................................................................................282

Odczytywanie zmiennych sesji ...............................................................286

Kasowanie sesji .......................................................................................289

Rozdział 10. Tworzenie funkcji

291

Tworzenie i wykorzystywanie prostych funkcji......................................292

Tworzenie i wywoływanie funkcji z argumentami .................................298

Ustawianie domyślnych wartości argumentów .......................................302

Tworzenie i wykorzystanie funkcji zwracających wartość .....................306

Co to jest zasięg zmiennych? ..................................................................311

Rozdział 11. Pliki i katalogi

317

Prawa do plików......................................................................................318

Zapis do pliku..........................................................................................323

Blokowanie plików .................................................................................330

Odczyt z pliku .........................................................................................333

Obsługa przesyłania plików ....................................................................336

Przeglądanie katalogów...........................................................................344

Tworzenie katalogów ..............................................................................350

Przyrostowy odczyt pliku........................................................................357

background image

Spis treści

8

Spis treści

Rozdział 12. Wprowadzenie do baz danych

363

Wprowadzenie do SQL ...........................................................................364

Podłączanie do MySQL...........................................................................366

Obsługa błędów MySQL.........................................................................370

Tworzenie i wybieranie bazy danych ......................................................373

Tworzenie tabeli ......................................................................................376

Wstawianie danych do bazy danych........................................................381

Odczytywanie danych z bazy danych......................................................387

Usuwanie informacji z bazy danych........................................................393

Aktualizacja informacji w bazie danych .................................................399

Rozdział 13. Wyrażenia regularne

405

Czym są wyrażenia regularne?................................................................406

Wyszukiwanie wzorców..........................................................................408

Użycie literałów ......................................................................................414

Użycie metaznaków ................................................................................416

Użycie kwantyfikatorów .........................................................................419

Użycie klas ..............................................................................................421

Dopasowywanie i zamiana wzorców ......................................................424

Dodatek A

Instalacja i konfiguracja

429

Instalacja w systemie Windows 2000 .....................................................430

Używanie programu MySQL monitor ....................................................435

Tworzenie użytkowników MySQL .........................................................437

Konfiguracja PHP ...................................................................................443

Dodatek B

Zasoby

445

Zasoby sieci na temat PHP......................................................................446

Zasoby na temat baz danych ...................................................................449

Tematy zaawansowane............................................................................450

Dziesięć najczęściej zadawanych pytań

(lub najczęściej zgłaszanych problemów) .............................................451

Tabele ......................................................................................................454

Skorowidz

457


Wyszukiwarka

Podobne podstrony:
PHP Tworzenie stron WWW Szybki start phpszs
PHP Tworzenie stron WWW Szybki start phpszs
PHP Tworzenie stron WWW Szybki start 2
PHP Tworzenie stron WWW Szybki start phpszs
PHP Tworzenie stron WWW Szybki start
PHP Tworzenie stron WWW Szybki start phpszs
PHP Tworzenie stron WWW Szybki start
Joomla Tworzenie stron WWW Szybki start
PHP5 Zaawansowane tworzenie stron WWW Szybki start
Joomla Tworzenie stron WWW Szybki start

więcej podobnych podstron