okladka
PHP i MySQL to wydajny tandem, pozwalający na realizację wielu projektów związanych z programowaniem aplikacji internetowych. Autorzy książki "PHP i MySQL. Tworzenie stron WWW. Wydanie drugie. Vademecum profesjonalisty" stworzyli więc unikatowy podręcznik, który łączy w sobie opis funkcjonalności PHP i MySQL z prezentacją wielu praktycznych rozwiązań, stworzonych za pomocą tych narzędzi. To podejście okazało się trafione, czego dowodem jest ogromna popularność pierwszego wydania tej książki.

Oprócz składni i biblioteki funkcji PHP, książka opisuje również podstawowe pojęcia z dziedziny profesjonalnej inżynierii oprogramowania związanego z siecią WWW. Niektóre, takie jak utrzymywanie, współpraca i testowanie, są kwestiami istotnymi dla inżynierów oprogramowania. Inne pojęcia, takie jak uwierzytelnianie, szyfrowanie i kontrola sesji, mają szczególne znaczenie dla projektów programistycznych opartych na Internecie.

  • Podstawowy kurs PHP
  • Tworzenie i obsługa baz danych za pomocą MySQL
  • Dynamiczne tworzenie kodu HTML, obrazków i dokumentów
  • Tworzenie bezpiecznych usług za pomocą uwierzytelniania i SSL
  • Tworzenie koszyka na zakupy dla witryn handlu elektronicznego
  • Opis praktyk związanych z inżynierią oprogramowania dla większych projektów WWW
  • Zastosowanie obiektowych technik programistycznych
  • Tworzenie spersonalizowanych dokumentów PDF
  • Korzystanie z usług WWW za pomocą XML i SOAP
"PHP i MySQL. Tworzenie stron WWW. Wydanie drugie. Vademecum profesjonalisty" to książka, która nie tylko przekazuje wiedzę na temat PHP i MySQL, ale także prezentuje praktyczne sposoby jej wykorzystania. Jeśli chcesz szybko nauczyć się tworzenia profesjonalnych aplikacji WWW, książka ta będzie trafionym zakupem.

Opinia o pierwszym wydaniu:

(...) Podręcznik jest godny polecenia co najmniej z dwóch powodów. Po pierwsze poruszana tematyka jest bardzo obszerna i obejmuje większość typowych problemów programisty WWW. Ponadto wszelkie kłopoty rozwiązywane są za pomocą dwóch popularnych komponentów (PHP i MySQL), dzięki czemu niejednokrotnie unikniemy przedzierania się przez dokumentację obu produktów.
-- Chip, 08/2002
O Autorach (19)
Wprowadzenie (21)
Część I Stosowanie PHP (29)
Rozdział 1. Podstawowy kurs PHP (31)

  • Zastosowanie PHP (32)
  • Przykładowa aplikacja: "Części samochodowe Janka" (32)
    • Formularz zamówienia (32)
    • Przetwarzanie formularza (34)
  • Osadzanie PHP w HTML (34)
    • Zastosowanie znaczników PHP (35)
    • Style znaczników PHP (36)
    • Instrukcje PHP (36)
    • Odstępy (37)
    • Komentarze (37)
  • Dodawanie zawartości dynamicznej (38)
    • Wywoływanie funkcji (39)
    • Funkcja date() (39)
  • Dostęp do zmiennych formularza (39)
    • Zmienne formularza (40)
    • Łączenie ciągów (42)
    • Zmienne i ciągi znaków (43)
  • Identyfikatory (44)
  • Zmienne zadeklarowane przez użytkownika (44)
  • Przypisywanie wartości zmiennym (44)
  • Typy zmiennych (45)
    • Typy danych w PHP (45)
    • Siła typu (45)
    • Rzutowanie typu (46)
    • Zmienne zmiennych (46)
  • Stałe (47)
  • Zasięg zmiennych (47)
  • Operatory (48)
    • Operatory arytmetyczne (49)
    • Operatory ciągów (50)
    • Operatory przypisania (50)
    • Operatory porównań (52)
    • Operatory logiczne (53)
    • Operatory bitowe (54)
    • Pozostałe operatory (54)
  • Stosowanie operatorów: obliczanie sum w formularzu (56)
  • Pierwszeństwo i kolejność: wyznaczanie wartości wyrażeń (57)
  • Zarządzanie zmiennymi (58)
    • Sprawdzanie i ustawianie typów zmiennych (58)
    • Sprawdzanie stanu zmiennej (59)
    • Reinterpretacja zmiennych (60)
  • Struktury kontrolujące (60)
  • Podejmowanie decyzji za pomocą instrukcji warunkowych (60)
    • Instrukcja if (61)
    • Bloki kodu (61)
    • Instrukcja else (62)
    • Instrukcja elseif (62)
    • Instrukcja switch (63)
    • Porównanie różnych instrukcji warunkowych (65)
  • Iteracja: powtarzanie działań (65)
    • Pętle while (66)
    • Pętle for i foreach (67)
    • Pętle do..while (69)
  • Wyłamywanie się ze struktury skryptu (69)
  • W następnym rozdziale: zapisywanie zamówienia klienta (69)
