Kolejne, uaktualnione wydanie najbardziej znanego, bestsellerowego podręcznika dla webmasterów na temat tworzenia dynamicznych witryn internetowych!Ponad 30 000 sprzedanych egzemplarzy poprzednich wydań!!!Recepta na sukces w przypadku tworzenia profesjonalnych stron WWW jest niezwykle prosta: wystarczą ogromne możliwości PHP, niezrównana wydajność MySQL i wielka, chętna do pomocy społeczność, skupiona wokół tego tandemu. Wynik? Błyskawiczna realizacja zaawansowanych stron i aplikacji internetowych. Wszystko, czego Ci jeszcze trzeba, to fachowa wiedza, pozwalająca wykorzystać ten potencjał!
PHP i MySQL to jeden z najlepszych, najpopularniejszych zestawów do tworzenia rozwiązań internetowych, a książka, którą trzymasz w rękach, to czwarte wydanie bestsellerowego i kultowego już kompendium wiedzy na temat tych narzędzi. Dzięki niej zorientujesz się w każdym z aspektów wykorzystania PHP wraz z bazą danych MySQL. Poznasz język PHP, metody przechowywania i wyszukiwania danych oraz operacje na plikach. Dowiesz się, jak tworzyć uniwersalny kod i sprawnie pracować z bazą danych. Nauczysz się szybko lokalizować i rozwiązywać problemy oraz zapewniać bezpieczeństwo aplikacjom, a także efektywnie stosować technologię AJAX. Podręcznik zawiera także mnóstwo praktycznych przykładów, demonstrujących wykorzystanie PHP i MySQL do realizacji różnych zadań związanych z funkcjonowaniem dynamicznych witryn WWW.
- Wybrane zalety PHP i MySQL
- Podstawy języka PHP
- Metody przechowywania i wyszukiwania danych
- Operacje na plikach
- Zastosowanie tablic
- Wykorzystanie wyrażeń regularnych oraz operacje na ciągach znaków
- Tworzenie uniwersalnego kodu -- ponowne jego wykorzystanie
- Obiekty w PHP
- Obsługa wyjątków i błędów
- Praca z bazą danych MySQL
- Nawiązywanie połączenia z bazą z poziomu PHP
- Administracja MySQL
- Zaawansowane zagadnienia, związane z bazą MySQL
- Zapewnienie bezpieczeństwa tworzonym rozwiązaniom
- Metody uwierzytelniania przy użyciu PHP i MySQL
- Wykorzystanie protokołów i funkcji sieci
- Generowanie grafik
- Wykorzystanie sesji
- Obsługa poczty elektronicznej za pomocą PHP
- Użycie technologii AJAX
Kultowe kompendium wiedzy na temat tworzenia dynamicznych witryn!
O autorach (23)
O współautorach (25)
Wprowadzenie (27)
Część I: Stosowanie PHP (37)
Rozdział 1. Podstawowy kurs PHP (39)
- Zastosowanie PHP (40)
- Tworzenie przykładowej aplikacji: "Części samochodowe Janka" (40)
- Formularz zamówienia (40)
- Przetwarzanie formularza (41)
- Osadzanie PHP w HTML (42)
- Zastosowanie znaczników PHP (43)
- Instrukcje PHP (44)
- Odstępy (44)
- Komentarze (45)
- Dodawanie zawartości dynamicznej (45)
- Wywoływanie funkcji (46)
- Używanie funkcji date() (46)
- Dostęp do zmiennych formularza (47)
- Zmienne formularza (47)
- Łączenie ciągów (49)
- Zmienne i ciągi znaków (50)
- Identyfikatory (51)
- Typy zmiennych (51)
- Typy danych w PHP (51)
- Siła typu (52)
- Rzutowanie typu (52)
- Zmienne zmiennych (53)
- Deklarowanie i używanie stałych (53)
- Zasięg zmiennych (54)
- Używanie operatorów (55)
- Operatory arytmetyczne (55)
- Operatory ciągów (56)
- Operatory przypisania (56)
- Operatory porównań (58)
- Operatory logiczne (59)
- Operatory bitowe (60)
- Pozostałe operatory (60)
- Obliczanie sum w formularzu (62)
- Pierwszeństwo i kolejność (63)
- Zarządzanie zmiennymi (65)
- Sprawdzanie i ustawianie typów zmiennych (65)
- Sprawdzanie stanu zmiennej (66)
- Reinterpretacja zmiennych (67)
- Podejmowanie decyzji za pomocą instrukcji warunkowych (67)
- Instrukcja if (67)
- Bloki kodu (68)
- Instrukcja else (68)
- Instrukcja elseif (69)
- Instrukcja switch (69)
- Porównanie różnych instrukcji warunkowych (71)
- Powtarzanie działań przy użyciu iteracji (71)
- Pętle while (72)
- Pętle for i foreach (73)
- Pętle do..while (74)
- Wyłamywanie się ze struktury skryptu (75)
- Używanie alternatywnych składni struktur sterujących (75)
- Używanie struktury declare (76)
- W następnym rozdziale (76)
Rozdział 2. Przechowywanie i wyszukiwanie danych (77)
- Zapisywanie danych do późniejszego użycia (77)
- Przechowywanie i wyszukiwanie zamówień Janka (78)
- Przetwarzanie plików (79)
- Otwieranie pliku (79)
- Tryby otwarcia pliku (79)
- Stosowanie funkcji fopen() do otwarcia pliku (80)
- Otwieranie pliku przez protokół FTP lub HTTP (82)
- Problemy z otwieraniem plików (82)
- Zapisywanie danych w pliku (84)
- Parametry funkcji fwrite() (85)
- Formaty plików (85)
- Zamykanie pliku (86)
- Odczyt z pliku (87)
- Otwieranie pliku w celu odczytu - fopen() (89)
- Wiedzieć, kiedy przestać - feof() (89)
- Odczytywanie pliku wiersz po wierszu - fgets(), fgetss() i fgetcsv() (89)
- Odczyt całego pliku - readfile(), fpassthru(), file() (90)
- Odczyt pojedynczego znaku - fgetc() (91)
- Odczytywanie zadanej długości - fread() (91)
- Inne przydatne funkcje plikowe (91)
- Sprawdzanie istnienia pliku - file_exists() (92)
- Określanie wielkości pliku - filesize() (92)
- Kasowanie pliku - unlink() (92)
- Poruszanie się wewnątrz pliku - rewind(), fseek() i ftell() (92)
- Blokowanie pliku (93)
- Lepszy sposób obróbki danych - systemy zarządzania bazami danych (94)
- Problemy związane ze stosowaniem plików jednorodnych (95)
- Jak RDBMS rozwiązują powyższe problemy? (95)
- Propozycje dalszych lektur (96)
- W następnym rozdziale (96)
Rozdział 3. Stosowanie tablic (97)
- Czym są tablice? (97)
- Tablice indeksowane numerycznie (98)
- Inicjowanie tablic indeksowanych numerycznie (98)
- Dostęp do zawartości tablicy (99)
- Dostęp do tablic przy zastosowaniu pętli (100)
- Tablice z innymi indeksami (100)
- Inicjowanie tablicy (100)
- Dostęp do elementów tablicy (101)
- Stosowanie pętli (101)
- Operatory tablicowe (103)
- Tablice wielowymiarowe (103)
- Sortowanie tablic (106)
- Stosowanie funkcji sort() (106)
- Stosowanie funkcji asort() i ksort() do porządkowania tablic (107)
- Sortowanie odwrotne (107)
- Sortowanie tablic wielowymiarowych (108)
- Typy sortowań definiowane przez użytkownika (108)
- Odwrotne sortowanie zdefiniowane przez użytkownika (109)
- Zmiany kolejności elementów w tablicach (110)
- Stosowanie funkcji shuffle() (110)
- Stosowanie funkcji array_reverse() (111)
- Ładowanie tablic z plików (112)
- Wykonywanie innych działań na tablicach (114)
- Poruszanie się wewnątrz tablicy - funkcje each(), current(), reset(), end(), next(), pos() i prev() (114)
- Dołączanie dowolnej funkcji do każdego elementu tablicy - funkcja array_walk() (115)
- Liczenie elementów tablicy: count(), sizeof() i array_count_values() (116)
- Konwersja tablic na zmienne skalarne - funkcja extract() (117)
- Propozycje dalszych lektur (118)
- W następnym rozdziale (118)
Rozdział 4. Manipulowanie ciągami i wyrażenia regularne (119)
- Przykładowa aplikacja - Inteligentny Formularz Pocztowy (119)
- Formatowanie ciągów (121)
- Przycinanie ciągów - funkcje chop(), ltrim() i trim() (121)
- Formatowanie ciągów w celu ich prezentacji (122)
- Formatowanie ciągów do przechowania - funkcje addslashes() i stripslashes() (125)
- Łączenie i rozdzielanie ciągów za pomocą funkcji ciągów (127)
- Stosowanie funkcji explode(), implode() i join() (127)
- Stosowanie funkcji strtok() (128)
- Stosowanie funkcji substr() (128)
- Porównywanie ciągów (129)
- Porządkowanie ciągów - funkcje strcmp(), strcasecmp() i strnatcmp() (129)
- Sprawdzanie długości ciągu za pomocą funkcji strlen() (130)
- Dopasowywanie i zamiana podciągów za pomocą funkcji ciągów (130)
- Znajdowanie ciągów w ciągach - funkcje strstr(), strchr(), strrchr() i stristr() (131)
- Odnajdywanie pozycji podciągu - funkcje strpos() i strrpos() (131)
- Zamiana podciągów - funkcje str_replace() i substr_replace() (132)
- Wprowadzenie do wyrażeń regularnych (133)
- Podstawy (133)
- Zbiory i klasy znaków (134)
- Powtarzalność (135)
- Podwyrażenia (135)
- Podwyrażenia policzalne (135)
- Kotwiczenie na początku lub na końcu ciągu (136)
- Rozgałęzianie (136)
- Dopasowywanie specjalnych znaków literowych (136)
- Podsumowanie znaków specjalnych (137)
- Umieszczanie wszystkiego razem (Inteligentny Formularz) (137)
- Odnajdywanie podciągów za pomocą wyrażeń regularnych (138)
- Zamiana podciągów za pomocą wyrażeń regularnych (139)
- Rozdzielanie ciągów za pomocą wyrażeń regularnych (139)
- Propozycje dalszych lektur (140)
- W następnym rozdziale (140)
Rozdział 5. Ponowne wykorzystanie kodu i tworzenie funkcji (141)
- Zalety ponownego stosowania kodu (141)
- Koszt (142)
- Niezawodność (142)
- Spójność (142)
- Stosowanie funkcji require() i include() (142)
- Rozszerzenia plików i require() (143)
- Stosowanie require() w szablonach stron WWW (144)
- Stosowanie opcji auto_prepend_file i auto_append_file (148)
- Stosowanie funkcji w PHP (149)
- Wywoływanie funkcji (149)
- Wywołanie niezdefiniowanej funkcji (151)
- Wielkość liter a nazwy funkcji (152)
- Definiowanie własnych funkcji (152)
- Podstawowa struktura funkcji (152)
- Nadawanie nazwy funkcji (153)
- Parametry (154)
- Zasięg (156)
- Przekazanie przez referencję czy przekazanie przez wartość? (158)
- Stosowanie słowa kluczowego return (159)
- Zwracanie wartości przez funkcje (160)
- Implementacja rekurencji (161)
- Propozycje dalszych lektur (163)
- W następnym rozdziale (163)
Rozdział 6. Obiektowy PHP (165)
- Koncepcje programowania obiektowego (165)
- Klasy i obiekty (166)
- Polimorfizm (167)
- Dziedziczenie (167)
- Tworzenie klas, atrybutów i operacji w PHP (168)
- Struktura klasy (168)
- Konstruktory (168)
- Destruktory (169)
- Tworzenie egzemplarzy (169)
- Stosowanie atrybutów klasy (170)
- Kontrolowanie dostępu przy użyciu private i public (172)
- Wywoływanie operacji klas (172)
- Implementacja dziedziczenia w PHP (173)
- Kontrolowanie widoczności w trakcie dziedziczenia przy użyciu private i protected (174)
- Unieważnianie (175)
- Zapobieganie dziedziczeniu i unieważnianiu przy użyciu final (176)
- Wielodziedziczenie (177)
- Implementowanie interfejsów (177)
- Tworzenie klas (178)
- Tworzenie kodu dla własnej klasy (179)
- Zaawansowane mechanizmy obiektowe w PHP (186)
- Używanie stałych klasowych (186)
- Implementowanie metod statycznych (186)
- Sprawdzanie typu klasy i wskazywanie typu (186)
- Późne wiązania statyczne (187)
- Klonowanie obiektów (188)
- Używanie klas abstrakcyjnych (188)
- Przeciążanie metod przy użyciu __call() (188)
- Używanie metody __autoload() (189)
- Implementowanie iteratorów i iteracji (190)
- Przekształcanie klas w łańcuchy znaków (191)
- Używanie API Reflection (192)
- W następnym rozdziale (192)
Rozdział 7. Obsługa błędów i wyjątków (195)
- Koncepcja obsługi wyjątków (195)
- Klasa Exception (196)
- Wyjątki definiowane przez użytkownika (197)
- Wyjątki w Częściach samochodowych Janka (200)
- Wyjątki i inne mechanizmy obsługi błędów w PHP (202)
- Propozycje dalszych lektur (203)
- W następnym rozdziale (203)
Część II: Stosowanie MySQL (205)
Rozdział 8. Projektowanie internetowej bazy danych (207)
- Koncepcje relacyjnych baz danych (208)
- Tabele (208)
- Kolumny (208)
- Wiersze (208)
- Wartości (208)
- Klucze (209)
- Schematy (209)
- Relacje (210)
- Jak zaprojektować internetową bazę danych? (211)
- Określ obiekty świata realnego, których model chcesz wykonać (211)
- Unikaj przechowywania redundantnych danych (211)
- Zapisuj atomowe wartości kolumn (213)
- Dobierz właściwe klucze (214)
- Pomyśl o zapytaniach, które zadasz bazie (214)
- Unikaj tworzenia tabel z wieloma pustymi polami (214)
- Typy tabel - podsumowanie (215)
- Architektura internetowej bazy danych (215)
- Propozycje dalszych lektur (216)
- W następnym rozdziale (216)
Rozdział 9. Tworzenie internetowej bazy danych (217)
- Użytkowanie monitora MySQL (218)
- Logowanie się do serwera MySQL (219)
- Tworzenie baz i rejestrowanie użytkowników (220)
- Definiowanie użytkowników i przywilejów (220)
- Wprowadzenie do systemu przywilejów MySQL (221)
- Zasada najmniejszego przywileju (221)
- Rejestrowanie użytkowników: polecenie GRANT (221)
- Typy i poziomy przywilejów (223)
- Polecenie REVOKE (224)
- Przykłady użycia poleceń GRANT i REVOKE (225)
- Rejestrowanie użytkownika łączącego się z internetu (226)
- Używanie odpowiedniej bazy danych (226)
- Tworzenie tabel bazy danych (227)
- Znaczenie dodatkowych atrybutów kolumn (228)
- Typy kolumn (229)
- Rzut oka na bazę danych - polecenia SHOW i DESCRIBE (231)
- Tworzenie indeksów (232)
- Identyfikatory MySQL (232)
- Wybór typów danych w kolumnach (233)
- Propozycje dalszych lektur (236)
- W następnym rozdziale (237)
Rozdział 10. Praca z bazą danych MySQL (239)
- Czym jest SQL? (239)
- Zapisywanie danych do bazy (240)
- Wyszukiwanie danych w bazie (242)
- Wyszukiwanie danych spełniających określone kryteria (243)
- Wyszukiwanie danych w wielu tabelach (245)
- Szeregowanie danych w określonym porządku (249)
- Grupowanie i agregowanie danych (250)
- Wskazanie wierszy, które mają być wyświetlone (252)
- Używanie podzapytań (252)
- Dokonywanie zmian rekordów w bazie danych (255)
- Zmiana struktury istniejących tabel (255)
- Usuwanie rekordów z bazy danych (257)
- Usuwanie tabel (257)
- Usuwanie całych baz danych (258)
- Propozycje dalszych lektur (258)
- W następnym rozdziale (258)
Rozdział 11. Łączenie się z bazą MySQL za pomocą PHP (259)
- Jak działa internetowa baza danych? (259)
- Wykonywanie zapytań do bazy danych z poziomu strony WWW (262)
- Sprawdzenie poprawności wpisanych danych (263)
- Ustanawianie połączenia z bazą danych (264)
- Wybór właściwej bazy danych (265)
- Wysyłanie zapytań do bazy danych (265)
- Odczytywanie rezultatów zapytań (266)
- Zamykanie połączenia z bazą danych (267)
- Wstawianie nowych danych do bazy (267)
- Używanie instrukcji przygotowywanych (270)
- Używanie innych interfejsów bazodanowych PHP (272)
- Stosowanie ogólnego interfejsu bazodanowego: PEAR MDB2 (272)
- Propozycje dalszych lektur (274)
- W następnym rozdziale (274)
Rozdział 12. Administrowanie MySQL dla zaawansowanych (275)
- Szczegóły systemu przywilejów (275)
- Tabela user (276)
- Tabele db i host (278)
- Tabele tables_priv, columns_priv i procs_priv (278)
- Kontrola dostępu: w jaki sposób MySQL używa tabel przywilejów (279)
- Zmiana przywilejów: kiedy zmiany zostaną uwzględnione? (281)
- Ochrona bazy danych (282)
- MySQL z perspektywy systemu operacyjnego (282)
- Hasła (282)
- Przywileje użytkowników (283)
- MySQL i internet (283)
- Uzyskiwanie szczegółowych informacji o bazie danych (284)
- Uzyskiwanie informacji poleceniem SHOW (284)
- Uzyskiwanie informacji o kolumnach za pomocą polecenia DESCRIBE (286)
- Jak wykonywane są zapytania: polecenie EXPLAIN (286)
- Optymalizowanie bazy danych (291)
- Optymalizacja projektu bazy danych (291)
- Przywileje (291)
- Optymalizacja tabel (291)
- Stosowanie indeksów (292)
- Używanie wartości domyślnych (292)
- Więcej wskazówek (292)
- Tworzenie kopii zapasowej bazy danych MySQL (292)
- Przywracanie bazy danych MySQL (293)
- Implementowanie replikacji (293)
- Konfigurowanie serwera nadrzędnego (294)
- Transfer danych początkowych (294)
- Konfigurowanie odbiorcy lub odbiorców (295)
- Propozycje dalszych lektur (296)
- W następnym rozdziale (296)
Rozdział 13. Zaawansowane programowanie w MySQL (297)
- Instrukcja LOAD DATA INFILE (297)
- Maszyny zapisu (298)
- Transakcje (299)
- Definicje dotyczące transakcji (299)
- Użycie transakcji w InnoDB (300)
- Klucze obce (301)
- Procedury składowane (302)
- Prosty przykład (302)
- Zmienne lokalne (304)
- Kursory i struktury sterujące (305)
- Propozycje dalszych lektur (308)
- W następnym rozdziale (308)
Część III: E-commerce i bezpieczeństwo (309)
Rozdział 14. Komercyjne witryny internetowe (311)
- Co chcemy osiągnąć? (311)
- Rodzaje komercyjnych stron WWW (311)
- Publikowanie informacji w broszurach internetowych (312)
- Przyjmowanie zamówień na produkty i usługi (315)
- Dostarczanie usług lub wyrobów mających postać cyfrową (319)
- Zwiększanie wartości produktów i usług (319)
- Ograniczanie kosztów (320)
- Ryzyko i zagrożenia (320)
- Crackerzy (321)
- Przyciągnięcie niewystarczającej liczby klientów (321)
- Awarie sprzętu komputerowego (322)
- Awarie sieci elektrycznych, komunikacyjnych i komputerowych oraz systemu wysyłkowego (322)
- Silna konkurencja (322)
- Błędy w oprogramowaniu (323)
- Zmiany polityki rządowej (323)
- Ograniczenie pojemności systemów (323)
- Wybór strategii (323)
- W następnym rozdziale (324)
Rozdział 15. Bezpieczeństwo komercyjnych stron WWW (325)
- Jaką wagę mają posiadane przez nas informacje? (326)
- Zagrożenia bezpieczeństwa (326)
- Ujawnienie informacji poufnych (327)
- Utrata lub zniszczenie danych (328)
- Modyfikacje danych (329)
- Blokada usługi (330)
- Błędy w oprogramowaniu (331)
- Zaprzeczenie korzystania z usługi (332)
- Użyteczność, wydajność, koszty i bezpieczeństwo (333)
- Opracowanie polityki bezpieczeństwa (333)
- Zasady uwierzytelniania (334)
- Podstawy szyfrowania (335)
- Szyfrowanie z kluczem prywatnym (336)
- Szyfrowanie z kluczem publicznym (337)
- Podpis cyfrowy (338)
- Certyfikaty cyfrowe (339)
- Bezpieczne serwery WWW (339)
- Monitorowanie i zapisywanie zdarzeń (340)
- Zapory sieciowe (341)
- Tworzenie kopii zapasowych (342)
- Tworzenie kopii zapasowych zwykłych plików (342)
- Tworzenie kopii zapasowych i odzyskiwanie baz danych MySQL (342)
- Bezpieczeństwo fizyczne (343)
- W następnym rozdziale (343)
Rozdział 16. Bezpieczeństwo aplikacji internetowych (345)
- Strategie zapewniania bezpieczeństwa (345)
- Planowanie z wyprzedzeniem (346)
- Równowaga między bezpieczeństwem i użytecznością (346)
- Monitorowanie bezpieczeństwa (347)
- Ogólne podejście do bezpieczeństwa (347)
- Rozpoznawanie zagrożeń (347)
- Dostęp do danych poufnych i ich modyfikowanie (347)
- Utrata lub zniszczenie danych (348)
- Zablokowanie usługi (348)
- Wstrzykiwanie kodu (349)
- Złamanie zabezpieczeń dostępu do serwera (349)
- Identyfikacja użytkowników (349)
- Crackerzy (350)
- Nieświadomi użytkownicy zainfekowanych komputerów (350)
- Rozczarowani pracownicy (350)
- Złodzieje sprzętu komputerowego (350)
- Autorzy systemów (350)
- Zabezpieczanie kodu źródłowego (351)
- Filtrowanie danych pochodzących od użytkowników (351)
- Unieważnianie danych wynikowych (355)
- Organizacja kodu źródłowego (356)
- Zawartość kodu źródłowego (357)
- Zagadnienia dotyczące systemu plików (358)
- Stabilność kodu i błędy (358)
- Apostrofy wykonywania poleceń systemu operacyjnego i polecenie exec (359)
- Zabezpieczanie serwera WWW oraz PHP (360)
- Regularne uaktualnianie oprogramowania (361)
- Analiza ustawień w pliku php.ini (362)
- Konfiguracja serwera WWW (362)
- Aplikacje internetowe działające na serwerach komercyjnych (364)
- Bezpieczeństwo serwera bazy danych (365)
- Użytkownicy i system uprawnień (365)
- Wysyłanie danych do serwera (366)
- Łączenie się z serwerem (366)
- Praca serwera (367)
- Zabezpieczanie sieci (367)
- Instalacja zapory sieciowej (368)
- Wykorzystanie strefy zdemilitaryzowanej (368)
- Przygotowanie na ataki DoS i DDoS (369)
- Bezpieczeństwo komputerów i systemów operacyjnych (369)
- Uaktualnianie systemu operacyjnego (369)
- Udostępnianie tylko niezbędnych usług (370)
- Fizyczne zabezpieczenie serwera (370)
- Planowanie działań na wypadek awarii (371)
- W następnym rozdziale (372)
Rozdział 17. Uwierzytelnianie przy użyciu PHP i MySQL (373)
- Identyfikacja użytkowników (373)
- Implementacja kontroli dostępu (374)
- Przechowywanie haseł dostępu (376)
- Szyfrowanie haseł (378)
- Zastrzeganie więcej niż jednej strony (379)
- Podstawowa metoda uwierzytelniania (380)
- Wykorzystanie podstawowej metody uwierzytelniania w PHP (381)
- Wykorzystanie podstawowej metody uwierzytelniania na serwerze Apache przy użyciu plików .htaccess (383)
- Wykorzystanie modułu mod_auth_mysql do celów uwierzytelniania (386)
- Instalacja modułu mod_auth_mysql (386)
- Praca z mod_auth_mysql (387)
- Implementacja własnej metody uwierzytelniania (388)
- Propozycje dalszych lektur (388)
- W następnym rozdziale (389)
Rozdział 18. Zabezpieczanie transakcji przy użyciu PHP i MySQL (391)
- Zapewnienie bezpieczeństwa transakcji (391)
- Komputer użytkownika (392)
- Internet (393)
- System docelowy (394)
- Wykorzystanie protokołu Secure Sockets Layer (SSL) (395)
- Kontrola danych pochodzących od użytkownika (398)
- Bezpieczne przechowywanie danych (399)
- Ustalanie, czy powinno się przechowywać numery kart kredytowych (400)
- Szyfrowanie danych w PHP (401)
- Instalacja GPG (401)
- Testowanie GPG (404)
- Propozycje dalszych lektur (408)
- W następnej części (408)
Część IV: Zaawansowane techniki PHP (409)
Rozdział 19. Interakcja z systemem plików i serwerem (411)
- Wprowadzenie do wysyłania plików (411)
- Kod HTML służący do wysyłania plików (412)
- Tworzenie PHP obsługującego plik (413)
- Najczęściej spotykane problemy (417)
- Stosowanie funkcji katalogowych (418)
- Odczyt z katalogów (418)
- Otrzymywanie informacji na temat aktualnego katalogu (421)
- Tworzenie i usuwanie katalogów (421)
- Interakcja z systemem plików (422)
- Otrzymywanie informacji o pliku (422)
- Zmiana właściwości pliku (424)
- Tworzenie, usuwanie i przenoszenie plików (425)
- Stosowanie funkcji uruchamiających programy (425)
- Interakcja ze środowiskiem: funkcje getenv() i putenv() (427)
- Propozycje dalszych lektur (428)
- W następnym rozdziale (428)
Rozdział 20. Stosowanie funkcji sieci i protokołu (429)
- Przegląd protokołów (429)
- Wysyłanie i odczytywanie poczty elektronicznej (430)
- Korzystanie z danych z innych witryn WWW (430)
- Stosowanie funkcji połączeń sieciowych (433)
- Tworzenie kopii bezpieczeństwa lub kopii lustrzanej pliku (436)
- Stosowanie FTP w celu utworzenia kopii bezpieczeństwa lub kopii lustrzanej pliku (436)
- Wysyłanie plików (442)
- Unikanie przekroczenia dopuszczalnego czasu (442)
- Stosowanie innych funkcji FTP (443)
- Propozycje dalszych lektur (443)
- W następnym rozdziale (444)
Rozdział 21. Zarządzanie datą i czasem (445)
- Uzyskiwanie informacji o dacie i czasie w PHP (445)
- Stosowanie funkcji date() (445)
- Obsługa znaczników czasu Uniksa (447)
- Stosowanie funkcji getdate() (448)
- Sprawdzanie poprawności dat przy użyciu funkcji checkdate() (449)
- Formatowanie znaczników czasu (450)
- Konwersja pomiędzy formatami daty PHP i MySQL (450)
- Obliczanie dat w PHP (452)
- Obliczanie dat w MySQL (454)
- Stosowanie mikrosekund (455)
- Stosowanie funkcji kalendarzowych (455)
- Propozycje dalszych lektur (456)
- W następnym rozdziale (456)
Rozdział 22. Generowanie obrazków (457)
- Konfigurowanie obsługi obrazków w PHP (457)
- Formaty obrazków (458)
- JPEG (459)
- PNG (459)
- WBMP (459)
- GIF (459)
- Tworzenie obrazków (460)
- Tworzenie kadru obrazka (460)
- Rysowanie lub umieszczanie tekstu w obrazku (461)
- Wyświetlanie ostatecznej grafiki (463)
- Końcowe czynności porządkujące (464)
- Stosowanie automatycznie generowanych obrazków na innych stronach (464)
- Stosowanie tekstu i czcionek do tworzenia obrazków (465)
- Konfiguracja podstawowego kadru (467)
- Dopasowanie tekstu do przycisku (468)
- Nadawanie tekstowi odpowiedniej pozycji (470)
- Wpisywanie tekstu do przycisku (471)
- Etap końcowy (471)
- Rysowanie figur i wykresów danych (471)
- Inne funkcje obrazków (478)
- Propozycje dalszych lektur (478)
- W następnym rozdziale (478)
Rozdział 23. Stosowanie kontroli sesji w PHP (479)
- Czym jest kontrola sesji? (479)
- Podstawowa zasada działania sesji (479)
- Czym jest cookie? (480)
- Konfiguracja cookies w PHP (480)
- Stosowanie cookies w sesji (481)
- Przechowywanie identyfikatora sesji (481)
- Implementacja prostych sesji (482)
- Rozpoczynanie sesji (482)
- Zgłaszanie zmiennych sesji (482)
- Stosowanie zmiennych sesji (483)
- Usuwanie zmiennych i niszczenie sesji (483)
- Przykład prostej sesji (483)
- Konfiguracja kontroli sesji (485)
- Implementacja uwierzytelniania w kontroli sesji (485)
- Propozycje dalszych lektur (491)
- W następnym rozdziale (491)
Rozdział 24. Inne przydatne własności (493)
- Stosowanie magicznych cudzysłowów (493)
- Wykonywanie ciągów - funkcja eval() (494)
- Zakończenie wykonania - die i exit (495)
- Serializacja zmiennych i obiektów (495)
- Pobieranie informacji na temat środowiska PHP (496)
- Uzyskiwanie informacji na temat załadowanych rozszerzeń (496)
- Identyfikacja właściciela skryptu (497)
- Uzyskiwanie informacji na temat daty modyfikacji skryptu (497)
- Czasowa zmiana środowiska wykonawczego (497)
- Podświetlanie źródeł (498)
- Używanie PHP w wierszu poleceń (499)
- W następnej części (500)
Część V: Tworzenie praktycznych projektów PHP i MySQL (501)
Rozdział 25. Stosowanie PHP i MySQL w dużych projektach (503)
- Zastosowanie inżynierii oprogramowania w tworzeniu aplikacji WWW (504)
- Planowanie i prowadzenie projektu aplikacji WWW (504)
- Ponowne stosowanie kodu (505)
- Tworzenie kodu łatwego w utrzymaniu (506)
- Standardy kodowania (506)
- Dzielenie kodu (509)
- Stosowanie standardowej struktury katalogów (509)
- Dokumentacja i dzielenie wewnętrznych funkcji (510)
- Implementacja kontroli wersji (510)
- Wybór środowiska programistycznego (511)
- Dokumentacja projektów (511)
- Prototypowanie (512)
- Oddzielanie logiki i zawartości (513)
- Optymalizacja kodu (514)
- Stosowanie prostych optymalizacji (514)
- Stosowanie produktów firmy Zend (514)
- Testowanie (515)
- Propozycje dalszych lektur (516)
- W następnym rozdziale (516)
Rozdział 26. Usuwanie błędów (517)
- Błędy programistyczne (517)
- Błędy składni (517)
- Błędy wykonania (519)
- Błędy logiczne (523)
- Pomoc w usuwaniu błędów w zmiennych (525)
- Poziomy zgłaszania błędów (527)
- Zmiana ustawień zgłaszania błędów (528)
- Wyzwalanie własnych błędów (529)
- Elegancka obsługa błędów (529)
- W następnym rozdziale (532)
Rozdział 27. Tworzenie uwierzytelniania użytkowników i personalizacji (533)
- Składniki rozwiązania (533)
- Identyfikacja użytkownika i personalizacja (534)
- Przechowywanie zakładek (535)
- Rekomendowanie zakładek (535)
- Przegląd rozwiązania (535)
- Implementacja bazy danych (537)
- Implementacja podstawowej witryny (538)
- Implementacja uwierzytelniania użytkowników (540)
- Rejestracja użytkowników (540)
- Logowanie (545)
- Wylogowanie (548)
- Zmiana hasła (549)
- Ustawianie zapomnianych haseł (551)
- Implementacja przechowywania i odczytywania zakładek (555)
- Dodawanie zakładek (555)
- Wyświetlanie zakładek (557)
- Usuwanie zakładek (557)
- Implementacja rekomendacji (559)
- Rozwijanie projektu i możliwe rozszerzenia (562)
- W następnym rozdziale (562)
Rozdział 28. Tworzenie koszyka na zakupy (563)
- Składniki rozwiązania (563)
- Tworzenie katalogu online (564)
- Śledzenie zakupów użytkownika podczas przeglądania (564)
- Implementacja systemu płatności (564)
- Interfejs administratora (565)
- Przegląd rozwiązania (565)
- Implementacja bazy danych (568)
- Implementacja katalogu online (570)
- Przedstawianie kategorii (571)
- Wyświetlanie książek danej kategorii (574)
- Przedstawianie szczegółowych danych książki (575)
- Implementacja koszyka na zakupy (577)
- Stosowanie skryptu pokaz_kosz.php (577)
- Podgląd koszyka (580)
- Dodawanie produktów do koszyka (582)
- Zapisywanie uaktualnionego koszyka (583)
- Wyświetlanie podsumowania w pasku nagłówka (584)
- Pobyt w kasie (584)
- Implementacja płatności (589)
- Implementacja interfejsu administratora (591)
- Rozwijanie projektu (598)
- Zastosowanie istniejącego systemu (598)
- W następnym rozdziale (598)
Rozdział 29. Tworzenie serwisu poczty elektronicznej opartego na WWW (599)
- Składniki rozwiązania (599)
- Protokoły poczty: POP3 i IMAP (599)
- Obsługa POP3 i IMAP w PHP (600)
- Przegląd rozwiązania (601)
- Konfiguracja bazy danych (603)
- Architektura skryptu (604)
- Logowanie i wylogowanie (608)
- Konfiguracja kont (611)
- Tworzenie nowego konta (613)
- Modyfikacja istniejącego konta (614)
- Usuwanie konta (614)
- Odczytywanie poczty (615)
- Wybór konta (615)
- Przeglądanie zawartości skrzynki (617)
- Odczytywanie wiadomości pocztowych (619)
- Przeglądanie nagłówków wiadomości (622)
- Usuwanie wiadomości (623)
- Wysyłanie wiadomości (623)
- Wysyłanie nowej wiadomości (624)
- Odpowiadanie i przekazywanie poczty (625)
- Rozwijanie projektu (626)
- W następnym rozdziale (627)
Rozdział 30. Tworzenie menedżera list pocztowych (629)
- Składniki rozwiązania (629)
- 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 (633)
- Architektura skryptu (635)
- Implementacja logowania (641)
- Tworzenie nowego konta (641)
- Logowanie (643)
- Implementacja funkcji użytkownika (645)
- Przeglądanie list (646)
- Przeglądanie informacji na temat listy (650)
- Przeglądanie archiwum listy (652)
- Zapisywanie i wypisywanie (653)
- Zmiana konfiguracji konta (654)
- Zmiana hasła (654)
- Wylogowanie (656)
- Implementacja funkcji administratora (656)
- Tworzenie nowej listy (657)
- Wysyłanie nowych wiadomości (658)
- Obsługa wysyłania wielu plików (661)
- Podgląd wiadomości (664)
- Rozsyłanie wiadomości (665)
- Rozwijanie projektu (670)
- W następnym rozdziale (670)
Rozdział 31. Tworzenie forum WWW (671)
- Proces (671)
- Składniki rozwiązania (672)
- Przegląd rozwiązania (673)
- Projektowanie bazy danych (674)
- Przeglądanie drzewa artykułów (676)
- Rozwijanie i zwijanie (678)
- Wyświetlanie artykułów (680)
- Korzystanie z klasy wezel_drzewa (681)
- Przeglądanie pojedynczych artykułów (687)
- Dodawanie nowych artykułów (688)
- Rozszerzenia (694)
- Wykorzystanie istniejącego systemu (694)
- W następnym rozdziale (694)
Rozdział 32. Tworzenie dokumentów spersonalizowanych w formacie PDF (695)
- Opis projektu (695)
- Ocena formatów dokumentów (696)
- Składniki rozwiązania (700)
- System pytań i odpowiedzi (700)
- Oprogramowanie generujące dokumenty (700)
- Przegląd rozwiązania (703)
- Zadawanie pytań (704)
- Ocena odpowiedzi (705)
- Tworzenie certyfikatu RTF (707)
- Tworzenie certyfikatu PDF z szablonu (710)
- Generowanie dokumentu PDF za pomocą PDFlib (713)
- Skrypt "Witaj, świecie" dla PDFlib (713)
- Tworzenie certyfikatu za pomocą PDFlib (717)
- Problemy związane z nagłówkami (723)
- Rozwijanie projektu (724)
- W następnym rozdziale (724)
Rozdział 33. Korzystanie z usług sieciowych za pomocą XML i SOAP (725)
- Opis projektu: korzystanie z języka XML i usług sieciowych (725)
- Podstawy XML (726)
- Podstawy usług sieciowych (729)
- Składniki rozwiązania (730)
- Korzystanie z interfejsu usług sieciowych Amazon.com (730)
- Wczytywanie dokumentów XML: odpowiedzi REST (731)
- Korzystanie z SOAP za pomocą PHP (732)
- Buforowanie (732)
- Opis rozwiązania (732)
- Aplikacja główna (734)
- Wyświetlanie listy książek z danej kategorii (742)
- Tworzenie obiektu klasy WynikiWyszukiwania (743)
- Korzystanie z REST do wykonywania żądań i odczytywania wyników (750)
- Korzystanie z protokołu SOAP do wykonywania żądania i odczytywania wyniku (755)
- Buforowanie danych pochodzących z żądania (756)
- Konstrukcja koszyka na zakupy (758)
- Przejście do kasy na witrynie Amazon.com (761)
- Instalacja kodu źródłowego (762)
- Kierunki rozwoju (762)
- Literatura (762)
Rozdział 34. Tworzenie aplikacji Web 2.0 z wykorzystaniem technologii Ajax (763)
- Czym jest technologia Ajax? (764)
- Żądania i odpowiedzi HTTP (764)
- DHTML i XML (765)
- Kaskadowe arkusze stylów (CSS) (766)
- Skrypty działające po stronie klienta (767)
- Skrypty działające po stronie serwera (768)
- XML i XSLT (768)
- Podstawy technologii Ajax (768)
- Obiekt XMLHTTPRequest (768)
- Komunikowanie się z serwerem (770)
- Przetwarzanie odpowiedzi serwera (772)
- Połączenie wszystkich elementów aplikacji (773)
- Dodanie nowych elementów do wcześniejszych projektów (775)
- Dodanie elementów Ajaksa do witryny ZakładkaPHP (777)
- Źródła dodatkowych informacji (788)
- Dodatkowe informacje na temat Document Object Model (DOM) (789)
- Biblioteki JavaScript dla aplikacji Ajax (789)
- Witryny internetowe przeznaczone dla programistów Ajax (790)
Dodatki (791)
Dodatek A: Instalacja PHP i MySQL (793)
- Instalacja Apache, PHP i MySQL w systemie UNIX (794)
- Instalacja przy użyciu binariów (794)
- Instalacja przy użyciu kodów źródłowych (794)
- Plik httpd.conf - informacje końcowe (800)
- Czy obsługa PHP działa poprawnie? (800)
- Czy SSL działa poprawnie? (801)
- Instalacja Apache, PHP i MySQL w systemie Windows (802)
- Instalacja MySQL w systemie Windows (803)
- Instalacja serwera Apache w systemie Windows (804)
- Instalacja PHP w systemie Windows (806)
- Instalowanie PEAR (808)
- Inne konfiguracje (809)
Dodatek B: Zasoby internetowe (811)
- Zasoby poświęcone PHP (811)
- Zasoby poświęcone MySQL i SQL (813)
- Zasoby poświęcone serwerowi Apache (813)
- Zasoby poświęcone tworzeniu stron WWW (814)
Skorowidz (815)