E-book details

PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie V

PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie V

Luke Welling, Laura Thomson

Ebook

Język PHP i serwer bazy danych MySQL to niezwykle popularne narzędzia o otwartym kodzie źródłowym. Wiele świetnych, dynamicznych stron WWW powstało właśnie dzięki połączeniu tych dwóch narzędzi. Ogromne możliwości PHP oraz elastyczność i szybkość MySQL, bezustanne rozwijanie tych technologii, a także niezawodna i chętna do pomocy społeczność sprawiają, że tworzenie profesjonalnych, interaktywnych witryn WWW z wykorzystaniem synergii PHP i MySQL jest pracą przyjemną, efektywną i satysfakcjonującą!

Trzymasz w ręku piąte wydanie poradnika dla projektantów WWW, po który twórcy stron sięgają wyjątkowo często. Książka została poprawiona, zaktualizowana o PHP 7 i rozszerzona o prezentację najnowszych możliwości MySQL. Zawiera przejrzysty opis podstaw PHP oraz konfiguracji i pracy z bazą danych MySQL. Przedstawiono w niej zasady poprawnego projektowania, pisania i wdrażania aplikacji. Uwzględniono też zagadnienia dotyczące bezpieczeństwa i uwierzytelniania użytkowników oraz implementacji takich rozwiązań w rzeczywistych witrynach WWW. Nie zabrakło tu również gruntownego wprowadzenia do zagadnienia integracji części klienckiej i serwerowej aplikacji internetowych za pomocą JavaScriptu.

Najważniejsze zagadnienia przedstawione w książce to:

  • podstawowe konstrukcje PHP i ich poprawne stosowanie
  • projektowanie, tworzenie i utrzymywanie bazy danych SQL jako elementu aplikacji WWW
  • zaawansowane techniki PHP i funkcje MySQL
  • usuwanie błędów i ich rejestrowanie w pliku dziennika
  • korzystanie z frameworka Laravel
  • integracja aplikacji z mediami społecznościowymi

PHP i MySQL —klasyczne rozwiązanie dla niezawodnych, dynamicznych witryn!


Laura Thomson — jest dyrektorem ds. technicznych w Mozilla Corporation. Wcześniej była prezesem firm OmniTI i Tangled Web Design. W wolnych chwilach jeździ konno lub dyskutuje o idei wolnego oprogramowania.

Luke Welling — jest architektem oprogramowania i bywalcem konferencji poświęconych programowaniu aplikacji internetowych. Jakiś czas temu wykładał inżynierię oprogramowania na Uniwersytecie Melbourne w Australii. W wolnym czasie zajmuje się propagowaniem zalet wolnego oprogramowania.

O autorach (19)

O współautorach (19)

Wprowadzenie (21)

CZĘŚĆ I. STOSOWANIE PHP (31)

Rozdział 1. Podstawowy kurs PHP (33)

  • Zastosowanie PHP (34)
  • Tworzenie przykładowej aplikacji: "Części samochodowe Janka" (34)
    • Formularz zamówienia (34)
    • Przetwarzanie formularza (36)
  • Osadzanie PHP w HTML (36)
    • Zastosowanie znaczników PHP (37)
    • Instrukcje PHP (38)
    • Odstępy (38)
    • Komentarze (39)
  • Dodawanie zawartości dynamicznej (39)
    • Wywoływanie funkcji (40)
    • Używanie funkcji date() (40)
  • Dostęp do zmiennych formularza (41)
    • Zmienne formularza (41)
    • Łączenie łańcuchów znaków (43)
    • Zmienne i łańcuchy znaków (43)
  • Identyfikatory (44)
  • Typy zmiennych (44)
    • Typy danych w PHP (45)
    • Siła typu (45)
    • Rzutowanie typu (46)
    • Zmienne zmiennych (46)
  • Deklarowanie i używanie stałych (46)
  • Zasięg zmiennych (47)
  • Używanie operatorów (48)
    • Operatory arytmetyczne (48)
    • Operatory łańcuchowe (49)
    • Operatory przypisania (49)
    • Operatory porównań (52)
    • Operatory logiczne (52)
    • Operatory bitowe (53)
    • Pozostałe operatory (53)
  • Obliczanie sum w formularzu (56)
  • Pierwszeństwo i kolejność (57)
  • Funkcje zarządzania zmiennymi (59)
    • Sprawdzanie i ustawianie typów zmiennych (59)
    • Sprawdzanie stanu zmiennej (60)
    • Reinterpretacja zmiennych (61)
  • Podejmowanie decyzji za pomocą instrukcji warunkowych (61)
    • Instrukcja if (61)
    • Bloki kodu (62)
    • Instrukcja else (62)
    • Instrukcja elseif (63)
    • Instrukcja switch (63)
    • Porównanie różnych instrukcji warunkowych (65)
  • Powtarzanie działań przy użyciu iteracji (65)
    • Pętle while (66)
    • Pętle for i foreach (67)
    • Pętle do..while (68)
  • Wyłamywanie się ze struktury skryptu (69)
  • Używanie alternatywnych składni struktur sterujących (69)
  • Używanie struktury declare (70)
  • W następnym rozdziale (70)