Rozdział 2. Przechowywanie i wyszukiwanie danych (71)
  • Zapisywanie danych do późniejszego użycia (71)
  • Przechowywanie i wyszukiwanie zamówień Janka (72)
  • Podstawowe informacje na temat przetwarzania plików (73)
  • Otwieranie pliku (73)
    • Tryby otwarcia pliku (73)
    • Stosowanie funkcji fopen() do otwarcia pliku (74)
    • Otwieranie pliku przez protokół FTP lub HTTP (76)
    • Problemy z otwieraniem plików (77)
  • Zapisywanie danych w pliku (79)
    • Parametry funkcji fwrite() (79)
    • Formaty plików (79)
  • Zamykanie pliku (80)
  • Odczyt z pliku (80)
    • Otwieranie pliku w celu odczytu - fopen() (81)
    • Wiedzieć, kiedy przestać - feof() (82)
    • Odczytywanie pliku wiersz po wierszu - fgets(), fgetss() i fgetcsv() (82)
    • Odczyt całego pliku - readfile(), fpassthru(), file() (83)
    • Odczyt pojedynczego znaku - fgetc() (84)
    • Odczytywanie zadanej długości - fread() (84)
  • Inne przydatne funkcje plikowe (85)
    • Sprawdzanie istnienia pliku - file_exists() (85)
    • Określanie wielkości pliku - filesize() (85)
    • Kasowanie pliku - unlink() (85)
    • Poruszanie się wewnątrz pliku - rewind(), fseek() i ftell() (85)
  • Blokowanie pliku (86)
  • Lepszy sposób obróbki danych - systemy zarządzania bazami danych (88)
    • Problemy związane ze stosowaniem plików jednorodnych (88)
    • Jak RDBMS rozwiązują powyższe problemy? (88)
  • Propozycje dalszych lektur (89)
  • W następnym rozdziale (89)
Rozdział 3. Stosowanie tablic (91)
  • Czym są tablice? (91)
  • Tablice indeksowane numerycznie (92)
    • Inicjowanie tablic indeksowanych numerycznie (92)
    • Dostęp do zawartości tablicy (93)
    • Dostęp do tablic przy zastosowaniu pętli (94)
  • Tablice asocjacyjne (94)
    • Inicjowanie tablicy asocjacyjnej (94)
    • Dostęp do elementów tablicy (95)
    • Stosowanie pętli z tablicami asocjacyjnymi (95)
  • Tablice wielowymiarowe (97)
  • Sortowanie tablic (100)
    • Stosowanie funkcji sort() (100)
    • Stosowanie funkcji asort() i ksort() do porządkowania tablic asocjacyjnych (101)
    • Sortowanie odwrotne (101)
  • Sortowanie tablic wielowymiarowych (101)
    • Typy sortowań definiowane przez użytkownika (102)
    • Odwrotne sortowanie zdefiniowane przez użytkownika (103)
  • Zmiany kolejności elementów w tablicach (104)
    • Stosowanie funkcji shuffle() (104)
    • Stosowanie funkcji array_reverse() (105)
  • Ładowanie tablic z plików (106)
  • Inne działania na tablicach (109)
    • Poruszanie się wewnątrz tablicy - funkcje each(), current(), reset(), end(), next(), pos() i prev() (109)
    • Dołączanie dowolnej funkcji do każdego elementu tablicy - funkcja array_walk() (110)
    • Liczenie elementów tablicy: count(), sizeof() i array_count_values() (111)
    • Konwersja tablic na zmienne skalarne - funkcja extract() (112)
  • Propozycje dalszych lektur (113)
  • W następnym rozdziale (113)
