Wprowadzenie do tworzenia dynamicznych witryn WWW dla początkujących
Jak tworzyć dynamiczne aplikacje internetowe w języku PHP?
Jak zaprojektować strukturę bazy danych?
Jak wykorzystać możliwości programowania obiektowego?
Chcesz dodać swojej stronie życia, stworzyć funkcjonalny portal lub sklep internetowy, a może napisać własny blog? Czujesz, że tworzenie atrakcyjnych witryn WWW korzystających z baz danych leży w zasięgu Twoich możliwości? Zatem skorzystaj z potencjału języka PHP i bazy danych MySQL. Technologia ta od dawna cieszy się zasłużoną popularnością wśród webmasterów. Prosta składnia i ogromne możliwości języka PHP w połączeniu ze stabilnością i wydajnością bazy MySQL pozwalają na tworzenie rozbudowanych serwisów i aplikacji internetowych przy relatywnie niskim nakładzie pracy. Ogromnym atutem PHP i MySQL jest fakt, iż są one dostępne nieodpłatnie, na licencji open source.
'PHP i MySQL. Księga przykładów' to doskonałe wprowadzenie do projektowania dynamicznych witryn i aplikacji internetowych z wykorzystaniem tych technologii. Jeśli dopiero rozpoczynasz swoją karierę twórcy serwisów WWW, znajdziesz tu mnóstwo niezbędnych informacji, dzięki którym szybko i bez problemu poznasz możliwości PHP i MySQL. Czytając tę książkę, opanujesz podstawy języka PHP, zasady programowania obiektowego, zarządzania sesjami i użytkownikami oraz operacji na plikach. Dowiesz się także, jak projektować i tworzyć bazy danych oraz jak administrować serwerem MySQL. Ponadto nauczysz się zabezpieczać aplikacje WWW przed dostępem osób niepowołanych oraz zastosujesz najlepsze praktyki polecane przez prawdziwych mistrzów programowania.
Pobieranie i instalowanie PHP i MySQL
Struktura skryptów PHP
Podstawowe elementy języka PHP
Zmienne, stałe i operatory
Obsługa formularzy
Operacje na plikach i katalogach
Wyrażenia regularne
Praca z serwerem MySQL
Tworzenie baz i tabel
Manipulowanie danymi za pomocą poleceń języka SQL
Połączenie skryptów PHP z bazami danych
Zarządzanie sesjami i plikami cookie
Programowanie obiektowe w PHP
Poznaj język PHP i korzystaj z bazy MySQL,
tworząc zapierające dech dynamiczne witryny WWW!
Darmowy fragment publikacji:
PHP i MySQL.
KsiŒga przyk‡ad(cid:243)w
Autor: Ellie Quigley, Marko Gargenta
T‡umaczenie: Robert G(cid:243)rczyæski
ISBN: 978-83-246-1020-4
Tytu‡ orygina‡u: PHP and MySQL by Example
Format: B5, stron: 936
Zawiera CD-ROM
Wprowadzenie do tworzenia dynamicznych witryn WWW dla pocz„tkuj„cych
(cid:149) Jak tworzy(cid:230) dynamiczne aplikacje internetowe w jŒzyku PHP?
(cid:149) Jak zaprojektowa(cid:230) strukturŒ bazy danych?
(cid:149) Jak wykorzysta(cid:230) mo¿liwo(cid:156)ci programowania obiektowego?
Chcesz doda(cid:230) swojej stronie ¿ycia, stworzy(cid:230) funkcjonalny portal lub sklep internetowy,
a mo¿e napisa(cid:230) w‡asny blog? Czujesz, ¿e tworzenie atrakcyjnych witryn WWW
korzystaj„cych z baz danych le¿y w zasiŒgu Twoich mo¿liwo(cid:156)ci? Zatem skorzystaj
z potencja‡u jŒzyka PHP i bazy danych MySQL. Technologia ta od dawna cieszy siŒ
zas‡u¿on„ popularno(cid:156)ci„ w(cid:156)r(cid:243)d webmaster(cid:243)w. Prosta sk‡adnia i ogromne mo¿liwo(cid:156)ci
jŒzyka PHP w po‡„czeniu ze stabilno(cid:156)ci„ i wydajno(cid:156)ci„ bazy MySQL pozwalaj„
na tworzenie rozbudowanych serwis(cid:243)w i aplikacji internetowych przy relatywnie niskim
nak‡adzie pracy. Ogromnym atutem PHP i MySQL jest fakt, i¿ s„ one dostŒpne
nieodp‡atnie, na licencji open source.
(cid:132)PHP i MySQL. KsiŒga przyk‡ad(cid:243)w(cid:148) to doskona‡e wprowadzenie do projektowania
dynamicznych witryn i aplikacji internetowych z wykorzystaniem tych technologii.
Czytaj„c tŒ ksi„¿kŒ, opanujesz podstawy jŒzyka PHP, zasady programowania
obiektowego, zarz„dzania sesjami i u¿ytkownikami oraz operacji na plikach. Dowiesz
siŒ tak¿e, jak projektowa(cid:230) i tworzy(cid:230) bazy danych oraz jak administrowa(cid:230) serwerem
MySQL. Ponadto nauczysz siŒ zabezpiecza(cid:230) aplikacje WWW przed dostŒpem os(cid:243)b
niepowo‡anych oraz zastosujesz najlepsze praktyki polecane przez prawdziwych
mistrz(cid:243)w programowania.
(cid:149) Pobieranie i instalowanie PHP i MySQL
(cid:149) Struktura skrypt(cid:243)w PHP
(cid:149) Podstawowe elementy jŒzyka PHP
(cid:149) Zmienne, sta‡e i operatory
(cid:149) Obs‡uga formularzy
(cid:149) Operacje na plikach i katalogach
(cid:149) Wyra¿enia regularne
(cid:149) Praca z serwerem MySQL
(cid:149) Tworzenie baz i tabel
(cid:149) Manipulowanie danymi za pomoc„ poleceæ jŒzyka SQL
(cid:149) Po‡„czenie skrypt(cid:243)w PHP z bazami danych
(cid:149) Zarz„dzanie sesjami i plikami cookie
(cid:149) Programowanie obiektowe w PHP
Poznaj jŒzyk PHP i korzystaj z bazy MySQL,
tworz„c zapieraj„ce dech dynamiczne witryny WWW!
Wydawnictwo Helion
ul. Ko(cid:156)ciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treści
Wstęp ............................................................................................ 13
Rozdział 1. Wprowadzenie ................................................................................ 15
1.1. Od statycznych do dynamicznych witryn internetowych ......................................... 15
1.1.1. Statyczne witryny internetowe ....................................................................... 15
1.1.2. Dynamiczne witryny internetowe ................................................................... 16
1.1.3. Czym jest oprogramowanie typu open source? .............................................. 17
1.2. PHP ........................................................................................................................... 18
1.2.1. Skąd pobrać PHP oraz dokumentację? ........................................................... 20
1.3. MySQL ..................................................................................................................... 21
1.3.1. Skąd pobrać bazę MySQL oraz dokumentację? ............................................. 22
1.3.2. Funkcje bazy danych MySQL ........................................................................ 23
1.3.3. W jaki sposób zainstalować MySQL i PHP? ................................................. 24
1.3.4. Zalety wykorzystywania MySQL-a i PHP ..................................................... 24
1.4. Podsumowanie rozdziału .......................................................................................... 26
1.4.1. Co należy wiedzieć? ....................................................................................... 26
1.4.2. Co dalej? ......................................................................................................... 26
Rozdział 2. Rozpoczynamy pracę ...................................................................... 27
2.1. Cykl życiowy strony internetowej ............................................................................ 27
2.1.1. Analiza strony internetowej ............................................................................ 28
2.2. Anatomia skryptu PHP ............................................................................................. 29
2.2.1. Etapy tworzenia skryptu PHP ......................................................................... 29
2.3. Kilka kwestii do przemyślenia ................................................................................. 35
2.3.1. PHP i HTML są odmiennymi językami ......................................................... 35
2.3.2. Polecenia, odstępy oraz znaki nowego wiersza .............................................. 37
2.3.3. Komentarze ..................................................................................................... 39
2.3.4. Używanie funkcji PHP ................................................................................... 42
2.4. Przegląd .................................................................................................................... 47
2.4.1. PHP z poziomu wiersza polecenia .................................................................. 47
2.4.2. Wyświetlanie wersji PHP ............................................................................... 47
2.4.3. Wykonywanie skryptu z poziomu wiersza polecenia ..................................... 48
2.4.4. Interaktywne uruchomienie PHP .................................................................... 49
2.4.5. Opcje PHP w wierszu polecenia ..................................................................... 50
2.4.6. Plik php.ini ...................................................................................................... 51
2.5. Podsumowanie rozdziału .......................................................................................... 52
2.5.1. Co należy wiedzieć? ....................................................................................... 52
2.5.2. Co dalej? ......................................................................................................... 53
Ćwiczenia ........................................................................................................................ 53
4
PHP i MySQL. Księga przykładów
Rozdział 3. Krótkie wprowadzenie do PHP ........................................................ 55
3.1. Szybki start, szybki przewodnik ............................................................................... 55
3.1.1. Uwaga skierowana do programistów .............................................................. 55
3.1.2. Uwaga skierowana do pozostałych ................................................................. 55
3.1.3. Składnia PHP i konstrukcje ............................................................................ 56
3.2. Podsumowanie rozdziału .......................................................................................... 68
3.2.1. Co dalej? ......................................................................................................... 68
Rozdział 4. Elementy składowe: rodzaje danych, ciągi tekstowe, zmienne i stałe ... 69
4.1. Rodzaje danych ......................................................................................................... 69
4.1.1. Ciągi tekstowe liczb ........................................................................................ 70
4.1.2. Ciągi tekstowe znaków i ujmowanie w znaki cytowania ............................... 72
4.1.3. Stałe literowe Boolean .................................................................................... 78
4.1.4. Specjalne rodzaje danych ............................................................................... 79
4.2. Zmienne .................................................................................................................... 81
4.2.1. Definicje i przypisywanie ............................................................................... 81
4.2.2. Prawidłowe nazwy zmiennych ....................................................................... 82
4.2.3. Deklarowanie i inicjalizowanie zmiennych .................................................... 82
4.2.4. Wyświetlanie zmiennych ................................................................................ 87
4.2.5. Zmienne oraz mieszane rodzaje danych ......................................................... 90
4.2.6. Łączenie a zmienne ......................................................................................... 91
4.2.7. Odniesienia ..................................................................................................... 92
4.2.8. Zmienne zmiennych (zmienne dynamiczne) .................................................. 94
4.2.9. Zasięg zmiennej .............................................................................................. 96
4.2.10. Zarządzanie zmiennymi ................................................................................ 97
4.2.11. Wprowadzenie do zmiennych formularzy .................................................. 103
4.3. Stałe ........................................................................................................................ 112
4.3.1. Co to jest stała? ............................................................................................. 112
4.3.2. Tworzenie stałych za pomocą funkcji define() ............................................. 112
4.3.3. Funkcja constant() ........................................................................................ 114
4.3.4. Stałe predefiniowane i „magiczne” .............................................................. 115
4.4. Podsumowanie rozdziału ........................................................................................ 116
4.4.1. Co należy wiedzieć? ..................................................................................... 116
4.4.2. Co dalej? ....................................................................................................... 117
Ćwiczenia ...................................................................................................................... 118
Rozdział 5. Operatory ..................................................................................... 121
5.1. Operatory PHP oraz wyrażenia .............................................................................. 121
5.1.1. Przypisanie .................................................................................................... 122
5.1.2. Pierwszeństwo i reguły łączności ................................................................. 122
5.1.3. Operatory arytmetyczne ................................................................................ 126
5.1.4. Skrócona forma operatorów przypisania ...................................................... 128
5.1.5. Operatory automatycznego zwiększenia oraz zmniejszenia o jednostkę ..... 130
5.1.6. Niektóre z użytecznych funkcji matematycznych ........................................ 133
5.1.7. Operatory rzutowania ................................................................................... 134
5.1.8. Operator konkatenacji ................................................................................... 136
5.1.9. Operatory porównania .................................................................................. 138
5.1.10. Porównywanie liczb ..................................................................................... 139
5.1.11. Porównywanie ciągów tekstowych .............................................................. 141
5.1.12. Operatory logiczne ....................................................................................... 143
5.1.13. Operator warunkowy .................................................................................... 155
5.1.14. Operatory bitowe .......................................................................................... 158
5.1.15. Operatory uruchamiania ............................................................................... 162
5.1.16. Operator kontroli błędów .............................................................................. 162
5.1.17. Operatory rodzajów ...................................................................................... 164
Spis treści
5
5.2. Podsumowanie rozdziału ........................................................................................ 164
5.2.1. Co należy wiedzieć? ..................................................................................... 164
5.2.2. Co dalej? ....................................................................................................... 165
Ćwiczenia ...................................................................................................................... 165
Rozdział 6. Ciągi tekstowe ............................................................................. 167
6.1. Co to jest ciąg tekstowy? ........................................................................................ 167
6.1.1. Ujmowanie w cudzysłów .............................................................................. 168
6.1.2. Operatory ciągów tekstowych ...................................................................... 172
6.2. Funkcje operujące na ciągach tekstowych .............................................................. 175
6.2.1. Formatowanie i wyświetlanie ciągów tekstowych ....................................... 175
6.2.2. Formatowanie liczb oraz wartości pieniężnych ............................................ 181
6.2.3. Określanie długości ciągu tekstowego .......................................................... 183
6.2.4. Określanie liczby słów w ciągu tekstowym .................................................. 184
6.2.5. Zmiana wielkości znaków ciągu tekstowego ............................................... 185
6.2.6. Porównywanie ciągów tekstowych ............................................................... 188
6.2.7. Wyszukiwanie podobieństw w ciągach tekstowych ..................................... 196
6.2.8. Dzielenie ciągu tekstowego .......................................................................... 201
6.2.9. Powtarzanie ciągu tekstowego ...................................................................... 204
6.2.10. Przycinanie i dopełnianie ciągów tekstowych .............................................. 204
6.2.11. Wyszukiwanie i zastępowanie ...................................................................... 208
6.2.12. Określanie położenia w ciągu tekstowym .................................................... 213
6.2.13. Wyodrębnianie fragmentów ciągu tekstowego — podciągów ..................... 215
6.2.14. Specjalne ciągi tekstowe oraz znaki ............................................................. 224
6.2.15. Praca ze znakami specjalnymi HTML .......................................................... 236
6.3. Inne funkcje operujące na ciągach tekstowych ...................................................... 240
6.4. Podsumowanie rozdziału ........................................................................................ 244
6.4.1. Co należy wiedzieć? ................................................................................... 244
6.4.2. Co dalej? ..................................................................................................... 244
Ćwiczenia ...................................................................................................................... 245
Rozdział 7. Instrukcje warunkowe oraz pętle .................................................. 247
7.1. Struktury sterujące, bloki oraz instrukcje złożone .................................................. 247
7.1.1. Instrukcje warunkowe ................................................................................... 248
7.2. Pętle ........................................................................................................................ 259
7.2.1. Pętla while .................................................................................................... 259
7.2.2. Pętla do-while ............................................................................................... 261
7.2.3. Pętla for ......................................................................................................... 263
7.2.4. Pętla foreach ................................................................................................. 267
7.2.5. Sterowanie działaniem pętli za pomocą poleceń break oraz continue ......... 268
7.3. Podsumowanie rozdziału ........................................................................................ 272
7.3.1. Co należy wiedzieć? ..................................................................................... 272
7.3.2. Co dalej? ....................................................................................................... 273
Ćwiczenia ...................................................................................................................... 273
Rozdział 8. Tablice ......................................................................................... 277
8.1. Co to jest tablica? ................................................................................................... 277
8.1.1. Tworzenie tablicy i nadawanie jej nazwy ..................................................... 280
8.1.2. Dostęp do elementów tablicy (wartości) ...................................................... 286
8.1.3. Wyświetlanie tablicy .................................................................................... 292
8.1.4. Używanie pętli w celu uzyskania dostępu do elementów tablicy ................. 296
8.1.5. Sprawdzenie, czy tablica istnieje .................................................................. 304
8.1.6. Tworzenie ciągów tekstowych z tablic oraz tablic z ciągów tekstowych .... 306
8.1.7. Określanie wielkości tablicy ......................................................................... 309
6
PHP i MySQL. Księga przykładów
8.1.8. Wyodrębnianie kluczy oraz wartości z tablic ............................................... 312
8.1.9. Tworzenie zmiennych z elementów tablicy ................................................. 317
8.1.10. Tablice wielowymiarowe ............................................................................. 325
8.1.11. Sortowanie tablic .......................................................................................... 331
8.1.12. Losowe wybieranie elementów tablicy ........................................................ 340
8.2. Modyfikowanie tablic (usuwanie tablicy, usuwanie, dodawanie
oraz zmiana elementów) ............................................................................................. 345
8.2.1. Usuwanie tablicy i jej elementów ................................................................. 345
8.2.2. Dodawanie elementów do tablicy ................................................................. 351
8.2.3. Kopiowanie elementów tablicy .................................................................... 356
8.2.4. Łączenie i złączanie tablic ............................................................................ 358
8.2.5. Operatory tablicy .......................................................................................... 363
8.2.6. Więcej funkcji dotyczących tablic ................................................................ 367
8.3. Podsumowanie rozdziału ........................................................................................ 371
8.3.1. Co należy wiedzieć? ..................................................................................... 371
8.3.2. Co dalej? ....................................................................................................... 372
Ćwiczenia ...................................................................................................................... 372
Rozdział 9. Funkcje zdefiniowane przez użytkownika ....................................... 373
9.1. Co to jest funkcja? .................................................................................................. 373
9.1.1. Deklaracja, definicja i wywoływanie funkcji ............................................... 374
9.1.2. Przekazywanie argumentów ......................................................................... 378
9.1.3. Wartości zwrotne .......................................................................................... 390
9.1.4. Używanie funkcji wywołania zwrotnego ..................................................... 398
9.1.5. Zasięg ............................................................................................................ 402
9.1.6. Funkcje zagnieżdżone ................................................................................... 408
9.1.7. Funkcje rekurencyjne .................................................................................... 411
9.1.8. Biblioteki funkcji — require oraz include .................................................... 414
9.2. Podsumowanie rozdziału ........................................................................................ 418
9.2.1. Co należy wiedzieć? ..................................................................................... 418
9.2.2. Co dalej? ....................................................................................................... 418
Ćwiczenia ...................................................................................................................... 419
Rozdział 10. Więcej o formularzach PHP .......................................................... 421
10.1. Wprowadzenie ...................................................................................................... 421
10.2. Ogólny opis formularzy HTML ........................................................................... 421
10.2.1. Rola przeglądarki internetowej ................................................................. 422
10.2.2. Rola serwera ............................................................................................. 427
10.2.3. Tworzenie formularzy HTML .................................................................. 427
10.3. PHP i formularze .................................................................................................. 433
10.3.1. Dyrektywa register_globals ...................................................................... 434
10.3.2. Superglobalne tablice PHP służące do pobierania danych formularza ..... 435
10.3.3. Request Method ........................................................................................ 436
10.3.4. Silne znaki w nazwach pól formularza
oraz danych wejściowych użytkownika ................................................... 436
10.3.5. Parametry formularza i tablica $_REQUEST ........................................... 439
10.3.6. Parametry formularza i styl średni ............................................................ 443
10.3.7. Parametry formularza i styl długi (stary) .................................................. 450
10.3.8. Przetwarzanie formularzy z możliwościami wielu wyborów ................... 450
10.3.9. Formularze używające przycisków graficznych ........................................... 454
10.3.10. Przetwarzanie formularzy w dokumencie HTML .................................... 457
10.3.11. Używanie ukrytych pól ............................................................................. 459
10.3.12. Przekierowanie użytkownika .................................................................... 462
10.3.13. Przekazywanie plików .............................................................................. 466
Spis treści
7
10.3.14. Trwałe formularze .................................................................................... 473
10.3.15. Skąd pobrać informacje o tablicach superglobalnych? ............................ 477
10.3.16. W jaki sposób pobrać informacje o serwerze? ......................................... 478
10.3.17. W jaki sposób pobrać informacje dotyczące środowiska? ....................... 481
10.4. Podsumowanie rozdziału ...................................................................................... 483
10.4.1. Co należy wiedzieć? ................................................................................. 483
10.4.2. Co dalej? ................................................................................................... 484
Rozdział 11. Pliki i katalogi ............................................................................. 485
11.1. Pliki ....................................................................................................................... 485
11.1.1. Prawa dostępu do plików oraz prawo własności ...................................... 485
11.1.2. Prawa dostępu na platformie Unix/Linux ................................................. 486
11.1.3. Prawa dostępu w systemie Windows ........................................................ 489
11.2. Serwer WWW, PHP oraz prawa dostępu ............................................................. 490
11.2.1. Wbudowane funkcje PHP ......................................................................... 491
11.2.2. Uchwyt pliku ............................................................................................ 492
11.2.3. Otworzenie pliku ....................................................................................... 493
11.2.4. Otwieranie pliku w celu odczytu .............................................................. 495
11.2.5. Pozycja wewnętrznego wskaźnika pliku .................................................. 504
11.2.6. Otwieranie adresu URL w celu odczytu ................................................... 509
11.2.7. Odczytywanie plików bez korzystania z uchwytu pliku .......................... 510
11.2.8. Otwieranie pliku w celu zapisu oraz dołączania danych .......................... 517
11.2.9. Sprawdzanie plików .................................................................................. 522
11.2.10. Tworzenie, kopiowanie, zmiana nazwy i usuwanie plików ..................... 527
11.3. Katalogi ................................................................................................................ 530
11.3.1. Otwieranie oraz odczyt danych z katalogu ............................................... 530
11.3.2. Pobieranie ścieżki dostępu ........................................................................ 532
11.3.3. Zmiana i pobieranie bieżącego katalogu roboczego ................................. 533
11.4. Zarządzanie zawartością za pomocą plików nagłówkowych ............................... 534
11.4.1. Praktyczny przykład ................................................................................. 535
11.5. Podsumowanie rozdziału ...................................................................................... 542
11.5.1. Co należy wiedzieć? ................................................................................. 542
11.5.2. Co dalej? ................................................................................................... 543
Ćwiczenia ...................................................................................................................... 543
Rozdział 12. Wyrażenia regularne i dopasowanie do wzorca .............................. 545
12.1. Co to jest wyrażenie regularne? ............................................................................ 545
12.2. Funkcje dopasowania do wzorca .......................................................................... 547
12.2.1. Wyszukiwanie wzorca .............................................................................. 548
12.2.2. Wyszukiwanie i zastępowanie .................................................................. 555
12.2.3. Przejmowanie kontroli — metaznaki regex .............................................. 567
12.2.4. Wyszukiwanie wzorca w pliku tekstowym .............................................. 601
12.2.5. Sprawdzanie poprawności formularzy za pomocą PHP ........................... 604
12.2.6. Pomoc w internecie ................................................................................... 611
12.3. Podsumowanie rozdziału ...................................................................................... 612
12.3.1. Co należy wiedzieć? ................................................................................. 613
12.3.2. Co dalej? ................................................................................................... 613
Ćwiczenia ...................................................................................................................... 613
Rozdział 13. Wprowadzenie do MySQL-a ........................................................... 615
13.1. Ogólny opis baz danych ....................................................................................... 615
13.1.1. Bazy danych typu klient-serwer ............................................................... 616
13.1.2. Przesyłanie komunikatów do bazy danych ............................................... 617
13.1.3. Mocne i słabe strony MySQL-a ................................................................ 617
8
PHP i MySQL. Księga przykładów
13.2. Anatomia relacyjnej bazy danych ......................................................................... 619
13.2.1. Serwer bazy danych .................................................................................. 619
13.2.2. Baza danych .............................................................................................. 620
13.2.3. Tabele ........................................................................................................ 620
13.2.4. Rekordy oraz pola ..................................................................................... 621
13.2.5. Klucz podstawowy i indeksy .................................................................... 622
13.2.6. Schemat bazy danych ................................................................................ 623
13.3. Nawiązywanie połączenia z bazą danych ............................................................. 623
13.3.1. Opcje klienta wiersza polecenia mysql ..................................................... 625
13.3.2. Narzędzia z graficznym interfejsem użytkownika .................................... 627
13.4. System praw dostępu bazy danych MySQL ......................................................... 630
13.4.1. Logowanie do serwera bazy danych ......................................................... 631
13.4.2. Określanie dostępnych baz danych ........................................................... 632
13.4.3. Tabela user ................................................................................................ 634
13.4.4. Tabela db ................................................................................................... 635
13.4.5. Tabela host ................................................................................................ 636
13.4.6. Rzeczywisty przykład ............................................................................... 637
13.4.7. Nadawanie i odbieranie praw ................................................................... 638
13.4.8. Tworzenie i usuwanie bazy danych .......................................................... 639
13.4.9. Niektóre użyteczne funkcje MySQL-a ..................................................... 641
13.5. Podsumowanie rozdziału ...................................................................................... 642
13.5.1. Co należy wiedzieć? ................................................................................. 642
13.5.2. Co dalej? ................................................................................................... 643
Rozdział 14. Wprowadzenie do języka SQL ....................................................... 645
14.1. Co to jest SQL? ..................................................................................................... 645
14.1.1. Standaryzacja SQL ................................................................................... 646
14.1.2. Wykonywanie poleceń SQL ..................................................................... 646
14.1.3. Informacje o poleceniach i zapytaniach SQL-a .......................................... 648
14.1.4. SQL i baza danych .................................................................................... 651
14.1.5. Tabele bazy danych SQL .......................................................................... 652
14.2. SQL Data Manipulation Language (DML) .......................................................... 653
14.2.1. Polecenie SELECT ................................................................................... 654
14.2.2. Polecenie INSERT .................................................................................... 667
14.2.3. Polecenie UPDATE .................................................................................. 668
14.2.4. Polecenie DELETE ................................................................................... 669
14.3. SQL Data Definition Language ............................................................................ 670
14.3.1. Utworzenie bazy danych ........................................................................... 670
14.3.2. Rodzaje danych SQL ................................................................................ 671
14.3.3. Tworzenie tabeli ....................................................................................... 671
14.3.4. Tworzenie klucza ...................................................................................... 675
14.3.5. Związki ..................................................................................................... 677
14.3.6. Modyfikacja tabeli .................................................................................... 681
14.3.7. Usuwanie tabeli ......................................................................................... 682
14.3.8. Usuwanie bazy danych ............................................................................. 682
14.4. Funkcje SQL ......................................................................................................... 682
14.4.1. Funkcje liczbowe ...................................................................................... 683
14.4.2. Funkcje operujące na ciągach tekstowych ................................................ 686
14.4.3. Funkcje daty i godziny .............................................................................. 687
14.5. Podsumowanie rozdziału ...................................................................................... 690
14.5.1. Co należy wiedzieć? ................................................................................. 690
14.5.2. Co dalej? ................................................................................................... 691
Ćwiczenia ...................................................................................................................... 691
Spis treści
9
Rozdział 15. Integracja PHP oraz MySQL-a ....................................................... 695
15.1. Wprowadzenie ...................................................................................................... 695
15.1.1. Nawiązanie połączenia z serwerem bazy danych ..................................... 695
15.1.2. Wybór bazy danych .................................................................................. 698
15.1.3. Wykonywanie poleceń SQL (INSERT, UPDATE, DELETE) ................. 699
15.1.4. Pobieranie wyników zapytania (SELECT) ............................................... 702
15.1.5. Inne użyteczne funkcje MySQL-a ............................................................ 706
15.2. Przykład w postaci księgi gości ............................................................................ 711
15.2.1. Krok 1. — projekt bazy danych ................................................................ 712
15.2.2. Krok 2. — strona pozwalająca umieścić komentarz ................................. 713
15.2.3. Krok 3. — wyświetlenie wszystkich komentarzy .................................... 717
15.2.4. Podsumowanie przykładu ......................................................................... 718
15.3. Podsumowanie rozdziału ...................................................................................... 719
15.3.1. Co należy wiedzieć? ................................................................................. 719
15.3.2. Co dalej? ................................................................................................... 719
Ćwiczenia ...................................................................................................................... 719
Rozdział 16. Mechanizm cookies oraz sesje ..................................................... 721
16.1. Co oznacza termin bezstanowy? ........................................................................... 721
16.2. Czym są pliki cookie? ........................................................................................... 722
16.2.1. Składniki pliku cookie .............................................................................. 723
16.2.2. Atrybuty cookie ........................................................................................ 724
16.3. PHP i mechanizm cookies .................................................................................... 725
16.3.1. Tworzenie cookie za pomocą funkcji setcookie() .................................... 725
16.3.2. Śledzenie użytkowników witryny za pomocą mechanizmu cookies ........ 732
16.3.3. Wydłużenie okresu ważności cookie ........................................................ 737
16.3.4. Buforowanie a nagłówki HTTP ................................................................ 738
16.3.5. Usuwanie pliku cookie .............................................................................. 742
16.4. Co to jest sesja? .................................................................................................... 742
16.4.1. Gdzie przechowywać sesje? ..................................................................... 745
16.4.2. Uruchomienie sesji bazującej na plikach cookie ...................................... 746
16.4.3. Rejestrowanie sesji ................................................................................... 748
16.4.4. Zapisywanie tablic w sesji ........................................................................ 752
16.4.5. Funkcje cookie sesji oraz opcje konfiguracyjne ....................................... 756
16.4.6. Dokonywanie ustawień za pomocą sesji .................................................. 757
16.4.7. Nazywanie sesji ........................................................................................ 765
16.4.8. Sesje bez plików cookie ............................................................................ 766
16.4.9. Przekazywanie identyfikatora sesji za pomocą łącza ............................... 771
16.4.10. Zmiana identyfikatora sesji ....................................................................... 776
16.4.11. Zakończenie sesji ...................................................................................... 778
16.4.12. Konfiguracja sesji w trakcie działania programu ..................................... 780
16.4.13. Implementacja systemu logowania z użyciem sesji ................................. 782
16.5. Podsumowanie rozdziału ...................................................................................... 787
16.5.1. Co należy wiedzieć? ................................................................................. 788
16.5.2. Co dalej? ................................................................................................... 788
Ćwiczenia ...................................................................................................................... 789
Rozdział 17. Obiekty ....................................................................................... 791
17.1. Co to są obiekty? .................................................................................................. 791
17.1.1. Obiekty i klasy .......................................................................................... 792
17.2. Praca z klasami ..................................................................................................... 793
17.2.1. Definicja klasy .......................................................................................... 793
17.2.2. Ustanawianie egzemplarza klasy .............................................................. 794
17.2.3. Tworzenie kompletnej klasy ..................................................................... 797
10
PHP i MySQL. Księga przykładów
17.2.4. Wyświetlanie obiektu ............................................................................... 800
17.2.5. Funkcje pobierające informacje o klasie .................................................. 801
17.2.6. Hermetyzacja oraz ukrywanie informacji ................................................. 801
17.2.7. Elementy klasy oraz zasięg ....................................................................... 802
17.2.8. Metody magiczne ...................................................................................... 805
17.2.9. Dziedziczenie ............................................................................................ 815
17.2.10. Nadpisywanie metod ................................................................................ 819
17.2.11. Dostęp chroniony ...................................................................................... 821
17.3. Niektóre funkcje obiektowe w PHP 5 .................................................................. 825
17.3.1. Klasy i metody final .................................................................................. 825
17.3.2. Elementy statyczne ................................................................................... 826
17.3.3. Stałe w klasie ............................................................................................ 828
17.3.4. Ponowne użycie klasy ............................................................................... 829
17.4. Podsumowanie rozdziału ...................................................................................... 834
17.4.1. Co należy wiedzieć? ................................................................................. 834
Ćwiczenia ...................................................................................................................... 835
Dodatek A Tworzenie galerii sztuki ................................................................ 837
A.1. Ogólny opis projektu ............................................................................................. 837
A.2. Strony publiczne i prywatne .................................................................................. 837
A.3. Tworzenie witryny internetowej ............................................................................ 838
A.3.1. Tworzenie bazy danych .............................................................................. 839
A.3.2. Strony administracyjne ............................................................................... 840
A.3.3. Strony publiczne ......................................................................................... 850
A.3.4. Ochrona stron za pomocą logowania .......................................................... 856
A.4. Instalacja aplikacji galerii sztuki ........................................................................... 858
A.4.1. Gdzie znajdują się pliki witryny Canvas Gallery? ........................................... 858
A.4.2. Instalacja bazy danych MySQL .................................................................. 859
A.4.3. Edycja stron PHP ........................................................................................ 861
A.5. Podsumowanie ....................................................................................................... 861
Dodatek B PHP i wiadomości e-mail .............................................................. 863
B.1. Serwer poczty ......................................................................................................... 863
B.2. MIME (Multipurpose Internet Mail Extensions) ................................................... 864
B.3. Opcje środowiska uruchomieniowego ................................................................... 864
B.4. Funkcja mail() ........................................................................................................ 865
B.5. Wysyłanie prostej wiadomości e-mail ................................................................... 866
B.6. Przykład — wysyłanie wiadomości HTML .......................................................... 867
B.6.1. Wysyłanie wiadomości e-mail z załącznikiem ........................................... 869
Dodatek C PHP oraz funkcje daty i godziny .................................................... 873
C.1. Formatowanie daty i godziny ................................................................................. 873
C.1.1. Funkcja date() .............................................................................................. 873
C.1.2. Funkcja strftime() ........................................................................................ 876
C.2. Pobieranie znacznika czasu .................................................................................... 878
C.2.1. Funkcja time() ............................................................................................. 878
C.2.2. Funkcja mktime() ........................................................................................ 879
C.2.3. Tworzenie znacznika czasu systemu Unix z ciągu tekstowego .................. 881
C.3. Pobieranie daty i godziny ....................................................................................... 882
C.3.1. Sprawdzanie poprawności daty ................................................................... 884
Spis treści
11
Dodatek D Bezpieczeństwo oraz usuwanie błędów .......................................... 885
D.1. Bezpieczeństwo ..................................................................................................... 885
D.1.1. Bezpieczeństwo sieci oraz protokół SSL .................................................... 885
D.1.2. Bezpieczeństwo systemu operacyjnego, serwera WWW
oraz systemu plików .................................................................................... 886
D.2. Zabezpieczanie PHP oraz MySQL ........................................................................ 887
D.2.1. Podstawowe zasady bezpieczeństwa w PHP .............................................. 887
D.3. Usuwanie błędów ................................................................................................... 893
D.3.1. Włączenie komunikatów błędów ................................................................ 893
D.3.2. Usuwanie błędów składni w pierwszej kolejności ...................................... 894
D.3.3. Polecenia diagnostyczne print ..................................................................... 895
D.3.4. Usuwanie błędów SQL ............................................................................... 898
D.3.5. Więcej informacji dotyczących usuwania błędów ...................................... 899
Dodatek E Procedury instalacyjne ................................................................. 901
E.1. Informacje o serwerach WWW .............................................................................. 901
E.2. Instalacja serwera Apache w systemie Windows ................................................... 902
E.3. Instalacja PHP w systemie Windows ..................................................................... 903
E.4. Instalacja PHP w systemach Linux/Unix ............................................................... 903
E.5. Instalacja PHP w systemie Mac OS X ................................................................... 904
E.6. Konfiguracja serwera Apache do pracy z modułem PHP
(wszystkie platformy) ............................................................................................. 904
E.6.1. Sprawdzanie instalacji PHP oraz Apache .................................................... 904
E.7. Konfiguracja pliku php.ini (wszystkie platformy) ................................................. 905
E.8. Instalacja MySQL-a w systemie Windows ............................................................ 907
E.9. Instalacja MySQL-a w systemach Linux/Unix ...................................................... 907
E.10. Instalacja MySQL-a w systemie Mac OS X ........................................................ 907
E.11. Przeczytaj podręcznik .......................................................................................... 907
Skorowidz ................................................................................... 909
Rozdział 7.
Instrukcje warunkowe
oraz pętle
7.1. Struktury sterujące, bloki
oraz instrukcje złożone
Na rysunku 7.1 został pokazany schemat przykładowego programu. Pojęcie schematu
oznacza graficzne przedstawienie elementów projektu. Jest to pomocne podczas uświa-
damiania sobie, jakie decyzje muszą zostać podjęte w celu realizacji danego zadania.
Ludzie kontrolują swoje życie, podejmując decyzje, podobnie dzieje się w programach.
W rzeczywistości, według podręczników technologii komputerowych, dobry język
programowania pozwala na sterowanie działaniem programu na trzy sposoby:
(cid:141) Wykonywanie sekwencji poleceń
(cid:141) Odgałęzienie do alternatywnej sekwencji poleceń na podstawie dokonanego wyboru
(cid:141) Powtarzanie określonej sekwencji poleceń, dopóki nie zostanie spełniony warunek
Rysunek 7.1.
Schemat
przykładowego
programu
248
Rozdział 7. ♦ Instrukcje warunkowe oraz pętle
PHP musi być więc dobrym językiem programowania.
Używaliśmy już programów, które wykonywały sekwencje poleceń, jedno za drugim.
W tej chwili przeanalizujemy rozgałęzianie oraz struktury kontrolne pętli, które po-
zwalają na sterowanie działaniem i dokonywanie zmian w zależności od spełnienia
pewnych wyrażeń warunkowych.
Konstrukcje podejmowania decyzji (if, if-else, if -else if) zawierają wyrażenia
kontrolne określające wykonywany blok poleceń. Konstrukcje w postaci pętli (while,
for) pozwalają programowi na powtarzanie wykonywania bloku poleceń aż do chwili
spełnienia danego warunku.
Instrukcje złożone, inaczej nazywane blokiem, składają się z poleceń lub grupy pole-
ceń umieszczonych w nawiasach klamrowych. Składniowo blok jest odpowiednikiem
pojedynczego polecenia i zwykle znajduje się za konstrukcjami if, else, while lub
for. Przykład bloku:
{polecenie; polecenie; polecenie}
7.1.1. Instrukcje warunkowe
Konstrukcje warunkowe sterują działaniem programu. Jeżeli warunek jest prawdziwy,
wtedy program wykona blok poleceń. Natomiast jeśli warunek nie jest spełniony,
wówczas program wykona inny blok poleceń. Konstrukcje podejmowania decyzji (if,
else, switch) zawierają wyrażenia kontrolne, które określają, czy dany blok zostanie
wykonany. Spełnienie warunku po poleceniu if powoduje zwrócenie wartości true
oraz wykonanie bloku znajdującego się za poleceniem. W przeciwnym razie wartością
zwrotną jest false, a blok nie zostaje wykonany.
FORMAT KONSTRUKCJI IF:
if (warunek) {
polecenia;
}
Przykład:
if ($wiek 21) {
print Chodźmy na przyjęcie! ;
}
Blok poleceń (lub pojedyncze polecenie) jest umieszczony w nawiasach klamrowych.
Polecenia są zazwyczaj wykonywane po kolei. Jeżeli po instrukcji warunkowej znaj-
duje się tylko jedno polecenie, wówczas nawiasy klamrowe są opcjonalne.
Konstrukcja if-else. „Będzie lepiej, jeśli zapłacisz mi teraz lub…”. Czytelnik za-
pewne słyszał już takie zdania. Polecenia PHP mogą być obsługiwane w taki sam spo-
sób za pomocą rozgałęziającej struktury if-else. Taka konstrukcja pozwala na podję-
cie jednej z dwóch decyzji. Instrukcja if sprawdza pierwsze wyrażenie warunkowe
w nawiasach i jeśli wyrażenie zwraca wartość true, wówczas zostanie wykonany blok
7.1. Struktury sterujące, bloki oraz instrukcje złożone
249
poleceń znajdujący się w nawiasach klamrowych za instrukcją if. W przeciwnym
przypadku zostanie wykonany blok poleceń znajdujący się po instrukcji else. Blok
else jest opcjonalny. Zobacz listing 7.1.
FORMAT KONSTRUKCJI IF-ELSE:
if (warunek) {
polecenia1;
}
else {
polecenia2;
}
Przykład:
if ($x $y) {
print Zmienna $x jest większa. ;
}
else
{
print Zmienna $y jest większa. ;
}
LISTING 7.1.
(Formularz HTML)
html head title Opłata za przejazd /title /head
body bgcolor= lightgreen
font face= arial size= +1
form method= get action= listing7.1a.php
p Podaj swój wiek:
input type= text name= age size=2
p
input type= submit name= submit_age value= Kup bilet
/form
/body
/html
-----------------------------------------------------------------------------------
(Skrypt PHP)
html head title Opłata za przejazd /title /head
body bgcolor= lightgreen
font face= arial size= +1
p
?php
extract($_REQUEST); // Używanie funkcji extract wymaga zachowania ostrożności
(1) if ( ! isset ( $submit_age )){ // Prosta instrukcja warunkowa.
exit;
}
?
table border= 1 cellpadding= 10 tr bgcolor= yellow
?php
(2) if ( $age = 55 ){
(3) $price = 8.25;
250
Rozdział 7. ♦ Instrukcje warunkowe oraz pętle
(4) print td b Opłata za przejazd emeryta wynosi $price zł! /td ;
(5) }
(6) else {
(7) $price = 10.00;
(8) print td b Opłata za przejazd osoby dorosłej wynosi $price zł. /td ;
}
?
/body /html
OBJAŚNIENIE
(1) Jeżeli zmienna nie zostanie ustalona, to program zakończy działanie.
(2 – 4) Jeżeli wartość zmiennej $age jest większa lub równa 55, nastąpi wykonanie
wierszy trzeciego i czwartego. Zobacz rysunki 7.2 oraz 7.3.
(5) Ten zamykający nawias klamrowy kończy blok poleceń po instrukcji if. Ponieważ
w bloku znajduje się tylko jedno polecenie, nawiasy klamrowe nie są wymagane.
(6 – 8) Polecenia bloku else (wiersze 7. oraz 8.) są wykonywane, gdy instrukcja if
w wierszu drugim zwróci wartość false.
Rysunek 7.2. Formularz HTML przedstawiony na listingu 7.1
7.1. Struktury sterujące, bloki oraz instrukcje złożone
251
Rysunek 7.3. Po naciśnięciu przycisku „Kup bilet” nastąpi wysłanie formularza. Rysunek przedstawia
dane wyjściowe skryptu PHP listingu 7.1
Konstrukcja if-elseif. „Jeśli dostaniesz złotówkę, możesz pójść do sklepu, w którym
wszystko jest za złotówkę, lub jeśli dostaniesz 10 zł, wtedy możesz kupić kilka filmów,
lub jeśli dostaniesz 20 zł, wtedy możesz kupić płytę CD… lub zapomnij o tym!”. PHP
dostarcza również inną konstrukcję służącą do podejmowania decyzji if-elseif.
Pozwala ona na utworzenie struktury decyzji z wieloma możliwościami wyboru.
FORMAT KONSTRUKCJI IF-ELSEIF:
if (warunek) {
polecenia1;
}
elseif (warunek)
polecenia2;
}
elseif (warunek) {
polecenia3;
}
else {
polecenia4;
}
Jeżeli pierwsze wyrażenie warunkowe znajdujące się za słowem kluczowym if
przyjmie wartość true, wówczas nastąpi wykonanie znajdującego się za nim bloku
poleceń, a działanie programu będzie kontynuowane od poleceń znajdujących się po blo-
ku else. W przeciwnym przypadku, jeśli wyrażenie warunkowe po słowie kluczowym
252
Rozdział 7. ♦ Instrukcje warunkowe oraz pętle
przyjmie wartość false, nastąpi przejście do pierwszej instrukcji elseif i obliczenie
jej wartości. Wartość true tej instrukcji spowoduje wykonanie znajdującego się za nią
bloku instrukcji, natomiast wartość false powoduje sprawdzenie kolejnej instrukcji
elseif. Jeżeli po sprawdzeniu wszystkich instrukcji elseif żadna nie zwróci wartości
true, wtedy kontrola nad programem przechodzi do instrukcji else. Mimo że blok else
nie jest wymagany, to funkcjonuje jako działanie domyślne w przypadku, gdy wszystkie
poprzednie instrukcje warunkowe zwróciły wartość false. Przykład zastosowania kon-
strukcji if-elseif został przedstawiony na listingu 7.2. Dane wyjściowe listingu poka-
zano na rysunkach 7.4 oraz 7.5.
LISTING 7.2.
(Formularz HTML)
html
head title Opłata za przejazd /title /head
body bgcolor= azure
(1) form method= get action= listing7.2a.php
p Podaj swój wiek: br /
(2) input type= text name= age size=3 /
p
(3) input type= submit name= submit_fare value= Kup bilet /
/form
/body
/html
-----------------------------------------------------------------------------------
(Skrypt PHP)
html head title Opłata za przejazd /title /head
body bgcolor= chartreuse
font face= arial size= +1
(4) ?php
extract($_REQUEST); // Pobranie danych wejściowych formularza.
// Używanie tablicy REQUEST wymaga zachowania ostrożności
(5) if ( ! isset ($submit_fare) || $age == ){
print Należy podać swój wiek.. br / ;
exit;
}
?
table border= 1 cellpadding= 10
tr bgcolor= azure
?php
(6) if ($age 0 $age 13) {
$price = 5.00;
print td b Opłata za przejazd dziecka wynosi $price zł! /td ;
}
(7) elseif ($age = 13 $age 55 ){
$price = 8.25;
print td b Opłata za przejzad osoby dorosłej wynosi $price zł. /td ;
}
(8) elseif ( $age = 55 $age = 120){
$price = 10.00;
print td b Opłata za przejazd emeryta wynosi $price zł. /td ;
}
7.1. Struktury sterujące, bloki oraz instrukcje złożone
253
(9) else {
print td b Nie jesteś człowiekiem! /td ;
}
(10) ?
/tr
/table
/font
/body
/html
OBJAŚNIENIE
(1) W tym wierszu rozpoczyna się formularz HTML. Atrybutowi action została
przypisana nazwa skryptu, który będzie wykonany po wysłaniu formularza.
(2) Pole tekstowe o nazwie age będzie przechowywało trzy znaki.
(3) Dane wejściowe formularza HTML mają nadaną nazwę submit_fare, która
będzie używana w skrypcie PHP.
(4) Otwierający znacznik PHP nakazuje PHP rozpoczęcie przetwarzania.
(5) Przyglądamy się poleceniom PHP. Jeżeli użytkownik naciśnie przycisk wysy-
łający formularz, wtedy nastąpi wykonanie pliku skryptu. Nazwy urządzeń wej-
ściowych są przechowywane przez PHP w zmiennych $age oraz $submit_fare.
Wyrażenie warunkowe sprawdza, czy wymienione zmienne zostały ustalone.
Jeśli nie są ustawione, oznacza to, że albo formularz nie został wysłany, albo
użytkownik pozostawił niewypełnione pola, albo jedno i drugie.
(6) Jeśli wiek użytkownika jest większy niż 0 i mniejszy od 13, wtedy nastąpi wy-
konanie bloku poleceń po sprawdzającej ten warunek instrukcji if. Po wyko-
naniu bloku program będzie kontynuował swoje działanie od dziesiątego wiersza.
Jeśli sprawdzany warunek zwróci wartość false, nastąpi przejście do wiersza
siódmego.
(7) Jeżeli instrukcja warunkowa w wierszu szóstym zwróci wartość false, wtedy
program sprawdzi, czy prawdziwe jest wyrażenie warunkowe znajdujące się
po instrukcji elseif. Jeśli wspomniane wyrażenie zwróci wartość true (na
przykład podany wiek będzie większy lub równy 13, ale mniejszy od 55),
wówczas nastąpi wykonanie bloku poleceń. W przeciwnym przypadku program
przejdzie do wiersza ósmego.
(8) Jeżeli instrukcja warunkowa w wierszu siódmym zwróci wartość false, na-
stąpi sprawdzenie tej instrukcji elseif. Wartość true spowoduje wykonanie
bloku poleceń znajdującego się za instrukcją. W przeciwnym przypadku, na-
stąpi wykonanie bloku poleceń znajdującego się za instrukcją else w wierszu
dziewiątym.
(9) Jeśli żadna z powyższych instrukcji warunkowych nie zwróciła wartości true,
wtedy kontrola nad programem przechodzi do bloku else, często nazywanego
warunkiem domyślnym, i następuje wykonanie poleceń z tego bloku.
(10) Zamykający znacznik PHP, interpreter kończy tutaj swoją pracę.
254
Rozdział 7. ♦ Instrukcje warunkowe oraz pętle
Rysunek 7.4. Formularz HTML przedstawiony na listingu 7.2
Rysunek 7.5. Dane wyjściowe skryptu PHP z listingu 7.2
7.1. Struktury sterujące, bloki oraz instrukcje złożone
255
Konstrukcja switch. Konstrukcja switch jest alternatywą konstrukcji warunkowej
if-elseif, często nazywaną konstrukcją wariantową, i powoduje, że przy większej
liczbie opcji program jest łatwiejszy w odczycie.
FORMAT KONSTRUKCJI SWITCH:
switch (wyrażenie) {
case etykieta:
polecenie(a);
break;
case etykieta:
polecenie(a);
break;
...
default : polecenie;
}
Przykład:
switch ($kolor) {
case czerwony :
print Gorący! ;
break;
case niebieski :
print Zimny. ;
break;
default:
print To nie jest dobry wybór. ;
break;
}
Wartość wyrażenia switch jest dopasowywana względem wyrażeń nazwanych ety-
kieta po słowie kluczowym case. Etykiety słowa case są stałymi w postaci albo ciągu
tekstowego, albo liczb. Każda etykieta kończy się średnikiem. Etykieta domyślna (de-
fault) jest opcjonalna, ale jej wykonanie następuje wtedy, gdy żadna z wcześniej-
szych etykiet nie została dopasowana do wyrażenia switch. Po znalezieniu dopaso-
wania następuje wykonanie poleceń znajdujących się po dopasowanej etykiecie. Jeśli
żadna etykieta nie zostanie dopasowana, wówczas kontrola nad programem przechodzi
do etykiety default, która jest opcjonalna. Pominięcie polecenia break spowoduje, że
wykonane zostaną wszystkie polecenia znajdujące się za dopasowaną etykietą aż do
napotkania polecenia break lub opuszczenia całego bloku switch. Zapoznaj się z li-
stingiem 7.3.
LISTING 7.3.
(Formularz HTML)
html
head
title Wybierz kolor czcionki /title
/head
body bgcolor= 9BCD93
font face= arial
256
Rozdział 7. ♦ Instrukcje warunkowe oraz pętle
b
form method= get action= listing7.3a.php
br / Wybierz kolor czcionki:
br / input type= radio name= color value= red / czerwony
br / input type= radio name= color value= blue / niebieski
br / input type= radio name= color value= purple / fioletowy
br / input type= radio name= color value= green / zielony
p
input type= submit name= submit_color value= Wybierz kolor /
/form
/b
/body
/html
-----------------------------------------------------------------------------------
(Skrypt PHP)
html head title Kolor czcionki /title /head
body bgcolor= lightgreen
font face= arial size= +1
p
(1) ?php
extract($_REQUEST);
// Używanie tablicy REQUEST wymaga zachowania ostrożności
(2) if (! isset($submit_color)){ // Sprawdzenie, czy zmienne zostały ustalone.
exit;
}
?
table border= 2 cellpadding= 10
tr bgcolor= white
(3) ?php
(4) switch ( $color ) {
(5) case r
Pobierz darmowy fragment (pdf)