Rozdział 2. Przechowywanie i wyszukiwanie danych (71)

  • Zapisywanie danych do późniejszego użycia (71)
  • Przechowywanie i wyszukiwanie zamówień Janka (72)
  • Przetwarzanie plików (72)
  • Otwieranie pliku (73)
    • Tryby otwarcia pliku (73)
    • Stosowanie funkcji fopen() do otwarcia pliku (73)
    • Otwieranie pliku przez protokół FTP lub HTTP (75)
    • Problemy z otwieraniem plików (76)
  • Zapisywanie danych w pliku (77)
    • Parametry funkcji fwrite() (78)
    • Formaty plików (79)
  • Zamykanie pliku (79)
  • Odczyt z pliku (81)
    • Otwieranie pliku w celu odczytu - fopen() (82)
    • Wiedzieć, kiedy przestać - feof() (82)
    • Odczytywanie pliku wiersz po wierszu - fgets(), fgetss() i fgetcsv() (83)
    • Odczyt całego pliku - readfile(), fpassthru(), file() i file_get_contents() (83)
    • Odczyt pojedynczego znaku - fgetc() (84)
    • Odczytywanie zadanej długości - fread() (85)
  • Inne funkcje plikowe (85)
    • Sprawdzanie istnienia pliku - file_exists() (85)
    • Określanie wielkości pliku - filesize() (85)
    • Kasowanie pliku - unlink() (86)
    • Poruszanie się wewnątrz pliku - rewind(), fseek() i ftell() (86)
  • Blokowanie pliku (87)
  • Lepszy sposób obróbki danych - bazy danych (88)
    • Problemy związane ze stosowaniem plików jednorodnych (88)
    • Jak RDBMS rozwiązują powyższe problemy? (89)
  • 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 z innymi indeksami (94)
    • Inicjowanie tablicy (95)
    • Dostęp do elementów tablicy (95)
    • Stosowanie pętli (95)
  • Operatory tablicowe (96)
  • Tablice wielowymiarowe (97)
  • Sortowanie tablic (100)
    • Stosowanie funkcji sort() (100)
    • Stosowanie funkcji asort() i ksort() do porządkowania tablic (101)
    • Sortowanie odwrotne (102)
  • Sortowanie tablic wielowymiarowych (102)
    • Zastosowanie funkcji array_multisort() (102)
    • Typy sortowań definiowane przez użytkownika (103)
    • Odwrotne sortowanie zdefiniowane przez użytkownika (104)
  • Zmiany kolejności elementów w tablicach (105)
    • Stosowanie funkcji shuffle() (105)
    • Odwracanie kolejności elementów w tablicy (106)
  • Wczytywanie tablic z plików (107)
  • Wykonywanie innych działań na tablicach (110)
    • Poruszanie się wewnątrz tablicy - funkcje each(), current(), reset(), end(), next(), pos() i prev() (110)
    • Dołączanie dowolnej funkcji do każdego elementu tablicy - funkcja array_walk() (111)
    • Liczenie elementów tablicy: count(), sizeof() i array_count_values() (112)
    • Konwersja tablic na zmienne skalarne - funkcja extract() (112)
  • Propozycje dalszych lektur (114)
  • W następnym rozdziale (114)