Rozdział 4. Manipulowanie ciągami i wyrażenia regularne (115)
  • Przykładowa aplikacja - Inteligentny Formularz Pocztowy (115)
  • Formatowanie ciągów (117)
    • Przycinanie ciągów - funkcje chop(), ltrim() i trim() (117)
    • Formatowanie ciągów w celu ich prezentacji (118)
    • Formatowanie ciągów do przechowania - funkcje AddSlashes() i StripSlashes() (121)
  • Łączenie i rozdzielanie ciągów za pomocą funkcji ciągów (122)
    • Stosowanie funkcji explode(), implode() i join() (123)
    • Stosowanie funkcji strtok() (124)
    • Stosowanie funkcji substr() (124)
  • Porównywanie ciągów (125)
    • Porządkowanie ciągów - funkcje strcmp(), strcasecmp() i strnatcmp() (125)
    • Sprawdzanie długości ciągu za pomocą funkcji strlen() (126)
  • Dopasowywanie i zamiana podciągów za pomocą funkcji ciągów (126)
    • Znajdowanie ciągów w ciągach - funkcje strstr(), strchr(), strrchr() i stristr() (127)
    • Odnajdywanie pozycji podciągu - funkcje strpos() i strrpos() (128)
    • Zamiana podciągów - funkcje str_replace() i substr_replace() (129)
  • Wprowadzenie do wyrażeń regularnych (130)
    • Podstawy (130)
    • Zbiory i klasy znaków (131)
    • Powtarzalność (132)
    • Podwyrażenia (132)
    • Podwyrażenia policzalne (132)
    • Kotwiczenie na początku lub na końcu ciągu (133)
    • Rozgałęzianie (133)
    • Dopasowywanie specjalnych znaków literowych (133)
    • Podsumowanie znaków specjalnych (133)
    • Umieszczanie wszystkiego razem (Inteligentny Formularz) (134)
  • Odnajdywanie podciągów za pomocą wyrażeń regularnych (135)
  • Zamiana podciągów za pomocą wyrażeń regularnych (136)
  • Rozdzielanie ciągów za pomocą wyrażeń regularnych (136)
  • Porównanie funkcji ciągów i funkcji wyrażeń regularnych (137)
  • Propozycje dalszych lektur (137)
  • W następnym rozdziale (137)
Rozdział 5. Ponowne wykorzystanie kodu i tworzenie funkcji (139)
  • Dlaczego ponownie stosować kod? (139)
    • Koszt (140)
    • Niezawodność (140)
    • Spójność (140)
  • Stosowanie funkcji require() i include() (140)
    • Stosowanie funkcji require() (141)
    • Rozszerzenia plików i require() (142)
    • Znaczniki PHP i require() (142)
  • Stosowanie require() w szablonach stron WWW (142)
    • Stosowanie opcji auto_prepend_file i auto_append_file (147)
    • Stosowanie funkcji include() (148)
  • Stosowanie funkcji w PHP (149)
    • Wywoływanie funkcji (150)
    • Wywołanie niezdefiniowanej funkcji (151)
    • Wielkość liter a nazwy funkcji (152)
  • Dlaczego powinno się definiować własne funkcje? (152)
  • Podstawowa struktura funkcji (152)
    • Nadawanie nazwy funkcji (153)
  • Parametry (154)
  • Zasięg (156)
  • Przekazanie przez referencję czy przekazanie przez wartość? (158)
  • Powrót z funkcji (159)
  • Zwracanie wartości przez funkcje (160)
    • Bloki kodu (161)
  • Rekurencja (162)
  • Propozycje dalszych lektur (164)
  • W następnym rozdziale (164)
Rozdział 6. Obiektowy PHP (165)
  • Koncepcje programowania obiektowego (165)
    • Klasy i obiekty (165)
    • Polimorfizm (167)
    • Dziedziczenie (167)
  • Tworzenie klas, atrybutów i operacji w PHP (168)
    • Struktura klasy (168)
    • Konstruktory (168)
  • Tworzenie egzemplarzy (169)
  • Stosowanie atrybutów klasy (169)
  • Wywoływanie operacji klas (171)
  • Implementacja dziedziczenia w PHP (172)
    • Unieważnianie (173)
    • Wielodziedziczenie (174)
  • Tworzenie klas (175)
  • Tworzenie kodu dla własnej klasy (175)
  • W następnej części (183)
Część II Stosowanie MySQL (185)
Rozdział 7. Projektowanie internetowej bazy danych (187)
  • Koncepcje relacyjnych baz danych (188)
    • Tabele (188)
    • Kolumny (188)
    • Wiersze (188)
    • Wartości (188)
    • Klucze (189)
    • Schematy (190)
    • Relacje (190)
  • Jak zaprojektować internetową bazę danych? (191)
    • Określ obiekty świata realnego, których model chcesz wykonać (191)
    • Unikaj przechowywania redundantnych danych (191)
    • Zapisuj atomowe wartości kolumn (193)
    • Dobierz właściwe klucze (194)
    • Pomyśl o zapytaniach, które zadasz bazie (194)
    • Unikaj tworzenia tabel z wieloma pustymi polami (194)
    • Typy tabel - podsumowanie (195)
  • Architektura internetowej bazy danych (196)
    • Architektura (196)
  • Propozycje dalszych lektur (197)
  • W następnym rozdziale (197)
