|
Head First PHP & MySQL. Edycja polska
Autorzy: Lynn Beighley, Michael Morrison Data wydania: 03/2010 Stron: 800 Szczegóły:
* Tytuł oryginału: Head First PHP & MySQL * Tłumaczenie: Tomasz Walczak * ISBN: 978-83-[zasłonięte]-2113-2 * Format: 200x230 * Oprawa: miękka * Numer z katalogu: 5110
Wydawnictwo Helion
ftp://ftp.helion.pl/przyklady/hfphms.zip
* Odkryj tajniki tworzenia dynamicznych witryn opartych na bazach danych * Uniknij kompromitujących wpadek przy korzystaniu z formularzy * Wczytaj wszystkie kluczowe elementy składni prosto do swego mózgu * Zainstaluj kod PHP i MySQL * Sprawdź swą wiedzę na temat skryptów, wykonując dziesiątki ćwiczeń
PHP wraz z MySQL stanowią najpopularniejszy zespół, służący do szybkiego tworzenia aplikacji internetowych o różnym stopniu złożoności. Dzięki dużym możliwościom, wydajności oraz optymalnemu podejściu do wielu zagadnień tworzą prawdopodobnie najpopularniejszą platformę do wprowadzania atrakcyjnych rozwiązań. Na temat wykorzystania możliwości PHP i MySQL napisano już wiele książek, jednak ta jest wyjątkowa — należy do popularnej i przyjaznej Czytelnikowi serii Head First!
"Head First PHP & MySQL. Edycja polska" nie jest kolejnym trudnym i nudnym podręcznikiem do nauki PHP i MySQL. Autorzy wykorzystują tu innowacyjne oraz niezwykle skuteczne techniki przyswajania wiedzy szybko i bezboleśnie. Z pomocą licznych ilustracji i ciekawych skojarzeń nauczą Cię, jak stosować PHP wraz z MySQL w Twojej codziennej pracy. Dzięki temu bez najmniejszych problemów przygotujesz formularz, przetworzysz dane wprowadzone przez użytkownika, a następnie zapiszesz je w bazie MySQL. Ponadto zostaniesz wtajemniczony w szczegóły języka PHP oraz SQL. Zapoznasz się z zagrożeniami oraz dowiesz się, jak chronić swoją aplikację przed atakami z zewnątrz. To wszystko sprawi, że pewnym krokiem wejdziesz w świat profesjonalnych aplikacji internetowych!
* Tworzenie i obsługa formularzy * Zastosowanie zmiennej $_POST * Wysyłanie wiadomości e-mail z poziomu PHP * Wykonywanie zapytań SQL * Pobieranie i wykorzystywanie danych z MySQL w PHP * Elementarz języka PHP * Przesyłanie plików * Bezpieczeństwo danych w PHP * Zastosowanie sesji oraz ciasteczek * Sortowanie wyników * Obsługa kanałów RSS * Zamieszczanie materiałów multimedialnych * Zastosowanie formatu XML * Instalacja i konfiguracja serwera Apache
Wykorzystaj nowoczesne metody nauki i opanuj możliwości duetu PHP–MySQL!
Wprowadzenie
* Dla kogo przeznaczona jest ta książka? (28) * Kto prawdopodobnie powinien zrezygnować z tej książki? (28) * Wiemy, co sobie myślisz (29) * Wiemy, co sobie myśli Twój mózg (29) * Metapoznanie: myślenie o myśleniu (31) * Oto, co MY zrobiliśmy (32) * A oto, co TY możesz zrobić, aby zmusić mózg do posłuszeństwa (33) * Przeczytaj koniecznie (34) * Zespół recenzentów technicznych (36) * Podziękowania (37)
1. Ożywianie statycznych stron
* Strony HTML są statyczne i nudne (40) * PHP ożywia strony WWW (41) * Formularz pomoże Markowi poznać całą historię (43) * Formularze składają się z kodu HTML (44) * Formularz HTML sprawia problemy (46) * HTML działa po stronie KLIENTA (48) * PHP działa po stronie SERWERA (49) * Skrypty PHP działają na serwerze (50) * Dostęp do danych z formularza w kodzie PHP (54) * Skrypty PHP muszą działać na serwerze! (56) * Przenoszenie skryptów PHP na serwer (57) * Serwer przekształca kod PHP na HTML (60) * Analiza skryptu PHP Marka (62) * Kilka reguł pisania kodu związanych z językiem PHP (63) * Ustalanie idealnych nazw dla zmiennych (64) * Zmienne służą do przechowywania danych w skryptach (69) * $_POST to specjalna zmienna na dane z formularza (71) * Zmienna $_POST przesyła dane z formularza do skryptu (72) * Tworzenie treści listu w kodzie PHP (82) * Nawet zwykły tekst można (trochę) sformatować (84) * Znaki nowego wiersza trzeba umieścić w cudzysłowach (85) * Zbuduj e-mail do Marka (86) * Zmienne przechowują fragmenty e-maila (87) * Wysyłanie e-maili przy użyciu PHP (88) * Marek zaczyna otrzymywać e-maile (91) * Marek zaczyna gubić e-maile (92)
2. Łączenie się z bazą MySQL
* Formularz PHP Marka działa dobrze - aż za dobrze... (98) * MySQL doskonale nadaje się do przechowywania danych (99) * Marek potrzebuje bazy danych MySQL (100) * Utwórz bazę danych i tabelę MySQL (102) * Instrukcja INSERT w akcji (105) * Użyj instrukcji SELECT do pobrania danych z tabeli (108) * Użyj PHP do obsługi żmudnych instrukcji SQL (111) * PHP umożliwia przepływ danych z formularza Marka (112) * Połącz się z bazą danych w skrypcie PHP (114) * Wstawianie danych za pomocą skryptu PHP (115) * Użyj funkcji PHP do komunikacji z bazą danych (116) * Łączenie się z bazą za pomocą mysqli_connect() (118) * Budowanie zapytań INSERT w kodzie PHP (123) * Kierowanie zapytań do bazy MySQL w skryptach PHP (124) * Zamykanie połączenia za pomocą funkcji mysqli_close() (125) * Zmienna $_POST udostępnia dane z formularza (129) * Marek potrzebuje pomocy przy filtrowaniu danych (134) * Marek jest na dobrej drodze do znalezienia Kła (136)
3. Tworzenie i zapełnianie bazy danych
* Sklep poświęcony Elvisowi otwiera podwoje (142) * Edward potrzebuje aplikacji (143) * Wizualizacja projektu aplikacji Edwarda (144) * Wszystko zaczyna się od tabeli (147) * Nawiąż kontakt z serwerem MySQL (148) * Tworzenie bazy danych na adresy Edwarda (149) * Tworzenie tabeli w bazie danych (150) * Musimy zdefiniować dane (151) * Poznaj wybrane typy danych języka MySQL (152) * Tworzenie tabel przy użyciu zapytań (155) * Wskaż bazę danych przed jej użyciem (158) * Instrukcja DESCRIBE opisuje strukturę tabeli (161) * Edward jest gotowy do zapisywania danych (163) * Tworzenie skryptu do dodawania adresów (164) * Druga strona aplikacji Edwarda (171) * Mechanizmy skryptu do wysyłania wiadomości (172) * Zacznijmy od początku - pobieranie danych (173) * Funkcja mysqli_fetch_array() pobiera wyniki zapytania (174) * Pętle WHILE (177) * Przechodzenie po danych za pomocą pętli while (178) * Otrzymałeś wiadomość od Edwarda! (183) * Czasem użytkownicy chcą zrezygnować (184) * Usuwanie danych za pomocą instrukcji DELETE (185) * Użyj klauzuli WHERE, aby usunąć konkretne dane (186) * Minimalizowanie ryzyka przypadkowych usunięć (187) * ZrobZeMnieElvisa.com to aplikacja internetowa (192)
4. Realistyczne i praktyczne aplikacje
* Niektórzy klienci Edwarda są zirytowani (196) * Zabezpiecz Edwarda przed nim samym (199) * Sprawdzaj poprawność danych z formularza (200) * Walidacja w skrypcie sendemail.php (201) * Kod podejmuje decyzje dzięki instrukcji IF (202) * Sprawdzanie warunku (203) * Instrukcja IF sprawdza nie tylko równość (204) * Walidacja w skrypcie sendemail.php (207) * Funkcje PHP do sprawdzania zawartości zmiennych (208) * Sprawdzanie wielu warunków przy użyciu I oraz LUB (215) * Użytkownicy formularza potrzebują informacji zwrotnych (219) * Wygodne otwieranie i zamykanie bloków PHP (229) * Użyj flagi, aby uniknąć powielania kodu (230) * Napisz kod formularza jeden raz (231) * Formularz autoreferencyjny (235) * Wskaż skrypt w atrybucie action (236) * Sprawdzanie, czy użytkownik przesłał formularz (238) * Niektórzy użytkownicy nadal są niezadowoleni (242) * Wiersze tabeli powinny mieć niepowtarzalne identyfikatory (244) * Klucze główne wymuszają niepowtarzalność (246) * Od pól wyboru do identyfikatorów klientów (251) * Przechodzenie po elementach tablicy za pomocą foreach (252)
5. Używanie danych przechowywanych w plikach
* Wirtualni gitarzyści lubią współzawodnictwo (260) * Rysunki to dowód prawdziwości wyniku (261) * Aplikacja musi przechowywać rysunki (262) * Planowanie przesyłania plików w aplikacji Gitarowe wojny (267) * Trzeba zmodyfikować bazę rekordów za pomocą instrukcji ALTER (268) * Jak pobrać rysunek od użytkownika? (272) * Wstaw rysunki (nazwy plików) do bazy danych (274) * Określanie nazwy przesłanego pliku (275) * Gdzie znajdują się przesłane pliki? (280) * Utwórz miejsce na przesłane pliki graficzne (284) * Współużytkowane dane trzeba współdzielić (290) * Dołączanie danych współużytkowanych przez skrypty (291) * Traktuj instrukcję require_once jak polecenie "wstaw" (292) * W przypadku rekordowych wyników najważniejszy jest porządek (294) * Wyróżnianie najlepszego gitarowego wojownika (297) * Sformatuj najlepszy wynik za pomocą kodu HTML i CSS (298) * Przepuszczamy tylko małe rysunki (303) * Walidacja pliku zwiększa niezawodność aplikacji (304) * Projektowanie strony administracyjnej (308) * Generowanie odsyłaczy do usuwania wyników na stronie administracyjnej (311) * Skrypty mogą komunikować się ze sobą (312) * O żądaniach GET i POST (314) * GET, POST i usuwanie wyników (316) * Znajdowanie usuwanych wyników (319) * Kontrolowanie liczby usuwanych wierszy za pomocą klauzuli LIMIT (320)
6. Zabezpieczanie aplikacji
* Dzień, w którym umarła muzyka (330) * Gdzie się podziały wyniki? (331) * Zabezpieczenia przed dzikimi hordami (333) * Zabezpieczanie strony administracyjnej Gitarowych wojen (334) * Uwierzytelnianie HTTP wymaga nagłówków (336) * Kontrolowanie nagłówków za pomocą PHP (339) * Uwierzytelnianie za pomocą nagłówków (340) * Tworzenie skryptu do obsługi uwierzytelniania (348) * Gitarowe wojny. Część II: Atak klonów rekordów (352) * Odejmowanie przez dodawanie (353) * Bezpieczeństwo wymaga interwencji człowieka (354) * Planowanie obsługi moderowania w Gitarowych wojnach (355) * Użyj instrukcji ALTER, aby zrobić miejsce na zatwierdzanie wyników (356) * Niezatwierdzone wyniki nie są potrzebne (361) * Oszustwo za milion punktów (364) * Czy jest tu moderator? (365) * Jak Ela to zrobiła? (367) * Oszukiwanie bazy MySQL za pomocą komentarzy (368) * Do formularza do dodawania wyników wstrzyknięto kod SQL (369) * Chroń dane przed wstrzyknięciem kodu SQL (370) * Bezpieczniejsza instrukcja INSERT (z parametrami) (371) * Walidacji formularza nigdy za wiele (373) * Wstrzymać ogień! (375)
7. Tworzenie spersonalizowanych aplikacji sieciowych
* Podobno przeciwieństwa się przyciągają (380) * Niedopasowanie opiera się na prywatnych danych (381) * Witryna Niedopasowani potrzebuje loginów (382) * Przygotowanie bazy do zapisywania loginów (385) * Tworzenie interfejsu logowania (387) * Szyfrowanie haseł za pomocą funkcji SHA() (388) * Porównywanie haseł (389) * Uwierzytelnianie użytkowników za pomocą HTTP (392) * Logowanie się użytkowników za pomocą uwierzytelniania HTTP (395) * Formularz do rejestracji nowych użytkowników (399) * Co zawierają pliki cookie? (409) * Zastosuj ciasteczka w kodzie PHP (410) * Modyfikowanie przebiegu logowania (413) * Logowanie oparte na plikach cookie (414) * Wylogowanie to efekt usunięcia plików cookie (419) * Sesje nie są zależne od klienta (423) * Śledzenie danych sesji (425) * Usprawnij aplikację Niedopasowani za pomocą sesji (426) * Wylogowywanie przy użyciu sesji (427) * Dokończ wprowadzanie sesji (432) * Użytkownicy nie czują się mile witani (438) * Sesje nie żyją długo... (440) * ...ale pliki cookie mogą trwać wiecznie! (441) * Sesje + pliki cookie = większa trwałość logowania (443)
7 1/2. Eliminowanie powtórzeń w kodzie
* Aplikacja Niedopasowani w kawałkach (455) * Przebudowywanie aplikacji Niedopasowani przy użyciu szablonu (456) * Przebudowa aplikacji Niedopasowani z wykorzystaniem szablonów (458) * Zupełnie nowa i dużo lepiej uporządkowana aplikacja Niedopasowani (460)
8. Kontroluj dane - kontroluj swój świat
* Idealnie niedopasowani (462) * Aplikacja Niedopasowani opiera się na danych (463) * Utwórz model bazy danych za pomocą schematu (465) * Łączenie kilku tabel (470) * Klucze zewnętrzne w praktyce (471) * Jeden wiersz pasuje do jednego wiersza (472) * Jeden wiersz łączy się z wieloma (473) * Wiersze w relacji wiele do wielu (474) * Tworzenie kwestionariusza na potrzeby aplikacji Niedopasowani (479) * Zapisywanie odpowiedzi w bazie danych (480) * Możemy sterować formularzem za pomocą danych (484) * Generowanie formularza z kwestionariuszem w aplikacji Niedopasowani (490) * Droga do normalności (496) * W czasie normalizacji myśl w kategoriach atomów (497) * Trzy kroki do znormalizowanej bazy danych (499) * Modyfikowanie bazy aplikacji Niedopasowani (503) * Czy baza aplikacji Niedopasowani jest naprawdę znormalizowana? (504) * Zapytanie w zapytaniu wewnątrz zapytania... (506) * Złączmy tabele (507) * Łączenie za pomocą kropek (508) * To jeszcze nie wszystkie możliwości złączeń wewnętrznych (509) * Pseudonimy tabel i kolumn (511) * Pomoc ze strony złączeń (512) * Pięć kroków do udanego niedopasowania (519) * Porównywanie osób pod kątem niedopasowania (521) * Potrzebujemy pętli FOR (522)
9. Funkcje niestandardowe i do obsługi łańcuchów znaków
* Trudno jest znaleźć dobrą ryzykowną pracę (534) * Wyszukiwanie nie daje możliwości popełnienia błędu (536) * Dzięki słowu kluczowemu LIKE zapytania SQL mogą być elastyczne (537) * Podziel łańcuch znaków na pojedyncze słowa (542) * Funkcja implode() tworzy łańcuch znaków przy użyciu podłańcuchów (545) * Wstępne przetwarzanie szukanego łańcucha znaków (551) * Zastępowanie niepotrzebnych znaków w szukanym tekście (552) * Potrzebujemy poprawnych szukanych łańcuchów (556) * Kopiowanie niepustych elementów do nowej tablicy (557) * Czasem potrzebny jest tylko fragment łańcucha (560) * Pobieranie podłańcuchów z obu stron tekstu (561) * Można posortować wyniki w kilku zapytaniach (564) * Funkcje umożliwiają wielokrotne wykorzystanie kodu (568) * Zbuduj zapytanie za pomocą niestandardowej funkcji (569) * SWITCH obsługuje więcej decyzji niż IF (574) * Sortowanie w funkcji build_query() (577) * Możemy podzielić wyniki na strony (580) * Pobieranie tylko potrzebnych wierszy dzięki klauzuli LIMIT (581) * Zarządzanie odnośnikami związanymi z klauzulą LIMIT (582) * Kontrolowanie danych potrzebnych do obsługi stronicowania (583) * Konfigurowanie zmiennych używanych do stronicowania (584) * Poprawianie zapytania, które pobiera stronicowane wyniki (585) * Generowanie odnośników do nawigacji po stronach (586) * Tworzenie kompletnego skryptu do wyszukiwania ofert (589) * Kompletny skrypt do wyszukiwania ofert - ciąg dalszy (590)
10. Wyrażenia regularne
* Użytkownicy serwisu Ryzykowne prace mogą zamieszczać w nim życiorysy (594) * Określ, jaki format powinny mieć dane (598) * Utwórz wzorzec numerów telefonów (601) * Dopasuj dane do wzorca za pomocą wyrażeń regularnych (602) * Tworzenie wzorców za pomocą metaznaków (604) * Dopracuj wzorce za pomocą klas znaków (611) * Wyszukiwanie wzorców za pomocą funkcji preg_match() (616) * Ustandaryzuj numery telefonów (623) * Usuwanie niepożądanych znaków (624) * Dopasowywanie adresów e-mail może być trudne (628) * Przyrostki domen są wszędzie (630) * Użyj języka PHP do walidacji domeny (631) * Walidacja adresów e-mail - łączenie wszystkich elementów (632)
11. Wizualizowanie danych i inne zagadnienia
* Powrót Gitarowych wojen: narodziny maszyn (638) * Żaden formularz na dane wejściowe nie jest bezpieczny (639) * Musimy oddzielić ludzi od maszyn (640) * Możemy pokonać automatyzację automatyzacją (643) * Generowanie tekstu hasła w teście CAPTCHA (645) * Generowanie rysunku z testem CAPTCHA (646) * Funkcje graficzne biblioteki GD (648) * Wyświetlanie tekstu za pomocą innych czcionek (652) * Generowanie losowych rysunków z testami CAPTCHA (655) * Przywracanie normalności w Gitarowych wojnach (657) * Dodawanie testu CAPTCHA do skryptu do dodawania wyników (659) * Pięć wymiarów niedopasowania (662) * Diagramy niedopasowania (663) * Zapisywanie danych na potrzeby wykresu (664) * Od jednej tablicy do drugiej (668) * Tworzenie tablicy niedopasowanych tematów (670) * Plan tworzenia wykresu (671) * Analizowanie kategorii (672) * Określanie liczby kategorii (673) * Podstawy rysowania wykresów (676) * Rysowanie i wyświetlanie rysunku z wykresem słupkowym (679) * Osobne rysunki z wykresami dla wszystkich (682) * Użytkownicy serwisu Niedopasowani polubili wykresy (685)
12. Rozpowszechnianie danych i usługi sieciowe
* Marek musi poinformować świat o zaginięciu Kła (688) * Przesyłanie danych o porwaniach do użytkowników (689) * RSS pozwala przesyłać zawartość witryny do użytkowników (690) * RSS to w rzeczywistości XML (691) * Z bazy danych do czytnika kanałów RSS (696) * Wizualizowanie kodu RSS (699) * Dynamiczne generowanie kanału RSS (702) * Odnośnik do kanału RSS (706) * Jeden film jest wart miliona słów (708) * Pobieranie materiałów od innych (710) * Rozpowszechnianie filmów z YouTube (711) * Przesyłanie żądania danych o filmach do serwisu YouTube (712) * Marek jest gotów do utworzenia żądania REST (716) * YouTube komunikuje się w języku XML (720) * Analiza kodu XML odpowiedzi z serwisu YouTube (724) * Wizualizowanie danych XML z opisem filmów (725) * Dostęp do danych XML za pomocą obiektów (726) * Od elementów XML do obiektów PHP (727) * Pobieranie danych XML za pomocą obiektów (728) * Nie zapominaj o przestrzeniach nazw! (729) * Obserwatorzy zauważyli Kła (731) * Rozmieść wyświetlane filmy (732) * Formatowanie danych o filmach w celu ich wyświetlenia (733)
A Dziesięć najważniejszych tematów (których nie poruszyliśmy)
* Numer 1. Dopasowywanie kodu do języka PHP 4 i funkcji mysql (744) * Numer 2. Uprawnienia użytkowników w MySQL (746) * Numer 3. Zgłaszanie błędów w MySQL (748) * Numer 4. Obsługa wyjątków w kodzie PHP (749) * Numer 5. Obiektowy język PHP (751) * Numer 6. Zabezpieczanie aplikacji PHP (753) * Numer 7. Zabezpieczanie aplikacji przed atakami XSS (755) * Numer 8. Pierwszeństwo operatorów (757) * Numer 9. Czym różni się język PHP 5 od PHP 6? (758) * Numer 10. Wykorzystanie kodu PHP innych osób (760)
B Konfigurowanie środowiska programistycznego
* Utwórz środowisko do programowania w języku PHP (762) * Sprawdź dostępne komponenty (762) * Czy masz serwer WWW? (763) * Czy masz PHP? W której wersji? (763) * Czy masz zainstalowany serwer MySQL? Którą wersję? (764) * Zacznij od serwera WWW (765) * Instalowanie serwera Apache - zakończenie (766) * Instalowanie PHP (766) * Etapy instalowania PHP (767) * Etapy instalowania PHP - zakończenie (768) * Instalowanie MySQL (768) * Etapy instalowania serwera MySQL w systemie Windows (769) * Włączanie PHP w systemie Mac OS X (772) * Etapy instalowania MySQL w systemie Mac OS X (772) * Przenoszenie kodu ze środowiska produkcyjnego do publicznie dostępnej witryny (774) * Zrób zrzut danych (i tabel) (775) * Przygotowania do użycia zrzutu danych (775) * Przenoszenie zrzuconych danych na serwer publiczny (776) * Łączenie się z serwerem publicznym (777)
C Rozszerzanie PHP
* Rozszerzanie języka PHP (780) * A w komputerach Mac... (783)
Skorowidz (785) |
|
|
|
|
|