Rozdział 4. Manipulowanie łańcuchami znaków i wyrażenia regularne (115)

  • Przykładowa aplikacja - Inteligentny Formularz Pocztowy (115)
  • Formatowanie łańcuchów znaków (117)
    • Przycinanie łańcuchów - funkcje chop(), ltrim() i trim() (118)
    • Formatowanie wyjściowych łańcuchów znaków (118)
  • Łączenie i rozdzielanie łańcuchów znaków za pomocą funkcji łańcuchowych (125)
    • Stosowanie funkcji explode(), implode() i join() (125)
    • Stosowanie funkcji strtok() (126)
    • Stosowanie funkcji substr() (127)
  • Porównywanie łańcuchów znaków (127)
    • Porządkowanie łańcuchów znaków - funkcje strcmp(), strcasecmp() i strnatcmp() (128)
    • Sprawdzanie długości łańcucha znaków za pomocą funkcji strlen() (128)
  • Dopasowywanie i zamiana łańcuchów znaków za pomocą funkcji łańcuchowych (129)
    • Znajdowanie fragmentów w łańcuchach znaków - funkcje strstr(), strchr(), strrchr() i stristr() (129)
    • Odnajdywanie pozycji fragmentu łańcucha - funkcje strpos() i strrpos() (130)
    • Zamiana fragmentów łańcucha znaków - funkcje str_replace() i substr_replace() (131)
  • Wprowadzenie do wyrażeń regularnych (132)
    • Podstawy (132)
    • Ograniczniki (132)
    • Zbiory i klasy znaków (133)
    • Powtarzalność (134)
    • Podwyrażenia (135)
    • Podwyrażenia policzalne (135)
    • Kotwiczenie na początku lub na końcu łańcucha znaków (135)
    • Rozgałęzianie (135)
    • Dopasowywanie specjalnych znaków literowych (136)
    • Podsumowanie metaznaków (136)
    • Sekwencje specjalne (137)
    • Odwołania wsteczne (138)
    • Asercje (138)
    • Wykorzystanie wszystkich zdobytych informacji - inteligentny formularz (139)
  • Odnajdywanie fragmentów łańcuchów za pomocą wyrażeń regularnych (140)
  • Zamiana fragmentów łańcuchów za pomocą wyrażeń regularnych (141)
  • Rozdzielanie łańcuchów za pomocą wyrażeń regularnych (141)
  • Propozycje dalszych lektur (142)
  • W następnym rozdziale (142)

Rozdział 5. Ponowne wykorzystanie kodu i tworzenie funkcji (143)

  • Zalety ponownego stosowania kodu (143)
    • Koszt (144)
    • Niezawodność (144)
    • Spójność (144)
  • Stosowanie funkcji require() i include() (144)
    • Stosowanie funkcji require() do dołączania kodu (145)
  • Stosowanie require() w szablonach stron WWW (146)
    • Stosowanie opcji auto_prepend_file i auto_append_file (150)
  • Stosowanie funkcji w PHP (151)
    • Wywoływanie funkcji (151)
    • Wywołanie niezdefiniowanej funkcji (153)
    • Wielkość liter a nazwy funkcji (154)
  • Definiowanie własnych funkcji (154)
  • Podstawowa struktura funkcji (154)
    • Nadawanie nazwy funkcji (155)
  • Parametry (156)
  • Zasięg (158)
  • Przekazanie przez referencję czy przekazanie przez wartość? (160)
  • Stosowanie słowa kluczowego return (161)
    • Zwracanie wartości przez funkcje (162)
  • Implementacja rekurencji (163)
    • Implementacja funkcji anonimowych (lub domknięć) (165)
  • Propozycje dalszych lektur (166)
  • W następnym rozdziale (166)

Rozdział 6. Obiektowy PHP (167)

  • Koncepcje programowania obiektowego (167)
    • Klasy i obiekty (168)
    • Polimorfizm (169)
    • Dziedziczenie (169)
  • Tworzenie klas, atrybutów i operacji w PHP (170)
    • Struktura klasy (170)
    • Konstruktory (170)
    • Destruktory (171)
  • Tworzenie egzemplarzy (171)
  • Stosowanie atrybutów klasy (172)
  • Wywoływanie operacji klas (172)
  • Kontrola dostępu przy użyciu modyfikatorów private i public (173)
  • Pisanie funkcji dostępowych (174)
  • Implementacja dziedziczenia w PHP (175)
    • Kontrolowanie widoczności w trakcie dziedziczenia przy użyciu private i protected (176)
    • Przesłanianie (177)
    • Zapobieganie dziedziczeniu i przesłanianiu przy użyciu słowa kluczowego final (178)
    • Wielokrotne dziedziczenie (179)
    • Implementowanie interfejsów (180)
  • Cechy (180)
  • Projektowanie klas (182)
  • Tworzenie kodu dla własnej klasy (183)
  • Zaawansowane mechanizmy obiektowe w PHP (189)
    • Używanie stałych klasowych (189)
    • Implementowanie metod statycznych (190)
    • Sprawdzanie typu klasy i wskazywanie typu (190)
    • Późne wiązania statyczne (191)
    • Klonowanie obiektów (191)
    • Używanie klas abstrakcyjnych (192)
    • Przeciążanie metod przy użyciu __call() (192)
    • Używanie metody __autoload() (193)
    • Implementowanie iteratorów i iteracji (194)
    • Generatory (195)
    • Przekształcanie klas w łańcuchy znaków (197)
    • Używanie API Reflection (197)
    • Przestrzenie nazw (198)
    • Stosowanie podprzestrzeni nazw (200)
    • Prezentacja globalnej przestrzeni nazw (200)
    • Importowanie przestrzeni nazw oraz określanie ich nazw zastępczych (200)
  • W następnym rozdziale (201)

