3f00c5dd3d1b1d210ad9732592aed7ab / 1 dni
PHP, MySQL i JavaScript. Wprowadzenie. Wydanie V - Helion
Trio: PHP, MySQL i JavaScript jest znane jako najwygodniejszy zestaw narzędzi do tworzenia dynamicznych stron internetowych, które do działania wymagają bazy danych. Mimo upływu lat i dynamicznego rozwoju konkurencyjnych technologii twórcy aplikacji WWW wciąż cenią PHP, MySQL i JavaScript za otwarte źródła, brak opłat za korzystanie, elastyczność i łatwość w nauce. Każdy ambitny programista posługujący się systemem Unix czy Linux z ser-werem Apache powinien zapoznać się z tymi narzędziami. W połączeniu z takimi technologiami jak jQuery, CSS i HTML5 pozwalają budować serwisy porównywalne z gigantami w rodzaju Facebooka, Twittera czy Gmaila.
Ta książka jest kolejnym, uzupełnionym i zaktualizowanym wydaniem znakomitego wprowadzenia do projektowania dynamicznych stron internetowych. Oprócz przystępnego omówienia technik tworzenia responsywnych stron WWW znalazły się tu solidne podstawy PHP, MySQL, JavaScriptu, CSS i HTML5; opisano też możliwości bibliotek jQuery i jQuery Mobile. Pokazano, jak połączyć możliwości tych technologii, oraz opisano zalecane metody programowania. Co istotne, w książce zawarto wskazówki dotyczące optymalizacji stron WWW pod kątem urządzeń mobilnych. Dzięki licznym przykładom uzyskaną wiedzę można na bieżąco testować w praktyce.
W tej książce między innymi:
baza danych i zapytania MySQL
podstawy tworzenia dynamicznych stron PHP
mechanizm sesji i zachowanie zasad bezpieczeństwa
biblioteki jQuery i jQuery Mobile oraz żądania Ajax
CSS2 i CSS3 oraz nowe funkcje HTML5: geolokacja, obsługa dźwięku i filmów, canvas
PHP, MySQL i JavaScript: klasyczne narzędzia dla nowoczesnych rozwiązań!
Osoby które kupowały "PHP, MySQL i JavaScript. Wprowadzenie. Wydanie V", wybierały także:
AMP: Building Accelerated Mobile Pages 135,91 zł, (29,90 zł -78%)The HTML and CSS Workshop 106,79 zł, (29,90 zł -72%)LESS. Kurs video. Poziom pierwszy. Jak usprawnić pracę z CSS 89,00 zł, (35,60 zł -60%)JavaScript Masterclass 88,41 zł, (38,90 zł -56%)Building Dynamic Web Experiences with PHP 88,41 zł, (38,90 zł -56%)
Spis treści
PHP, MySQL i JavaScript. Wprowadzenie. Wydanie V eBook -- spis treści
Przedmowa Do kogo jest adresowana ta książka? Założenia przyjęte w tej książce Struktura książki Książki, po które warto sięgnąć później Konwencje zastosowane w tej książce Posługiwanie się zamieszczonymi przykładami Podziękowania Rozdział 1. Wstęp do dynamicznych stron internetowych HTTP i HTML: podstawy wynalazku Bernersa-Lee Procedura żądanie/odpowiedź Zalety PHP, MySQL, JavaScriptu, CSS i HTML5 MariaDB klon MySQL Zastosowanie PHP Zastosowanie MySQL Zastosowanie JavaScriptu Zastosowanie CSS I HTML5 na dokładkę Serwer WWW Apache Obsługa urządzeń mobilnych Kilka słów o open source Zgrany zespół Pytania Rozdział 2. Konfigurowanie serwera WAMP, MAMP, LAMP a cóż to takiego? Instalowanie pakietu AMPPS w systemie Windows Testowanie instalacji Dostęp do katalogu głównego w systemie Windows Inne pakiety WAMP AMPPS i macOS Dostęp do katalogu głównego w systemie macOS Instalowanie pakietu LAMP pod Linuksem Praca zdalna Obsługa edytora kodu Obsługa środowiska IDE Pytania Rozdział 3. Wstęp do PHP Dodawanie elementów PHP do kodu HTML Przykłady z tej książki Składnia PHP Zastosowanie komentarzy Podstawowa składnia Zmienne Zmienne tekstowe Zmienne numeryczne Tablice Tablice dwuwymiarowe Zasady nazewnictwa zmiennych Operatory Operatory arytmetyczne Operatory przypisania Operatory porównania Operatory logiczne Przypisywanie wartości zmiennym Zwiększanie i zmniejszanie wartości zmiennych Konkatenacja łańcuchów znaków Typy łańcuchów Znaki modyfikujące Instrukcje wielowierszowe Deklaracja typu zmiennych Stałe Stałe predefiniowane Różnica między instrukcjami echo i print Funkcje Zasięg zmiennych Zmienne lokalne Zmienne globalne Zmienne statyczne Zmienne superglobalne Zmienne superglobalne a bezpieczeństwo Pytania Rozdział 4. Wyrażenia i sterowanie działaniem programu w PHP Wyrażenia Prawda czy fałsz? Literały i zmienne Operatory Priorytet operatorów Asocjacyjność Operatory relacji Równoważność Operatory porównania Operatory logiczne Wyrażenia warunkowe Instrukcja if Instrukcja else Instrukcja elseif Instrukcja switch Przerywanie Akcja domyślna Alternatywna składnia Operator ? Pętle Pętla while Pętla do while Pętla for Przerywanie pętli Instrukcja continue Rzutowanie jawne i niejawne Dynamiczne linkowanie w PHP Dynamiczne linkowanie w praktyce Pytania Rozdział 5. Funkcje i obiekty w PHP Funkcje PHP Definiowanie funkcji Zwracanie wartości Zwracanie tablicy Przekazywanie argumentów przez referencję Zwracanie zmiennych globalnych Przypomnienie informacji o zasięgu zmiennych Dołączanie i wymaganie plików Instrukcja include Zastosowanie instrukcji include_once Zastosowanie instrukcji require i require_once Sprawdzanie zgodności wersji PHP Obiekty w PHP Terminologia Deklarowanie klasy Tworzenie obiektu Odwoływanie się do obiektów Klonowanie obiektów Konstruktory Destruktory Tworzenie metod Deklarowanie właściwości Deklarowanie stałych Zasięg właściwości i metod Metody statyczne Właściwości statyczne Dziedziczenie Słowo kluczowe parent Konstruktory podklas Metody final Pytania Rozdział 6. Tablice w PHP Prosty dostęp Tablice indeksowane numerycznie Tablice asocjacyjne Dodawanie pozycji do tablicy przy użyciu słowa kluczowego array Pętla foreach as Tablice wielowymiarowe Zastosowanie funkcji do obsługi tablic is_array count sort shuffle explode extract compact reset end Pytania Rozdział 7. PHP w praktyce Zastosowanie funkcji printf Określanie precyzji Dopełnianie łańcuchów tekstowych Zastosowanie funkcji sprintf Funkcje do obsługi daty i czasu Stałe związane z datą Zastosowanie funkcji checkdate Obsługa plików Sprawdzanie istnienia pliku Tworzenie pliku Odczytywanie zawartości plików Kopiowanie plików Przenoszenie pliku Kasowanie pliku Aktualizowanie plików Ochrona plików przed wielokrotnym otwarciem Odczytywanie całego pliku Wysyłanie plików Zastosowanie tablicy $_FILES Walidacja Wywołania systemowe XHTML czy HTML5? Pytania Rozdział 8. Wstęp do MySQL Podstawy MySQL Podsumowanie pojęć dotyczących baz danych Dostęp do MySQL z poziomu wiersza poleceń Uruchamianie wiersza poleceń Użytkownicy Windows Użytkownicy macOS Użytkownicy Linuksa MySQL na zdalnym serwerze Obsługa serwera z poziomu wiersza poleceń Średnik Anulowanie polecenia Instrukcje MySQL Tworzenie bazy danych Tworzenie użytkowników Tworzenie tabeli Typy danych Typ CHAR Typ BINARY Typy TEXT Typ BLOB Typy danych liczbowych Typy DATE i TIME Atrybut AUTO_INCREMENT Wprowadzanie danych do tabeli Zmiana nazwy tabeli Zmiana typu danych w kolumnie Dodawanie nowej kolumny Zmiana nazwy kolumny Usuwanie kolumny Usuwanie tabeli Indeksy Tworzenie indeksu Zastosowanie instrukcji CREATE INDEX Dodawanie indeksów przy tworzeniu tabel Klucze główne Tworzenie indeksu typu FULLTEXT Tworzenie zapytań do bazy MySQL SELECT SELECT COUNT SELECT DISTINCT DELETE WHERE LIMIT Konstrukcja MATCH AGAINST Konstrukcja MATCH AGAINST w trybie boolowskim Konstrukcja UPDATE SET ORDER BY GROUP BY Łączenie tabel NATURAL JOIN JOIN ON Zastosowanie słowa kluczowego AS Zastosowanie operatorów logicznych Funkcje MySQL Dostęp do MySQL za pośrednictwem aplikacji phpMyAdmin Pytania Rozdział 9. Zaawansowana obsługa MySQL Projektowanie bazy Klucze główne, czyli kluczowy element relacyjnych baz danych Normalizacja Pierwsza postać normalna Druga postać normalna Trzecia postać normalna Kiedy nie stosować normalizacji Relacje Jeden do jednego Jeden do wielu Wiele do wielu Bazy danych i anonimowość Transakcje Mechanizmy składowania danych z obsługą transakcji Instrukcja BEGIN Instrukcja COMMIT Instrukcja ROLLBACK Instrukcja EXPLAIN Archiwizacja i przywracanie danych Instrukcja mysqldump Tworzenie pliku z kopią zapasową Tworzenie kopii zapasowej pojedynczej tabeli Tworzenie kopii zapasowej wszystkich tabel Odtwarzanie danych z pliku kopii zapasowej Zapisywanie danych w formacie CSV Planowanie tworzenia kopii zapasowych Pytania Rozdział 10. Korzystanie z MySQL za pośrednictwem PHP Tworzenie zapytań do bazy MySQL za pośrednictwem PHP Proces Tworzenie pliku logowania Nawiązywanie połączenia z MySQL Konstruowanie i wykonywanie zapytania Pobieranie rezultatu Pobieranie wiersza danych Zamykanie połączenia Praktyczny przykład Tablica $_POST Usuwanie rekordu Wyświetlanie formularza Wysyłanie zapytań do bazy danych Działanie programu MySQL w praktyce Tworzenie tabeli Wyświetlanie informacji o tabeli Usuwanie tabeli Dodawanie danych Odczytywanie danych Aktualizowanie danych Usuwanie danych Zastosowanie opcji AUTO_INCREMENT Zastosowanie identyfikatorów wstawionych wierszy Wykonywanie zapytań pomocniczych Zapobieganie próbom ataków Działania prewencyjne Zastosowanie elementów zastępczych Zapobieganie przekazywaniu niepożądanych danych przez HTML Proceduralny wariant zastosowania mysqli Pytania Rozdział 11. Obsługa formularzy Tworzenie formularzy Odczytywanie przesłanych danych Wartości domyślne Rodzaje pól Zwykłe pola tekstowe Wielowierszowe pola tekstowe Pola opcji Przełączniki Pola ukryte Etykiety Przycisk wysyłania Oczyszczanie danych wejściowych Przykładowy program Usprawnienia w HTML5 Atrybut autocomplete Atrybut autofocus Atrybut placeholder Atrybut required Atrybuty nadpisania Atrybuty width i height Atrybuty min i max Atrybut step Atrybut form Atrybut list Pole wejściowe typu color Pola wejściowe typu number i range Selektory daty i czasu Pytania Rozdział 12. Ciasteczka, sesje i autoryzacja Zastosowanie ciasteczek w PHP Tworzenie ciasteczka Dostęp do ciasteczka Usuwanie ciasteczek Autoryzacja HTTP Przechowywanie loginów i haseł Zastosowanie funkcji password_hash Zastosowanie funkcji password_verify Przykładowy program Obsługa sesji Inicjowanie sesji Kończenie sesji Określanie czasu trwania sesji Bezpieczeństwo sesji Zapobieganie przejmowaniu sesji Zapobieganie atakom typu session fixation Wymuszanie sesji korzystających z ciasteczek Korzystanie ze współdzielonego serwera Pytania Rozdział 13. Zapoznanie z JavaScriptem JavaScript i tekst w HTML Zastosowanie skryptów w nagłówku dokumentu Starsze i niestandardowe przeglądarki Dołączanie plików JavaScript Debugowanie kodu JavaScript Zastosowanie komentarzy Średniki Zmienne Zmienne znakowe Zmienne numeryczne Tablice Operatory Operatory arytmetyczne Operatory przypisania Operatory porównania Operatory logiczne Inkrementacja i dekrementacja zmiennych oraz skrócony zapis tych operacji Konkatenacja łańcuchów znaków Znaki modyfikujące Typowanie zmiennych Funkcje Zmienne globalne Zmienne lokalne Obiektowy model dokumentu Kolejne zastosowanie symbolu $ Zastosowanie obiektowego modelu dokumentu Kilka słów o document.write Zastosowanie funkcji console.log Zastosowanie funkcji alert Umieszczanie tekstu w elementach HTML Zastosowanie funkcji document.write Pytania Rozdział 14. Wyrażenia i sterowanie działaniem programu w JavaScripcie Wyrażenia Literały i zmienne Operatory Priorytet operatorów Asocjacyjność Operatory relacji Równoważność Operatory porównania Operatory logiczne Instrukcja with Zdarzenie onerror Konstrukcja try catch Wyrażenia warunkowe Instrukcja if Instrukcja else Instrukcja switch Przerywanie Akcja domyślna Operator ? Pętle Pętle while Pętle do while Pętle for Przerywanie pętli Instrukcja continue Typowanie jawne Pytania Rozdział 15. Funkcje, obiekty i tablice w JavaScripcie Funkcje w JavaScripcie Definiowanie funkcji Tablica arguments Zwracanie wartości Zwracanie tablicy Obiekty w JavaScripcie Deklarowanie klasy Tworzenie obiektu Dostęp do obiektów Słowo kluczowe prototype Metody i właściwości statyczne Rozszerzanie obiektów JavaScript Tablice w JavaScripcie Tablice numeryczne Przypisywanie wartości elementom Przypisywanie wartości przy użyciu słowa kluczowego array Tablice asocjacyjne Tablice wielowymiarowe Zastosowanie metod do obsługi tablic some indexOf concat forEach join push i pop Zastosowanie metody reverse Metoda sort Pytania Rozdział 16. Weryfikacja danych i obsługa błędów w JavaScripcie i PHP Weryfikowanie wprowadzonych danych przy użyciu JavaScriptu Dokument validate.html (część pierwsza) Dokument validate.html (część druga) Sprawdzanie imienia Sprawdzanie nazwiska Sprawdzanie nazwy użytkownika Sprawdzanie hasła Sprawdzanie wieku Sprawdzanie adresu e-mail Zastosowanie oddzielnego pliku JavaScript Wyrażenia regularne Dopasowywanie za pomocą metaznaków Dopasowanie rozmyte Grupowanie przy użyciu nawiasów Klasy znaków Określanie zakresu Zaprzeczenie Kilka bardziej skomplikowanych przykładów Podsumowanie metaznaków Modyfikatory ogólne Zastosowanie wyrażeń regularnych w JavaScripcie Zastosowanie wyrażeń regularnych w PHP Ponowne wyświetlenie formularza po weryfikacji w PHP Pytania Rozdział 17. Zastosowanie komunikacji asynchronicznej Czym jest komunikacja asynchroniczna? Zastosowanie obiektu XMLHttpRequest Twój pierwszy program asynchroniczny Właściwość readyState Proces komunikacji asynchronicznej po stronie serwera Zastosowanie metody GET zamiast POST Przesyłanie żądań XML Kilka słów o XML Po co używać XML? Zastosowanie bibliotek komunikacji asynchronicznej Pytania Rozdział 18. Wstęp do CSS Importowanie arkusza stylów Importowanie stylów CSS z poziomu HTML Style zagnieżdżone Zastosowanie identyfikatorów ID Zastosowanie klas Zastosowanie średników Reguły CSS Wiele deklaracji Zastosowanie komentarzy Rodzaje stylów Style domyślne Style użytkownika Zewnętrzne arkusze stylów Style wewnętrzne Style bezpośrednie Selektory CSS Selektor typu Selektor potomka Selektor dziecka Selektor identyfikatora Selektor klasy Selektor atrybutu Selektor uniwersalny Selekcja grupowa Dziedziczenie kaskadowe Źródła stylów Metody definiowania reguł Selektory arkuszy stylów Obliczanie specyficzności Zastosowanie systemu o większej podstawie Niektóre reguły są równiejsze od innych Różnica między elementami div i span Jednostki miar Fonty i typografia font-family font-style font-size font-weight Zarządzanie stylami tekstu Efekty tekstowe Odstępy Wyrównanie Wielkość znaków Wcięcia Kolory w CSS Skrócone określenia kolorów Gradienty Rozmieszczanie elementów Położenie bezwzględne Położenie względne Położenie stałe Pseudoklasy Skracanie reguł Model pudełkowy i układ strony Definiowanie marginesów Definiowanie ramek Definiowanie odstępu Zawartość obiektu Pytania Rozdział 19. Zaawansowane reguły CSS w CSS3 Selektory atrybutów Dopasowywanie fragmentów łańcuchów Operator ^ Operator $ Operator * Właściwość box-sizing Tła w CSS3 Właściwość background-clip Właściwość background-origin Właściwość background-size Zastosowanie właściwości auto Wiele obrazów w tle Ramki w CSS3 Właściwość border-color Właściwość border-radius Cienie Właściwość overflow Układ wielokolumnowy Kolory i przezroczystość Kolory HSL Kolory HSLA Kolory RGB Kolory RGBA Właściwość opacity Efekty tekstowe Właściwość text-shadow Właściwość text-overflow Właściwość word-wrap Fonty internetowe Fonty Google Przekształcenia Przekształcenia 3D Przejścia Właściwości przejść Czas trwania przejścia Opóźnienie przejścia Dynamika przejścia Skrócona składnia Pytania Rozdział 20. Dostęp do CSS z poziomu JavaScriptu Ponowne spotkanie z funkcją getElementById Funkcja O Funkcja S Funkcja C Dołączanie opisanych funkcji Dostęp do właściwości CSS z poziomu JavaScriptu Niektóre typowe właściwości Inne właściwości JavaScript w kodzie HTML Słowo kluczowe this Łączenie zdarzeń i obiektów w skrypcie Odwoływanie się do innych zdarzeń Dodawanie nowych elementów Usuwanie elementów Inne sposoby na dodawanie i usuwanie elementów Zastosowanie przerwań Zastosowanie przerwania setTimeout Przekazywanie łańcucha znaków Cykliczne powtarzanie Anulowanie opóźnienia Zastosowanie przerwania setInterval Zastosowanie opisanej funkcji Anulowanie interwału Animacje na bazie przerwań Pytania Rozdział 21. Wprowadzenie do jQuery Dlaczego jQuery? Dołączanie jQuery Wybór odpowiedniej wersji Różne odmiany jQuery Skompresowana czy edytowalna? Pobieranie Zastosowanie sieci dostarczania treści (CDN) Dostosowywanie jQuery Składnia jQuery Prosty przykład Unikanie konfliktów między bibliotekami Selektory Metoda css Selektor elementów Selektor identyfikatorów Selektor klas Łączenie selektorów Obsługa zdarzeń Oczekiwanie na gotowość dokumentu Funkcje i właściwości związane ze zdarzeniami Zdarzenia blur i focus Słowo kluczowe this Zdarzenia click i dblclick Zdarzenie keypress Przemyślane programowanie Zdarzenie mousemove Inne zdarzenia myszy Inne metody związane z obsługą myszy Zdarzenie submit Efekty specjalne Ukrywanie i wyświetlanie Metoda toggle Stopniowe zanikanie i wyświetlanie Przesuwanie elementów w górę i w dół Animacje Łańcuchowanie metod Funkcje zwrotne Zatrzymywanie animacji Manipulowanie drzewem DOM Różnica między metodami text i html Metody val i attr Dodawanie i usuwanie elementów Dynamiczne stosowanie klas Modyfikowanie wymiarów Metody width i height Metody innerWidth i innerHeight Metody outerWidth i outerHeight Nawigowanie w obrębie drzewa DOM Elementy nadrzędne Zastosowanie filtra Wybieranie wszystkich przodków elementów Elementy potomne Elementy siostrzane Wybieranie poprzedzających i kolejnych elementów Przetwarzanie selekcji w jQuery Metoda is Użycie jQuery bez selektorów Metoda $.each Metoda $.map Zastosowanie komunikacji asynchronicznej Zastosowanie metody POST Zastosowanie metody GET Rozszerzenia jQuery User Interface Inne rozszerzenia Pytania Rozdział 22. Wprowadzenie do jQuery Mobile Dołączanie biblioteki jQuery Mobile Zaczynamy Dołączanie stron Dołączanie synchroniczne Odsyłacze w ramach wielostronicowego dokumentu Przejścia między stronami Wczytywanie strony w postaci okna dialogowego Stylizowanie przycisków Obsługa list Listy z możliwością filtrowania Separatory list Co dalej? Pytania Rozdział 23. Wstęp do HTML5 Obiekt canvas Geolokacja Dźwięk i filmy Formularze Magazyn danych Web workers Pytania Rozdział 24. Obiekt canvas w HTML5 Tworzenie elementu canvas i dostęp do niego Funkcja toDataURL Określanie formatu obrazu Metoda fillRect Metoda clearRect Metoda strokeRect Łączenie wymienionych instrukcji Metoda createLinearGradient Szczegółowe informacje o metodzie addColorStop Metoda createRadialGradient Wypełnianie wzorkami Umieszczanie napisów na elemencie canvas Metoda strokeText Własność textBaseLine Własność font Własność textAlign Metoda fillText Metoda measureText Rysowanie linii Własność lineWidth Własności lineCap i lineJoin Własność miterLimit Kreślenie ścieżek Metody moveTo i lineTo Metoda stroke Metoda rect Wypełnianie obszarów Metoda clip Metoda isPointInPath Zastosowanie krzywych Metoda arc Metoda arcTo Metoda quadraticCurveTo Metoda bezierCurveTo Obsługa obrazków Metoda drawImage Skalowanie obrazu Wybieranie fragmentu obrazu Kopiowanie z elementu canvas Tworzenie cieni Przetwarzanie obrazu na poziomie pikseli Metoda getImageData Tablica data Metoda putImageData Metoda createImageData Zaawansowane efekty graficzne Własność globalCompositeOperation Własność globalAlpha Przekształcenia Metoda scale Metody save i restore Metoda rotate Metoda translate Metoda transform Metoda setTransform Pytania Rozdział 25. Filmy i dźwięk w HTML5 O kodekach Element Wsparcie dla przeglądarek nieobsługujących HTML5 Element Kodeki wideo Obsługa starszych przeglądarek Pytania Rozdział 26. Inne funkcje HTML5 Geolokacja i usługi GPS Inne sposoby lokalizacji Geolokacja i HTML5 Magazyn lokalny Zastosowanie magazynu lokalnego Obiekt localStorage Web workers Technologia przeciągnij i upuść Komunikacja między dokumentami Inne znaczniki HTML5 Pytania Rozdział 27. Zastosowanie wszystkich omówionych technologii Projektowanie aplikacji serwisu społecznościowego Strona WWW z przykładami functions.php Funkcje header.php setup.php index.php signup.php Sprawdzanie dostępności nazwy użytkownika Logowanie checkuser.php login.php profile.php Dodawanie tekstu O mnie Dodawanie zdjęcia profilowego Przetwarzanie obrazu Wyświetlanie bieżącego profilu members.php Wyświetlanie profilu użytkownika Dodawanie i usuwanie znajomych Wyświetlanie listy wszystkich użytkowników friends.php messages.php logout.php styles.css javascript.js Dodatek A Odpowiedzi na pytania kontrolne Odpowiedzi na pytania z rozdziału 1. Odpowiedzi na pytania z rozdziału 2. Odpowiedzi na pytania z rozdziału 3. Odpowiedzi na pytania z rozdziału 4. Odpowiedzi na pytania z rozdziału 5. Odpowiedzi na pytania z rozdziału 6. Odpowiedzi na pytania z rozdziału 7. Odpowiedzi na pytania z rozdziału 8. Odpowiedzi na pytania z rozdziału 9. Odpowiedzi na pytania z rozdziału 10. Odpowiedzi na pytania z rozdziału 11. Odpowiedzi na pytania z rozdziału 12. Odpowiedzi na pytania z rozdziału 13. Odpowiedzi na pytania z rozdziału 14. Odpowiedzi na pytania z rozdziału 15. Odpowiedzi na pytania z rozdziału 16. Odpowiedzi na pytania z rozdziału 17. Odpowiedzi na pytania z rozdziału 18. Odpowiedzi na pytania z rozdziału 19. Odpowiedzi na pytania z rozdziału 20. Odpowiedzi na pytania z rozdziału 21. Odpowiedzi na pytania z rozdziału 22. Odpowiedzi na pytania z rozdziału 23. Odpowiedzi na pytania z rozdziału 24. Odpowiedzi na pytania z rozdziału 25. Odpowiedzi na pytania z rozdziału 26. Dodatek B Zasoby internetowe Informacje na temat PHP Informacje na temat MySQL Informacje na temat JavaScriptu Informacje na temat CSS Informacje na temat HTML5 Informacje na temat komunikacji asynchronicznej Inne ciekawe strony WWW Dodatek C Słowa z grupy stopwords w MySQL Dodatek D Funkcje MySQL Funkcje do obsługi łańcuchów znaków Funkcje do obsługi daty Funkcje do obsługi czasu Dodatek E Selektory, obiekty i metody jQuery Selektory jQuery Obiekty jQuery Metody jQuery O autorze Kolofon