Rozdział 8. Tworzenie internetowej bazy danych (199)
  • Uwagi na temat użytkowania monitora MySQL (200)
  • Jak zalogować się do serwera MySQL (201)
  • Tworzenie baz i rejestrowanie użytkowników (202)
    • Tworzenie bazy danych (202)
  • Użytkownicy i przywileje (203)
  • Wprowadzenie do systemu przywilejów MySQL (203)
    • Zasada najmniejszego przywileju (203)
    • Rejestrowanie użytkowników: polecenie GRANT (204)
    • Typy i poziomy przywilejów (205)
    • Polecenie REVOKE (207)
    • Przykłady użycia poleceń GRANT i REVOKE (207)
  • Rejestrowanie użytkownika łączącego się z Internetu (208)
    • Wylogowanie się użytkownika root (209)
  • Używanie odpowiedniej bazy danych (209)
  • Tworzenie tabel bazy danych (210)
    • Znaczenie dodatkowych atrybutów kolumn (211)
    • Typy kolumn (212)
    • Rzut oka na bazę danych - polecenia SHOW i DESCRIBE (214)
  • Identyfikatory MySQL (215)
  • Typy danych w kolumnach (216)
    • Typy liczbowe (216)
  • Propozycje dalszych lektur (220)
  • W następnym rozdziale (220)
Rozdział 9. Praca z bazą danych MySQL (221)
  • Czym jest SQL? (221)
  • Zapisywanie danych do bazy (222)
  • Wyszukiwanie danych w bazie (224)
    • Wyszukiwanie danych spełniających określone kryteria (225)
    • Wyszukiwanie danych w wielu tabelach (227)
    • Szeregowanie danych w określonym porządku (232)
    • Grupowanie i agregowanie danych (233)
    • Wskazanie wierszy, które mają być wyświetlone (235)
  • Dokonywanie zmian rekordów w bazie danych (235)
  • Zmiana struktury istniejących tabel (236)
  • Usuwanie rekordów z bazy danych (237)
  • Usuwanie tabel (238)
  • Usuwanie całych baz danych (238)
  • Propozycje dalszych lektur (238)
  • W następnym rozdziale (238)
Rozdział 10. Łączenie się z bazą MySQL za pomocą PHP (239)
  • Jak działa internetowa baza danych? (240)
  • Etapy wysyłania zapytań do bazy danych z poziomu strony WWW (243)
  • Sprawdzenie poprawności wpisanych danych (243)
  • Ustanawianie połączenia z bazą danych (244)
  • Wybór właściwej bazy danych (246)
  • Wysyłanie zapytań do bazy danych (246)
  • Odczytywanie rezultatów zapytań (247)
  • Zamykanie połączenia z bazą danych (248)
  • Wstawianie nowych danych do bazy (248)
  • Inne użyteczne funkcje PHP i MySQL (252)
    • Zwalnianie zasobów (252)
    • Tworzenie i usuwanie baz danych (252)
  • Inne interfejsy bazodanowe PHP (252)
  • Stosowanie ogólnego intrefejsu bazodanowego: PEAR DB (253)
  • Propozycje dalszych lektur (256)
  • W następnym rozdziale (256)
Rozdział 11. MySQL dla zaawansowanych (257)
  • Szczegóły systemu przywilejów (257)
    • Tabela user (258)
    • Tabele db i host (259)
    • Tabele tables_priv i columns_priv (261)
    • Kontrola dostępu: w jaki sposób MySQL używa tabel przywilejów (261)
    • Zmiana przywilejów: kiedy zmiany zostaną uwzględnione? (262)
  • Ochrona bazy danych (263)
    • MySQL z perspektywy systemu operacyjnego (263)
    • Hasła (263)
    • Przywileje użytkowników (264)
    • MySQL i Internet (265)
  • Uzyskiwanie szczegółowych informacji o bazie danych (265)
    • Uzyskiwanie informacji poleceniem SHOW (266)
    • Uzyskiwanie informacji o kolumnach za pomocą polecenia DESCRIBE (267)
    • Jak wykonywane są zapytania: polecenie EXPLAIN (268)
  • Przyspieszanie wykonania zapytań za pomocą indeksów (271)
  • Wskazówki dotyczące optymalizacji (271)
    • Optymalizacja projektu bazy danych (272)
    • Przywileje (272)
    • Optymalizacja tabel (272)
    • Stosowanie indeksów (272)
    • Używanie wartości domyślnych (273)
    • Używanie stałych połączeń z bazą (273)
    • Więcej wskazówek (273)
  • Różne typy tabel (273)
  • Ładowanie danych z pliku (274)
  • Tworzenie kopii zapasowej bazy danych MySQL (274)
  • Przywracanie bazy danych MySQL (275)
  • Propozycje dalszych lektur (275)
  • W następnej części (275)
Część III E-commerce i bezpieczeństwo (277)
Rozdział 12. Komercyjne witryny internetowe (279)
  • Co chcemy osiągnąć? (279)
  • Rodzaje komercyjnych stron WWW (279)
    • Broszury internetowe (280)
    • Przyjmowanie zamówień na produkty i usługi (283)
    • Dostarczanie usług lub wyrobów mających postać cyfrową (287)
    • Zwiększanie wartości produktów i usług (288)
    • Ograniczanie kosztów (288)
  • Ryzyko i zagrożenia (289)
    • Crackerzy (289)
    • Przyciągnięcie niewystarczającej liczby klientów (290)
    • Awarie sprzętu komputerowego (290)
    • Awarie sieci elektrycznych, komunikacyjnych i komputerowych oraz systemu wysyłkowego (291)
    • Silna konkurencja (291)
    • Błędy w oprogramowaniu (291)
    • Zmiany polityki rządowej (292)
    • Ograniczenie pojemności systemów (292)
  • Wybór strategii (292)
  • W następnym rozdziale (293)