Rozdział 7. Obsługa błędów i wyjątków (203)

  • Koncepcja obsługi wyjątków (203)
  • Klasa Exception (205)
  • Wyjątki definiowane przez użytkownika (206)
  • Wyjątki w Częściach samochodowych Janka (207)
  • Wyjątki i inne mechanizmy obsługi błędów w PHP (210)
  • Propozycje dalszych lektur (211)
  • W następnym rozdziale (211)

CZĘŚĆ II. STOSOWANIE MYSQL (213)

Rozdział 8. Projektowanie internetowej bazy danych (215)

  • Koncepcje relacyjnych baz danych (216)
    • Tabele (216)
    • Kolumny (216)
    • Wiersze (216)
    • Wartości (217)
    • Klucze (217)
    • Schematy (218)
    • Relacje (218)
  • Jak zaprojektować internetową bazę danych? (219)
    • Określ obiekty świata realnego, których model chcesz wykonać (219)
    • Unikaj przechowywania redundantnych danych (220)
    • Zapisuj atomowe wartości kolumn (221)
    • Dobierz właściwe klucze (222)
    • Pomyśl o zapytaniach, które zadasz bazie (222)
    • Unikaj tworzenia tabel z wieloma pustymi polami (222)
    • Typy tabel - podsumowanie (223)
  • Architektura internetowej bazy danych (224)
  • Propozycje dalszych lektur (225)
  • W następnym rozdziale (225)

Rozdział 9. Tworzenie internetowej bazy danych (227)

  • Użytkowanie monitora MySQL (228)
  • Logowanie się do serwera MySQL (229)
  • Tworzenie baz i rejestrowanie użytkowników (230)
  • Definiowanie użytkowników i przywilejów (230)
  • Wprowadzenie do systemu przywilejów MySQL (231)
    • Zasada najmniejszego przywileju (231)
    • Rejestrowanie użytkowników: polecenia CREATE USER oraz GRANT (231)
    • Typy i poziomy przywilejów (233)
    • Polecenie REVOKE (236)
    • Przykłady użycia poleceń GRANT i REVOKE (236)
  • Rejestrowanie użytkownika łączącego się z internetu (237)
  • Używanie odpowiedniej bazy danych (238)
  • Tworzenie tabel bazy danych (238)
    • Znaczenie dodatkowych atrybutów kolumn (240)
    • Typy kolumn (241)
    • Rzut oka na bazę danych - polecenia SHOW i DESCRIBE (243)
    • Tworzenie indeksów (243)
  • Identyfikatory MySQL (244)
  • Wybór typów danych w kolumnach (246)
    • Typy liczbowe (246)
  • Propozycje dalszych lektur (251)
  • W następnym rozdziale (251)

Rozdział 10. Praca z bazą danych MySQL (253)

  • Czym jest SQL? (253)
  • Zapisywanie danych do bazy (254)
  • Wyszukiwanie danych w bazie (256)
    • Wyszukiwanie danych spełniających określone kryteria (257)
    • Wyszukiwanie danych w wielu tabelach (259)
    • Szeregowanie danych w określonym porządku (264)
    • Grupowanie i agregowanie danych (264)
    • Wskazanie wierszy, które mają być wyświetlone (266)
    • Używanie podzapytań (267)
  • Dokonywanie zmian rekordów w bazie danych (269)
  • Zmiana struktury istniejących tabel (269)
  • Usuwanie rekordów z bazy danych (271)
  • Usuwanie tabel (272)
  • Usuwanie całych baz danych (272)
  • Propozycje dalszych lektur (272)
  • W następnym rozdziale (272)

Rozdział 11. Łączenie się z bazą MySQL za pomocą PHP (273)

  • Jak działa internetowa baza danych? (273)
  • Wykonywanie zapytań do bazy danych z poziomu strony WWW (276)
    • Sprawdzenie poprawności wpisanych danych (277)
    • Ustanawianie połączenia z bazą danych (278)
    • Wybór używanej bazy danych (279)
    • Wysyłanie zapytań do bazy danych (279)
    • Stosowanie poleceń przygotowanych (280)
    • Odczytywanie rezultatów zapytań (281)
    • Zamykanie połączenia z bazą danych (282)
  • Wstawianie nowych danych do bazy (283)
  • Używanie innych interfejsów bazodanowych PHP (286)
    • Stosowanie ogólnego interfejsu dostępu do baz danych: PDO (286)
  • Propozycje dalszych lektur (289)
  • W następnym rozdziale (289)

Rozdział 12. Administrowanie MySQL dla zaawansowanych (291)

  • Szczegóły systemu przywilejów (291)
    • Tabela user (293)
    • Tabela db (295)
    • Tabele tables_priv, columns_priv i procs_priv (296)
    • Kontrola dostępu: w jaki sposób MySQL używa tabel przywilejów (297)
    • Zmiana przywilejów: kiedy zmiany zostaną uwzględnione? (298)
  • Ochrona bazy danych (298)
    • MySQL z perspektywy systemu operacyjnego (298)
    • Hasła (299)
    • Przywileje użytkowników (299)
    • MySQL i internet (300)
  • Uzyskiwanie szczegółowych informacji o bazie danych (301)
    • Uzyskiwanie informacji poleceniem SHOW (301)
    • Uzyskiwanie informacji o kolumnach za pomocą polecenia DESCRIBE (303)
    • Jak wykonywane są zapytania: polecenie EXPLAIN (303)
  • Optymalizowanie bazy danych (308)
    • Optymalizacja projektu bazy danych (308)
    • Przywileje (308)
    • Optymalizacja tabel (308)
    • Stosowanie indeksów (308)
    • Używanie wartości domyślnych (309)
    • Więcej wskazówek (309)
  • Tworzenie kopii zapasowej bazy danych MySQL (309)
  • Przywracanie bazy danych MySQL (310)
  • Implementowanie replikacji (310)
    • Konfigurowanie serwera nadrzędnego (311)
    • Transfer danych początkowych (311)
    • Konfigurowanie odbiorcy lub odbiorców (312)
  • Propozycje dalszych lektur (312)
  • W następnym rozdziale (312)

Rozdział 13. Zaawansowane programowanie w MySQL (313)

  • Instrukcja LOAD DATA INFILE (313)
  • Mechanizmy składowania danych (314)
  • Transakcje (315)
    • Definicje dotyczące transakcji (315)
    • Użycie transakcji w InnoDB (316)
  • Klucze obce (317)
  • Procedury składowane (318)
    • Prosty przykład (318)
    • Zmienne lokalne (321)
    • Kursory i struktury sterujące (321)
  • Wyzwalacze (324)
  • Propozycje dalszych lektur (326)
  • W następnym rozdziale (326)

CZĘŚĆ III. E-COMMERCE I BEZPIECZEŃSTWO (327)

Rozdział 14. Zagrożenia bezpieczeństwa aplikacji internetowych (329[ 1])

  • Identyfikacja zagrożeń (329)
    • Dostęp do wrażliwych danych (329)
    • Modyfikacje danych (332)
    • Utrata lub zniszczenie danych (332)
    • Blokada usługi (333)
    • Wstrzykiwanie złośliwego kodu (335)
    • Złamanie zabezpieczeń dostępu do serwera (336)
    • Zaprzeczenie korzystania z usługi (336)
  • Identyfikacja użytkowników (337)
    • Napastnicy i crackerzy (337)
    • Nieświadomi użytkownicy zainfekowanych komputerów (338)
    • Rozczarowani pracownicy (338)
    • Złodzieje sprzętu komputerowego (338)
    • My sami (338)
  • W następnym rozdziale (339)

Rozdział 15. Tworzenie bezpiecznych aplikacji internetowych (341)

  • Strategie zapewniania bezpieczeństwa (341)
    • Planowanie z wyprzedzeniem (342)
    • Równowaga między bezpieczeństwem i użytecznością (342)
    • Monitorowanie bezpieczeństwa (343)
    • Ogólne podejście do bezpieczeństwa (343)
  • Zabezpieczanie kodu źródłowego (343)
    • Filtrowanie danych pochodzących od użytkowników (343)
    • Unieważnianie danych wynikowych (347)
    • Organizacja kodu źródłowego (349)
    • Zawartość kodu źródłowego (350)
    • Zagadnienia dotyczące systemu plików (351)
    • Stabilność kodu i błędy (352)
    • Wykonywanie poleceń (352)
  • Zabezpieczanie serwera WWW oraz PHP (354)
    • Regularne uaktualnianie oprogramowania (354)
    • Analiza ustawień w pliku php.ini (355)
    • Konfiguracja serwera WWW (355)
    • Aplikacje internetowe działające na współużytkowanych serwerach hostingowych (356)
  • Bezpieczeństwo serwera bazy danych (357)
    • Użytkownicy i system uprawnień (357)
    • Wysyłanie danych do serwera (358)
    • Łączenie się z serwerem (359)
    • Praca serwera (359)
  • Zabezpieczanie sieci (359)
    • Zapory sieciowe (360)
    • Wykorzystanie strefy zdemilitaryzowanej (360)
    • Przygotowanie na ataki DoS i DDoS (361)
  • Bezpieczeństwo komputerów i systemów operacyjnych (361)
    • Uaktualnianie systemu operacyjnego (361)
    • Udostępnianie tylko niezbędnych usług (362)
    • Fizyczne zabezpieczenie serwera (362)
  • Planowanie działań na wypadek awarii (362)
  • W następnym rozdziale (364)