Rozdział 13. Bezpieczeństwo komercyjnych stron WWW (295)
  • Jaką wagę mają posiadane przez nas informacje? (296)
  • Zagrożenia bezpieczeństwa (296)
    • Ujawnienie informacji poufnych (297)
    • Utrata lub zniszczenie danych (299)
    • Modyfikacje danych (299)
    • Blokada usługi (300)
    • Błędy w oprogramowaniu (301)
    • Zaprzeczenie korzystania z usługi (303)
  • Równoważenie użyteczności, wydajności, kosztów i bezpieczeństwa (304)
  • Opracowanie polityki bezpieczeństwa (305)
  • Zasady uwierzytelniania (305)
  • Wykorzystanie mechanizmu uwierzytelniania (306)
  • Podstawy szyfrowania (307)
  • Szyfrowanie z kluczem prywatnym (308)
  • Szyfrowanie z kluczem publicznym (309)
  • Podpis cyfrowy (310)
  • Certyfikaty cyfrowe (311)
  • Bezpieczne serwery WWW (312)
  • Monitorowanie i zapisywanie zdarzeń (314)
  • Zapory sieciowe (314)
  • Tworzenie kopii zapasowych (315)
    • Tworzenie kopii zapasowych zwykłych plików (315)
    • Tworzenie kopii zapasowych i odzyskiwanie baz danych MySQL (316)
  • Bezpieczeństwo fizyczne (316)
  • W następnym rozdziale (317)
Rozdział 14. Uwierzytelnianie przy użyciu PHP i MySQL (319)
  • Identyfikacja użytkowników (319)
  • Implementacja kontroli dostępu (320)
    • Przechowywanie haseł dostępu (323)
    • Szyfrowanie haseł (325)
    • Zastrzeganie więcej niż jednej strony (327)
  • Podstawowa metoda uwierzytelniania (327)
  • Wykorzystanie podstawowej metody uwierzytelniania w PHP (329)
  • Wykorzystanie podstawowej metody uwierzytelniania na serwerze Apache przy użyciu plików .htaccess (330)
  • Wykorzystanie podstawowej metody uwierzytelniania na serwerze IIS (334)
  • Wykorzystanie modułu mod_auth_mysql do celów uwierzytelniania (337)
    • Instalacja modułu mod_auth_mysql (337)
    • Zadziałało? (338)
    • Praca z mod_auth_mysql (338)
  • Implementacja własnej metody uwierzytelniania (339)
  • Propozycje dalszych lektur (340)
  • W następnym rozdziale (340)
Rozdział 15. Zabezpieczanie transakcji przy użyciu PHP i MySQL (341)
  • Zapewnienie bezpieczeństwa transakcji (341)
    • Komputer użytkownika (342)
    • Internet (344)
    • System docelowy (345)
  • Wykorzystanie protokołu Secure Sockets Layer (SSL) (346)
  • Kontrola danych pochodzących od użytkownika (349)
  • Bezpieczne przechowywanie danych (350)
  • Cel przechowywania numerów kart kredytowych (352)
  • Szyfrowanie danych w PHP (352)
  • Propozycje dalszych lektur (361)
  • W następnej części (361)
Część IV Zaawansowane techniki PHP (363)
Rozdział 16. Interakcja z systemem plików i serwerem (365)
  • Wprowadzenie do wysyłania plików (365)
    • Kod HTML służący do wysyłania plików (366)
    • Uwaga na temat bezpieczeństwa (367)
    • Tworzenie obsługującego plik PHP (367)
    • Najczęściej spotykane problemy (372)
  • Stosowanie funkcji katalogowych (372)
    • Odczyt z katalogów (373)
    • Otrzymywanie informacji na temat aktualnego katalogu (374)
    • Tworzenie i usuwanie katalogów (374)
  • Interakcja z systemem plików (375)
    • Otrzymywanie informacji o pliku (375)
    • Zmiana właściwości pliku (378)
    • Tworzenie, usuwanie i przenoszenie plików (378)
  • Stosowanie funkcji uruchamiających programy (379)
  • Interakcja ze środowiskiem: funkcje getenv() i putenv() (382)
  • Propozycje dalszych lektur (382)
  • W następnym rozdziale (382)