Rozdział 16. Implementacja metod uwierzytelniania przy użyciu PHP (365)

  • Identyfikacja użytkowników (365)
  • Implementacja kontroli dostępu (366)
    • Przechowywanie haseł dostępu (368)
    • Zabezpieczanie haseł (369)
    • Zabezpieczanie więcej niż jednej strony (370)
  • Podstawowa metoda uwierzytelniania (371)
  • Wykorzystanie podstawowej metody uwierzytelniania w PHP (371)
  • Wykorzystanie podstawowej metody uwierzytelniania na serwerze Apache przy użyciu plików .htaccess (373)
  • Implementacja własnej metody uwierzytelniania (376)
  • Propozycje dalszych lektur (376)
  • W następnym rozdziale (376)

CZĘŚĆ IV. ZAAWANSOWANE TECHNIKI PHP (377)

Rozdział 17. Interakcja z systemem plików i serwerem (379)

  • Wprowadzenie do wysyłania plików (379)
    • Kod HTML służący do wysyłania plików (380)
    • Tworzenie kodu PHP obsługującego plik (381)
    • Śledzenie postępów przesyłania plików (385)
    • Najczęściej spotykane problemy (387)
  • Stosowanie funkcji katalogowych (388)
    • Odczyt z katalogów (388)
    • Otrzymywanie informacji na temat aktualnego katalogu (391)
    • Tworzenie i usuwanie katalogów (391)
  • Interakcja z systemem plików (392)
    • Pobieranie informacji o pliku (392)
    • Zmiana właściwości pliku (394)
    • Tworzenie, usuwanie i przenoszenie plików (395)
  • Stosowanie funkcji uruchamiających programy (395)
  • Interakcja ze środowiskiem: funkcje getenv() i putenv() (398)
  • Propozycje dalszych lektur (398)
  • W następnym rozdziale (398)

Rozdział 18. Stosowanie funkcji sieci i protokołu (399)

  • Przegląd protokołów (399)
  • Wysyłanie i odczytywanie poczty elektronicznej (400)
  • Korzystanie z danych z innych witryn WWW (400)
  • Stosowanie funkcji połączeń sieciowych (403)
  • Tworzenie kopii bezpieczeństwa lub kopii lustrzanej pliku (407)
    • Stosowanie FTP w celu utworzenia kopii bezpieczeństwa lub kopii lustrzanej pliku (407)
    • Wysyłanie plików (413)
    • Unikanie przekroczenia dopuszczalnego czasu (413)
    • Stosowanie innych funkcji FTP (414)
  • Propozycje dalszych lektur (414)
  • W następnym rozdziale (414)

Rozdział 19. Zarządzanie datą i czasem (415)

  • Uzyskiwanie informacji o dacie i czasie w PHP (415)
    • Strefy czasowe (415)
    • Stosowanie funkcji date() (416)
    • Obsługa znaczników czasu Uniksa (417)
    • Stosowanie funkcji getdate() (419)
    • Sprawdzanie poprawności dat przy użyciu funkcji checkdate() (420)
    • Formatowanie znaczników czasu (420)
  • Konwersja pomiędzy formatami daty PHP i MySQL (422)
  • Obliczanie dat w PHP (424)
  • Obliczanie dat w MySQL (425)
  • Stosowanie mikrosekund (426)
  • Stosowanie funkcji kalendarzowych (426)
  • Propozycje dalszych lektur (427)
  • W następnym rozdziale (427)

Rozdział 20. Umiędzynarodawianie i lokalizowanie (429)

  • Lokalizacja to nie tylko tłumaczenie (429)
  • Zbiory znaków (430)
    • Zbiory znaków i ich związki z bezpieczeństwem (431)
    • Stosowanie wielobajtowych funkcji łańcuchowych w PHP (432)
  • Tworzenie struktury strony przystosowanej do lokalizacji (432)
  • Zastosowanie funkcji gettext() w umiędzynarodowionej aplikacji (435)
    • Konfiguracja systemu w celu wykorzystania funkcji gettext() (436)
    • Tworzenie plików z tłumaczeniami (437)
    • Implementacja zlokalizowanych treści w PHP z użyciem funkcji gettext() (438)
  • Propozycje dalszej lektury (439)
  • W następnym rozdziale (440)

Rozdział 21. Generowanie obrazków (441)

  • Konfigurowanie obsługi obrazków w PHP (441)
  • Formaty obrazków (442)
    • JPEG (442)
    • PNG (442)
    • GIF (443)
  • Tworzenie obrazków (443)
    • Tworzenie kadru obrazka (444)
    • Rysowanie lub umieszczanie tekstu w obrazku (444)
    • Wyświetlanie ostatecznej grafiki (446)
    • Końcowe czynności porządkujące (447)
  • Stosowanie automatycznie generowanych obrazków na innych stronach (447)
  • Stosowanie tekstu i czcionek do tworzenia obrazków (448)
    • Konfiguracja podstawowego kadru (451)
    • Dopasowanie tekstu do przycisku (452)
    • Nadawanie tekstowi odpowiedniej pozycji (454)
    • Wpisywanie tekstu do przycisku (455)
    • Etap końcowy (455)
  • Rysowanie figur i wykresów danych (455)
  • Inne funkcje obrazków (462)
  • W następnym rozdziale (462)

Rozdział 22. Stosowanie kontroli sesji w PHP (463)

  • Czym jest kontrola sesji? (463)
  • Podstawowa zasada działania sesji (463)
    • Czym jest cookie? (464)
    • Konfiguracja cookies w PHP (464)
    • Stosowanie cookies w sesji (465)
    • Przechowywanie identyfikatora sesji (465)
  • Implementacja prostych sesji (466)
    • Rozpoczynanie sesji (466)
    • Zgłaszanie zmiennych sesyjnych (466)
    • Stosowanie zmiennych sesyjnych (467)
    • Usuwanie zmiennych i niszczenie sesji (467)
  • Przykład prostej sesji (467)
  • Konfiguracja kontroli sesji (469)
  • Implementacja uwierzytelniania w kontroli sesji (470)
  • W następnym rozdziale (476)

Rozdział 23. Integracja JavaScriptu i PHP (477)

  • Przedstawienie technologii AJAX (477)
  • Krótka prezentacja jQuery (478)
  • Stosowanie jQuery w aplikacjach internetowych (478)
    • Podstawowe pojęcia i techniki związane ze stosowaniem jQuery (479)
    • Stosowanie selektorów jQuery (479)
  • Stosowanie jQuery, technologii AJAX i skryptów PHP (487)
    • Ajaksowe pogawędki - skrypt serwera (487)
    • Metody jQuery służące do korzystania z technologii AJAX (490)
    • Kliencka część aplikacji do prowadzenia pogawędek (493)
  • Propozycje dalszej lektury (498)
  • W następnym rozdziale (498)

Rozdział 24. Inne przydatne własności (499)

  • Przetwarzanie łańcuchów znaków - funkcja eval() (499)
  • Zakończenie wykonania - die i exit (500)
  • Serializacja zmiennych i obiektów (500)
  • Pobieranie informacji na temat środowiska PHP (501)
    • Uzyskiwanie informacji na temat załadowanych rozszerzeń (502)
    • Identyfikacja właściciela skryptu (502)
    • Uzyskiwanie informacji na temat daty modyfikacji skryptu (502)
  • Czasowa zmiana środowiska wykonawczego (503)
  • Podświetlanie źródeł (504)
  • Używanie PHP w wierszu poleceń (505)
  • W następnej części (506)

CZĘŚĆ V. TWORZENIE PRAKTYCZNYCH PROJEKTÓW PHP I MYSQL (507)

Rozdział 25. Stosowanie PHP i MySQL w dużych projektach (509)

  • Zastosowanie inżynierii oprogramowania w tworzeniu aplikacji WWW (510)
  • Planowanie i prowadzenie projektu aplikacji WWW (510)
  • Ponowne stosowanie kodu (511)
  • Tworzenie kodu łatwego w utrzymaniu (512)
    • Standardy kodowania (512)
    • Dzielenie kodu (515)
    • Stosowanie standardowej struktury katalogów (516)
    • Dokumentacja i dzielenie wewnętrznych funkcji (516)
  • Implementacja kontroli wersji (516)
  • Wybór środowiska programistycznego (517)
  • Dokumentacja projektów (517)
  • Prototypowanie (518)
  • Oddzielanie logiki i zawartości (519)
  • Optymalizacja kodu (519)
    • Stosowanie prostych optymalizacji (520)
  • Testowanie (520)
  • Propozycje dalszych lektur (521)
  • W następnym rozdziale (521)

Rozdział 26. Usuwanie i rejestracja błędów (523)

  • Błędy programistyczne (523)
    • Błędy składni (523)
    • Błędy wykonania (524)
    • Błędy logiczne (529)
  • Pomoc w usuwaniu błędów w zmiennych (530)
  • Poziomy zgłaszania błędów (532)
  • Zmiana ustawień zgłaszania błędów (534)
  • Wyzwalanie własnych błędów (535)
  • Eleganckie rejestrowanie błędów (536)
  • Rejestrowanie błędów w pliku dziennika (538)
  • W następnym rozdziale (538)