Rozdział 17. Stosowanie funkcji sieci i protokołu (383)
  • Przegląd protokołów (383)
  • Wysyłanie i odczytywanie poczty elektronicznej (384)
  • Korzystanie z innych usług WWW (384)
  • Stosowanie funkcji połączeń sieciowych (387)
  • Korzystanie z FTP (391)
    • Stosowanie FTP w celu utworzenia kopii bezpieczeństwa lub kopii lustrzanej pliku (391)
    • Wysyłanie plików (397)
    • Unikanie przekroczenia dopuszczalnego czasu (398)
    • Stosowanie innych funkcji FTP (398)
  • Stosowanie ogólnej komunikacji sieciowej za pomocą cURL (399)
  • Propozycje dalszych lektur (401)
  • W następnym rozdziale (402)
Rozdział 18. Zarządzanie datą i czasem (403)
  • Uzyskiwanie informacji o dacie i czasie w PHP (403)
    • Stosowanie funkcji date() (403)
    • Obsługa znaczników czasu Uniksa (405)
    • Stosowanie funkcji getdate() (406)
    • Sprawdzanie poprawności dat (406)
  • Konwersja pomiędzy formatami daty PHP i MySQL (407)
  • Obliczanie dat (407)
  • Stosowanie funkcji kalendarzowych (409)
  • Propozycje dalszych lektur (410)
  • W następnym rozdziale (410)
Rozdział 19. Generowanie obrazków (411)
  • Konfigurowanie obsługi obrazków w PHP (411)
  • Formaty obrazków (412)
    • JPEG (412)
    • PNG (413)
    • WBMP (413)
    • GIF (413)
  • Tworzenie obrazków (414)
    • Tworzenie kadru obrazka (415)
    • Rysowanie lub umieszczanie tekstu w obrazku (416)
    • Wyświetlanie ostatecznej grafiki (417)
    • Końcowe czynności porządkujące (419)
  • Stosowanie automatycznie generowanych obrazków na innych stronach (419)
  • Stosowanie tekstu i czcionek do tworzenia obrazków (420)
    • Konfiguracja podstawowego kadru (423)
    • Dopasowanie tekstu do przycisku (423)
    • Nadawanie tekstowi odpowiedniej pozycji (426)
    • Wpisywanie tekstu do przycisku (427)
    • Etap końcowy (427)
  • Rysowanie figur i wykresów danych (427)
  • Inne funkcje obrazków (435)
  • Propozycje dalszych lektur (435)
  • W następnym rozdziale (435)
Rozdział 20. Stosowanie kontroli sesji w PHP (437)
  • Czym jest kontrola sesji? (437)
  • Podstawowa zasada działania sesji (438)
    • Czym jest cookie? (438)
    • Konfiguracja cookies w PHP (439)
    • Stosowanie cookies w sesji (439)
    • Przechowywanie identyfikatora sesji (440)
  • Implementacja prostych sesji (440)
    • Rozpoczynanie sesji (440)
    • Zgłaszanie zmiennych sesji (441)
    • Stosowanie zmiennych sesji (441)
    • Usuwanie zmiennych i niszczenie sesji (442)
  • Przykład prostej sesji (442)
  • Konfiguracja kontroli sesji (445)
  • Implementacja uwierzytelniania w kontroli sesji (446)
  • Propozycje dalszych lektur (451)
  • W następnym rozdziale (452)
Rozdział 21. Inne przydatne własności (453)
  • Stosowanie magicznych cudzysłowów (453)
  • Wykonywanie ciągów - funkcja eval() (454)
  • Zakończenie wykonania - die i exit (455)
  • Serializacja (455)
  • Pobieranie informacji na temat środowiska PHP (456)
    • Uzyskiwanie informacji na temat załadowanych rozszerzeń (457)
    • Identyfikacja właściciela skryptu (457)
    • Uzyskiwanie informacji na temat daty modyfikacji skryptu (457)
  • Dynamiczne dodawanie rozszerzeń (458)
  • Czasowa zmiana środowiska wykonawczego (458)
  • Podświetlanie źródeł (459)
  • W następnej części (460)
Część V Tworzenie praktycznych projektów PHP i MySQL (461)
Rozdział 22. Stosowanie PHP i MySQL w dużych projektach (463)
  • Zastosowanie inżynierii oprogramowania w tworzeniu aplikacji WWW (464)
  • Planowanie i prowadzenie projektu aplikacji WWW (464)
  • Ponowne stosowanie kodu (465)
  • Tworzenie kodu łatwego w utrzymaniu (466)
    • Standardy kodowania (466)
    • Dzielenie kodu (469)
    • Stosowanie standardowej struktury katalogów (470)
    • Dokumentacja i dzielenie wewnętrznych funkcji (470)
  • Implementacja kontroli wersji (470)
  • Wybór środowiska programistycznego (472)
  • Dokumentacja projektów (472)
  • Prototypowanie (473)
  • Oddzielanie logiki i zawartości (474)
  • Optymalizacja kodu (475)
    • Stosowanie prostych optymalizacji (475)
    • Stosowanie produktów firmy Zend (476)
  • Testowanie (476)
  • Propozycje dalszych lektur (477)
  • W następnym rozdziale (478)
Rozdział 23. Usuwanie błędów (479)
  • Błędy programistyczne (479)
    • Błędy składni (480)
    • Błędy wykonania (481)
    • Błędy logiczne (486)
  • Pomoc w usuwaniu błędów w zmiennych (488)
  • Poziomy zgłaszania błędów (489)
  • Zmiana ustawień zgłaszania błędów (491)
  • Wyzwalanie własnych błędów (492)
  • Elegancka obsługa błędów (492)
  • W następnym rozdziale (494)
Rozdział 24. Tworzenie uwierzytelniania użytkowników i personalizacji (495)
  • Problem (495)
  • Składniki rozwiązania (496)
    • Identyfikacja użytkownika i personalizacja (496)
    • Przechowywanie zakładek (497)
    • Rekomendowanie zakładek (497)
  • Przegląd rozwiązania (497)
  • Implementacja bazy danych (498)
  • Implementacja podstawowej witryny (500)
  • Implementacja uwierzytelniania użytkowników (503)
    • Rejestracja (503)
    • Logowanie (509)
    • Wylogowanie (512)
    • Zmiana hasła (513)
    • Ustawianie zapomnianych haseł (515)
  • Implementacja przechowywania i odczytywania zakładek (519)
    • Dodawanie zakładek (520)
    • Wyświetlanie zakładek (522)
    • Usuwanie zakładek (523)
  • Implementacja rekomendacji (525)
  • Rozwijanie projektu i możliwe rozszerzenia (529)
  • W następnym rozdziale (529)
Rozdział 25. Tworzenie koszyka na zakupy (531)
  • Problem (531)
  • Składniki rozwiązania (532)
    • Tworzenie katalogu online (532)
    • Śledzenie zakupów użytkownika podczas przeglądania (532)
    • Płatność (532)
    • Interfejs administratora (533)
  • Przegląd rozwiązania (533)
  • Implementacja bazy danych (536)
  • Implementacja katalogu online (538)
    • Przedstawianie kategorii (540)
    • Wyświetlanie książek danej kategorii (543)
    • Przedstawianie szczegółowych danych książki (544)
  • Implementacja koszyka na zakupy (546)
    • Stosowanie skryptu pokaz_kosz.php (546)
    • Podgląd koszyka (549)
    • Dodawanie produktów do koszyka (551)
    • Zapisywanie uaktualnionego koszyka (553)
    • Wyświetlanie podsumowania w pasku nagłówka (554)
    • Pobyt w kasie (554)
  • Implementacja płatności (559)
  • Implementacja interfejsu administratora (561)
  • Rozwijanie projektu (567)
  • Zastosowanie istniejącego systemu (568)
  • W następnym rozdziale (568)
Rozdział 26. Tworzenie systemu zarządzania zawartością (569)
  • Problem (569)
  • Wymagania systemu (570)
  • Edycja zawartości (570)
    • Umieszczanie zawartości w systemie (570)
    • Bazy danych czy pliki? (571)
    • Struktura dokumentu (572)
  • Stosowanie metadanych (572)
  • Formatowanie danych wyjściowych (573)
  • Manipulacja obrazkiem (574)
  • Projekt/przegląd rozwiązania (576)
  • Projektowanie bazy danych (576)
  • Implementacja (579)
    • Fronton systemu (579)
    • Wnętrze systemu (582)
    • Wyszukiwanie (590)
    • Ekran redaktora naczelnego (593)
  • Rozwijanie projektu (594)
  • W następnym rozdziale (594)
Rozdział 27. Tworzenie serwisu poczty elektronicznej opartego na WWW (595)
  • Problem (595)
  • Składniki rozwiązania (596)
  • Przegląd rozwiązania (597)
  • Konfiguracja bazy danych (599)
  • Architektura skryptu (601)
  • Logowanie i wylogowanie (606)
  • Konfiguracja kont (609)
    • Tworzenie nowego konta (611)
    • Modyfikacja istniejącego konta (612)
    • Usuwanie konta (612)
  • Odczytywanie poczty (613)
    • Wybór konta (613)
    • Przeglądanie zawartości skrzynki (616)
    • Odczytywanie wiadomości pocztowych (619)
    • Przeglądanie nagłówków wiadomości (622)
    • Usuwanie wiadomości (623)
  • Wysyłanie wiadomości (624)
    • Wysyłanie nowej wiadomości (624)
    • Odpowiadanie i przekazywanie poczty (626)
  • Rozwijanie projektu (627)
  • W następnym rozdziale (628)