Rozdział 27. Tworzenie uwierzytelniania użytkowników i personalizacji (539)

  • Składniki rozwiązania (539)
    • Identyfikacja użytkownika i personalizacja (540)
    • Przechowywanie zakładek (540)
    • Rekomendowanie zakładek (541)
  • Przegląd rozwiązania (541)
  • Implementacja bazy danych (543)
  • Implementacja podstawowej witryny (544)
  • Implementacja uwierzytelniania użytkowników (546)
    • Rejestracja użytkowników (546)
    • Logowanie (551)
    • Wylogowanie (554)
    • Zmiana hasła (555)
    • Ustawianie zapomnianych haseł (557)
  • Implementacja przechowywania i odczytywania zakładek (561)
    • Dodawanie zakładek (561)
    • Wyświetlanie zakładek (563)
    • Usuwanie zakładek (564)
  • Implementacja rekomendacji (566)
  • Rozwijanie projektu i możliwe rozszerzenia (568)

Rozdział 28. Tworzenie internetowego klienta poczty elektronicznej z użyciem Laravela (571)

  • Prezentacja frameworka Laravel 5 (571)
    • Tworzenie nowego projektu Laravel (571)
    • Struktura aplikacji Laravel (572)
    • Cykl obsługi żądań i wzorzec MVC Laravela (574)
    • Klasy modelu, widok i kontroler frameworka Laravel (575)

Rozdział 29. Tworzenie internetowego klienta poczty elektronicznej z użyciem Laravela - część 2. (591)

  • Tworzenie prostego klienta IMAP przy użyciu Laravela (591)
    • Funkcje IMAP udostępniane przez PHP (591)
    • Opakowywanie funkcji IMAP na potrzeby aplikacji Laravel (599)
  • Łączenie wszystkich elementów w celu implementacji internetowego klienta poczty elektronicznej (615)
    • Implementacja klasy ImapServiceProvider (616)
    • Strona uwierzytelniania aplikacji klienckiej (617)
    • Implementacja głównego widoku aplikacji (621)
    • Implementacja usuwania i wysyłania wiadomości (629)
  • Wnioski (634)

Rozdział 30. Integracja z mediami społecznościowymi - udostępnianie i uwierzytelnianie (635)

  • OAuth - internetowa usługa uwierzytelniająca (635)
    • Przydziały typu kod autoryzacji (637)
    • Przydziały niejawne (638)
    • Implementacja internetowego klienta Instagrama (639)
    • Oznaczanie zdjęć jako lubianych (646)
  • Wniosek (647)

Rozdział 31. Tworzenie koszyka na zakupy (649)

  • Składniki rozwiązania (649)
    • Tworzenie katalogu online (650)
    • Śledzenie zakupów użytkownika podczas przeglądania (650)
    • Implementacja systemu płatności (650)
    • Interfejs administratora (651)
  • Przegląd rozwiązania (651)
  • Implementacja bazy danych (654)
  • Implementacja katalogu online (656)
    • Przedstawianie kategorii (658)
    • Wyświetlanie książek danej kategorii (660)
    • Przedstawianie szczegółowych danych książki (661)
  • Implementacja koszyka na zakupy (662)
    • Stosowanie skryptu pokaz_kosz.php (663)
    • Podgląd koszyka (665)
    • Dodawanie produktów do koszyka (667)
    • Zapisywanie uaktualnionego koszyka (669)
    • Wyświetlanie podsumowania w pasku nagłówka (669)
    • Pobyt w kasie (670)
  • Implementacja płatności (675)
  • Implementacja interfejsu administratora (676)
  • Rozwijanie projektu (682)

DODATKI (685)

Dodatek A. Instalacja Apache, PHP i MySQL (687)

  • Instalacja Apache, PHP i MySQL w systemie UNIX (688)
    • Instalacja przy użyciu binariów (688)
    • Instalacja przy użyciu kodów źródłowych (689)
    • Podstawowe zmiany w konfiguracji serwera Apache (695)
    • Czy obsługa PHP działa poprawnie? (696)
    • Czy SSL działa poprawnie? (697)
  • Instalacja Apache, PHP i MySQL w systemie Windows (698)
  • Instalowanie PEAR (700)
  • Instalowanie PHP z innymi serwerami (700)

Skorowidz (701)

  • Title: PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie V
  • Author: Luke Welling, Laura Thomson
  • Original title: PHP and MySQL Web Development (5th Edition)
  • Translation: Piotr Rajca
  • ISBN: 978-83-283-3257-7, 9788328332577
  • Date of issue: 2017-09-25
  • Format: Ebook
  • Item ID: phmsv5
  • Publisher: Helion