Rozdział 28. Tworzenie menedżera list pocztowych (629)
  • Problem (629)
  • Składniki rozwiązania (630)
    • Konfiguracja bazy danych list i abonentów (630)
    • Wysyłanie plików (630)
    • Wysyłanie wiadomości z załącznikami (631)
  • Przegląd rozwiązania (631)
  • Konfiguracja bazy danych (632)
  • Architektura skryptu (635)
  • Implementacja logowania (642)
    • Tworzenie nowego konta (643)
    • Logowanie (646)
  • Implementacja funkcji użytkownika (648)
    • Przeglądanie list (648)
    • Przeglądanie informacji na temat listy (653)
    • Przeglądanie archiwum listy (655)
    • Zapisywanie i wypisywanie (656)
    • Zmiana konfiguracji konta (657)
    • Zmiana hasła (657)
    • Wylogowanie (659)
  • Implementacja funkcji administratora (660)
    • Tworzenie nowej listy (660)
    • Wysyłanie nowych wiadomości (662)
    • Obsługa wysyłania wielu plików (665)
    • Podgląd wiadomości (668)
    • Rozsyłanie wiadomości (669)
  • Rozwijanie projektu (675)
  • W następnym rozdziale (676)
Rozdział 29. Tworzenie forum WWW (677)
  • Problem (677)
  • Składniki rozwiązania (678)
  • Przegląd rozwiązania (679)
  • Projektowanie bazy danych (680)
  • Przeglądanie drzewa artykułów (683)
    • Rozwijanie i zwijanie (685)
    • Wyświetlanie artykułów (688)
    • Korzystanie z klasy wezel_drzewa (689)
  • Przeglądanie pojedynczych artykułów (695)
  • Dodawanie nowych artykułów (697)
  • Rozszerzenia (703)
  • Wykorzystanie istniejącego systemu (704)
  • W następnym rozdziale (704)
Rozdział 30. Tworzenie dokumentów spersonalizowanych w formacie PDF (705)
  • Problem (705)
  • Ocena formatów dokumentów (706)
    • Papier (706)
    • ASCII (707)
    • HTML (707)
    • Formaty edytorów tekstu (707)
    • Format RTF (708)
    • PostScript (709)
    • Format PDF (710)
  • Składniki rozwiązania (710)
    • System pytań i odpowiedzi (711)
    • Oprogramowanie generujące dokumenty (711)
  • Przegląd rozwiązania (713)
    • Zadawanie pytań (714)
    • Ocena odpowiedzi (716)
    • Tworzenie certyfikatu RTF (718)
    • Tworzenie certyfikatu PDF z szablonu (722)
    • Generowanie dokumentu PDF za pomocą PDFlib (725)
    • Skrypt "Witaj świecie" dla PDFlib (725)
    • Tworzenie certyfikatu za pomocą PDFlib (729)
  • Problemy związane z nagłówkami (736)
  • Rozwijanie projektu (736)
  • Propozycje dalszych lektur (736)
Rozdział 31. Korzystanie z usług sieciowych za pomocą XML i SOAP (737)
  • Problem (737)
  • Podstawy XML (738)
  • Podstawy usług sieciowych (742)
    • SOAP (742)
    • WSDL (743)
  • Składniki rozwiązania (743)
    • Konstrukcja koszyka na zakupy (744)
    • Korzystanie z interfejsu usług sieciowych Amazon.com (744)
    • Wczytywanie dokumentów XML (745)
    • Korzystanie z SOAP za pomocą PHP (745)
    • Buforowanie (745)
  • Opis rozwiązania (746)
    • Aplikacja główna (750)
    • Wyświetlanie listy książek z danej kategorii (754)
    • Tworzenie obiektu klasy WynikiWyszukiwania (757)
    • Przesyłanie dokumentów XML (765)
    • Korzystanie z protokołu SOAP (770)
    • Buforowanie danych (772)
    • Konstrukcja koszyka na zakupy (774)
    • Przejście do kasy na witrynie Amazon.com (777)
  • Instalacja kodu źródłowego (778)
  • Kierunki rozwoju (778)
  • Literatura (778)
Dodatki (779)
Dodatek A Instalacja PHP4 i MySQL (781)
  • Uruchamianie PHP jako CGI lub moduł serwera (782)
  • Instalacja Apache, PHP i MySQL w systemie UNIX (782)
    • Instalacja przy użyciu binariów (782)
    • Instalacja przy użyciu kodów źródłowych (783)
    • Plik httpd.conf - informacje końcowe (790)
    • Czy obsługa PHP działa poprawnie? (790)
    • Czy SSL działa poprawnie? (792)
  • Instalacja Apache, PHP i MySQL w systemie Windows (793)
    • Instalacja MySQL w systemie Windows (793)
    • Instalacja serwera Apache w systemie Windows (797)
    • Instalacja PHP w systemie Windows (799)
  • Instalowanie PEAR (803)
  • Inne konfiguracje (804)
Dodatek B Zasoby internetowe (805)
  • Zasoby poświęcone PHP (805)
  • Zasoby poświęcone MySQL i SQL (807)
  • Zasoby poświęcone serwerowi Apache (807)
  • Zasoby poświęcone tworzeniu stron WWW (808)
Skorowidz (809)