"PHP 7, MySQL 8 i Maria DB. Praktyczny podręcznik"
Identyfikator Librowy: 216803
Spis treści
O autorach 18
Podziękowania 19
Wprowadzenie 20
Co nowego w tym wydaniu? 20
Metoda nauczania 20
Dla kogo jest ta książka? 21
Geneza książki 22
Mit „uczymy się szybko i łatwo” 22
Konwencje stosowane w tej książce 23
Potrzebne oprogramowanie 23
Interakcja a dynamika 24
Kod źródłowy 24
Rozdział 1. Tworzenie i testowanie bazy danych i tabeli 26
Definiowanie pojęć administratora, dewelopera i użytkownika 26
Definiowanie witryn interaktywnych 27
Używanie MariaDB lub MySQL tylko do interaktywnych tabel bazy danych 28
Krótkie spojrzenie do wnętrza komunikacji serwera sieciowego 29
Metody tworzenia i utrzymywania baz danych 29
Bezpłatna platforma programistyczna do testowania 31
Używanie XAMPP na swoim komputerze 31
Czy będzie można przesłać bazę danych z XAMPP lub EasyPHP na zdalny host? 32
Pobranie i instalacja XAMPP 32
Uruchomienie XAMPP 35
Zamykanie XAMPP 36
Gdzie są MariaDB i MySQL 8? 37
Pobranie i instalacja EasyPHP 38
Używanie EasyPHP na naszym komputerze 38
Uruchomienie EasyPHP 39
Bezpieczeństwo phpMyAdmin 40
Zamykanie EasyPHP 40
Bezpośredni dostęp do phpMyAdmin 43
Znane fragmenty 45
Planowanie bazy danych – pierwszy krok 46
Tworzenie bazy danych za pomocą phpMyAdmin 47
Tworzenie tabeli za pomocą phpMyAdmin 50
Alternatywa z zastosowaniem SQL 54
Usuwanie baz danych i tabel 57
Podsumowanie 58
Rozdział 2. Tworzenie witryn internetowych, które mają interakcję z użytkownikami 60
Tworzenie folderu do przechowywania stron bazy danych 61
Tworzenie tymczasowego szablonu 61
Wprowadzenie do funkcji PHP include( ) 64
Dołączany plik nagłówka 65
Dołączony plik menu 67
Dołączona kolumna informacyjna 68
Dołączony plik stopki 69
Interaktywna wersja szablonu 70
Jak serwer przetwarza stronę? 70
Połączenie z bazą danych 72
Objaśnienie kodu 73
Strona rejestracji 76
Objaśnienie kodu 79
Objaśnienie kodu 84
Słowo kluczowe PHP – echo 88
Strona z podziękowaniem 89
Wyświetlanie komunikatów o błędach, które zostały zebrane w tablicy 91
Mieszanie hasła 92
Przeglądanie rekordów użytkowników 92
Strona przeglądania użytkowników 93
Objaśnienie kodu 95
Strona zmiany hasła 96
Objaśnienie kodu 99
Objaśnienie kodu 102
Potwierdzenie udanej zmiany hasła 104
Testowanie stron podręcznika 105
Więcej informacji o tablicach 106
Podsumowanie 107
Rozdział 3. Tworzenie funkcji logowania i wylogowania dla członków i administratora 108
Tworzenie bazy danych logindb i tabeli users 109
Dodawanie przycisku logowania w nagłówku strony domowej 111
Usuwanie lub zastępowanie zbędnych przycisków menu w nagłówkach 111
Usuwanie nadmiarowych przycisków z nagłówków rejestracji i nowego hasła 112
Zmieniona strona rejestracji 113
Nowy nagłówek strony nowego hasła 114
Nowy nagłówek menu dla strony członków 116
Dołączamy nagłówek do strony z podziękowaniem 117
Strona rejestracji i niepożądane znaki 118
Objaśnienie kodu 121
Rejestrowanie członków 122
Rozróżnianie dwóch rodzajów członkostwa 123
Tworzenie poziomów użytkowników, aby ograniczyć dostęp do prywatnych stron 124
Logowanie 127
Nagłówek strony logowania 127
Strona logowania 128
Objaśnienie kodu 131
Objaśnienie kodu 133
Sesje 136
Strona tylko dla członków 139
Objaśnienie kodu 141
Planowanie roli administratora 142
Nowy nagłówek strony administratora 143
Strona administratora 144
Objaśnienie kodu 146
Strona wylogowania 146
Objaśnienie kodu 147
Modyfikacja i usuwanie pojedynczych rekordów 148
Testowanie funkcji Login/Logout 148
Podsumowanie 149
Rozdział 4. Tworzenie interfejsu administratora 150
Baza danych administratora 150
Tabela users 152
Zmiana strony wyświetlania użytkowników (View Users) w celu dołączenia edycji i usuwania 154
Objaśnienie kodu 159
Wyświetlanie rekordów stronami (stronicowanie) 162
Objaśnienie kodu 166
Planowanie kryteriów wyszukiwania 170
Tymczasowa strona wyszukiwania do wyświetlania wybranych członków 171
Objaśnienie kodu 174
Formularz wyszukiwania 175
Objaśnienie kodu 178
Końcowy program obsługi formularza do otrzymywania danych do wyszukiwania 179
Objaśnienie kodu 182
Edytowanie rekordów 183
Objaśnienie kodu 187
Usuwanie rekordów 190
Objaśnienie kodu 194
Podsumowanie 196
Rozdział 5. Rozwinięcie i wzbogacenie naszej witryny 198
Tworzenie nowej bazy danych z tabelą o 15 kolumnach i tabelą z cenami 198
Tworzenie pliku do łączenia się z bazą danych 199
Tworzenie tabel 200
Korzystanie z ENUM 202
Znaczenie dokumentacji 202
Rozszerzenie formularza rejestracji i dodanie rozwijanego menu 204
Ceny i informacje o opłatach podajemy zawsze na początku 205
Objaśnienie kodu 211
Objaśnienie kodu 217
Dodawanie obrazów PayPal i karty debetowej/kredytowej 218
Dołączanie PayPal do strony z podziękowaniem 219
Objaśnienie kodu 223
Rejestrowanie członków 224
Małe uzupełnienie strony logowania 226
Uzupełnianie nagłówka administratora 226
Dodawanie Class i Paid do tabeli admin_view_users 228
Objaśnienie kodu 232
Wyszukiwanie i edycja rekordów 233
Modyfikowanie formularza w celu edycji rekordów 237
Objaśnienie kodu 237
Podsumowanie 243
Rozdział 6. Dodajemy ostatnie poprawki: bezpieczeństwo i weryfikacja 244
Tworzenie bazy danych 245
Tworzenie pliku do łączenia z bazą danych 245
Tworzenie tabeli users przez importowanie pliku zrzutu SQL 246
Ręczne rejestrowanie niektórych użytkowników 248
Dodawanie kolumny tytułu do tabeli users 250
Czyszczenie folderów i systemów plików 252
Tworzenie tabeli Prices przez import pliku SQL Dump 252
Dodawanie warstwy bezpieczeństwa 253
Stopnie bezpieczeństwa 253
Zwiększona warstwa ochronna 255
Funkcja filter_var() 256
Weryfikacja 256
Weryfikacja i oczyszczanie 256
Oczyszczanie 258
Weryfikacja numerów telefonicznych 259
Bezpieczniejsza strona rejestracji 260
Objaśnienie kodu 269
Objaśnienie kodu 277
Szukanie tytułu, adresu lub numeru telefonu 279
Objaśnienie kodu 282
Oglądanie pobranego tytułu, adresu i numeru telefonu 282
Objaśnienie kodu 285
Edycja tytułów, adresów i telefonów 286
Objaśnienie kodu 295
Podsumowanie 295
Rozdział 7. Migracja na host i tworzenie kopii zapasowej bazy danych witryny 296
Dokonywanie zmian w ostatniej chwili 296
Tworzenie nowej bazy danych 297
Szczegóły pobranego pliku do łączenia z bazą danych 298
Umożliwienie zmiany swoich danych przez członków 299
Objaśnienie kodu 312
Bezpieczny formularz kontaktowy 313
Jak wygląda odpowiedź zwrotna? 314
Formularz kontaktowy 315
Objaśnienie kodu 321
Objaśnienie kodu 326
Strona z podziękowaniem i komunikaty o błędach 328
Uniwersalny nagłówek 331
Objaśnienie kodu 334
Rejestrowanie wyjątków i błędów 335
Migracja bazy danych i tabel na zdalny host 338
Tworzenie i eksportowanie pliku SQL 338
Zagadkowy komunikat o błędzie 338
Tworzyć plik zrzutu tabeli czy tabelę 339
Jak wygląda plik zrzutu SQL? 340
Badanie serwera zdalnego hosta 343
Korzystanie z interfejsów GUI na serwerze zdalnego hosta 345
Bezpieczne przesyłanie pliku mysqli_connection.php 346
Łączenie z bazą danych na zdalnym hoście 346
Przesyłanie stron interaktywnych na host 348
Tworzenie kopii zapasowej bazy danych 349
Podsumowanie 350
Rozdział 8. Tworzenie katalogu produktów 352
Przygotowanie bazy danych i planu administracyjnego 353
Tworzenie bazy danych 354
Tworzenie pliku w celu połączenia z bazą danych 355
Bezpieczeństwo 356
Tworzenie strony domowej z funkcją wyszukiwania 357
Kod strony domowej 359
Nagłówek dla większości stron 359
Wyświetlanie katalogu 362
Objaśnienie kodu 369
Nagłówek strony wyników wyszukiwania 370
Tworzenie strony ze szczegółowymi informacjami o domu 371
Objaśnienie kodu 375
Tworzenie strony administratora/dodawania domów 376
Nagłówek strony administracyjnej 387
Widok administratora z całą ofertą domów do sprzedaży 388
Administracyjne strony wyszukiwania 394
Wynik wyszukiwania 396
Strona do kontaktu 398
Podsumowanie 404
Rozdział 9. Łączenie wielu tabel i inne ulepszenia 406
Wprowadzenie do wielu tabel 406
Normalizacja 407
Tworzenie bazy danych i tabel 408
Spojrzenie na plik połączenia 409
Tworzenie drugiej tabeli 410
Klucze obce 411
Przygotowywanie tabel do złączenia 411
Wypełnianie dwóch tabel 412
Łączenie danych z dwóch tabel 414
Tworzenie trzeciej tabeli 416
Strona domowa 419
Tworzenie stron do wyświetlania danych ze złączonych tabel 419
Główne menu dla stron 422
Nagłówek dla wszystkich stron 423
Strona do przeglądania tabeli birds 424
Objaśnienie kodu 427
Strona przeglądania lokalizacji i siedlisk rezerwatów 428
Wyświetlanie danych ze złączonych tabel 431
Tworzenie strony do wyświetlania trzech złączonych tabel 435
Objaśnienie kodu 439
Płatności czekiem 440
Wybór sposobu płatności 441
Płatność czekiem 446
Objaśnienie kodu 449
Drukowanie formularzy online 450
Podsumowanie 451
Rozdział 10. Tworzenie tablicy ogłoszeń 452
Plan 453
Tworzenie bazy danych 453
Tworzenie tabel 454
Tworzenie drugiej tabeli 455
Tworzenie strony domowej tablicy ogłoszeń 456
Tworzenie formularza rejestracji 461
Strona z podziękowaniem 470
Wypełnianie tabeli członków 472
Strona logowania 473
Objaśnienie kodu 476
Wylogowywanie 478
Tworzenie strony powitalnej do wyboru cytatów 479
Formularz do publikowania cytatów 481
Objaśnienie kodu 484
Przetwarzanie publikowania 486
Objaśnienie kodu 487
Publikowanie cytatów 488
Strona z zabawnymi cytatami 490
Objaśnienie kodu 492
Nagłówek strony zabawnych cytatów 493
Strona mądrych cytatów 494
Nagłówek dla strony mądrych cytatów 497
Objaśnienie kodu 497
Dodawanie narzędzi wyszukiwania 499
Nagłówek ViewPosts.php 502
Objaśnienie kodu 502
Formularz wyszukiwania pełnotekstowego 504
Wyszukiwanie określonych słów lub fraz 504
Wyświetlanie wyników wyszukiwania 506
Objaśnienie kodu 509
Nagłówek strony quotes_found 510
Ulepszanie tablicy ogłoszeń 511
Przekształcanie tablicy ogłoszeń na forum 512
Podsumowanie 513
Rozdział 11. E-commerce: krótkie wprowadzenie 514
Ostrzeżenia dotyczące bezpieczeństwa 516
Plan 516
Tworzenie bazy danych i tabel koszyka PayPal 517
Tworzenie witryny koszyka PayPal 517
Przeglądanie pliku połączenia 518
Wypełnianie tabel koszyka PayPal 518
Strona domowa koszyka PayPal 521
Używanie strony domowej koszyka PayPal do wyszukiwania obrazów 524
Integrowanie z przyciskami koszyka PayPal 527
Objaśnienie kodu 527
Objaśnienie kodu 534
Tworzenie niestandardowego koszyka 535
Strona domowa niestandardowego koszyka 536
Tworzenie bazy danych i tabel niestandardowego koszyka 537
Analiza niestandardowego koszyka 538
Strona logowania niestandardowego koszyka 541
Objaśnienie kodu 545
Odzyskiwanie zapomnianego hasła 545
Objaśnienie kodu 549
Strona wyszukiwania w niestandardowym koszyku 550
Dodawanie obrazów do tabeli dla niestandardowego koszyka 551
Objaśnienie kodu 554
Objaśnienie kodu 558
Objaśnienie kodu 562
Strona finalizacji zakupów 563
Dodatkowe narzędzia administracyjne 564
Podsumowanie 564
Rozdział 12. Krótkie omówienie Oracle MySQL 8 566
Zalety aktualizacji 566
Instalowanie MySQL 8 Community Server 568
Analiza funkcji MySQL Workbench 575
Łączenie PHP 7 z MySQL 8 Community Server 581
Migracja na MySQL 8 Community Server 584
Używanie naszych plików PHP z MySQL 8 Community Server 588
Podsumowanie 591
Dodatek A. Rozwiązywanie problemów 592
Kaprysy przeglądarki 593
Tabele się nie wyświetlają 593
Dołączonych elementów nie ma na ekranie 594
Zmiana stylu nie daje efektu 594
Nie można zweryfikować strony 595
Odmowa dostępu 595
Rozwijane menu PayPal nie działa 595
Call to an Undefined Function (Odwołanie do niezdefiniowanej funkcji) 596
Cannot Redeclare Function (Nie można ponownie zadeklarować funkcji) 596
Poziomy błędów PHP 596
Blank Screen (Pusty ekran) 597
Empty Variable Value (Pusta wartość zmiennej) 597
Headers Already Sent (Nagłówki już wysłane) 597
Undefined Index or Undefined Variable (Niezdefiniowany indeks lub niezdefiniowana zmienna) 597
Parse Error and Unexpected Characters (Błąd analizy składniowej i nieoczekiwane znaki) 598
Unexpected End of File in Line xxx (Nieoczekiwany koniec pliku w wierszu xxx) 598
Unexpected T_ELSE (Nieoczekiwany T_ELSE) 599
Unexpected T_STRING (Nieoczekiwany T_STRING) 599
Failed to Open Stream (Nieudane otwarcie strumienia) 600
Syntax Errors (Błędy składni) 600
Wrong Equal Sign (Nieodpowiedni znak równości) 600
Display Is Not What Was Expected (Ekran inny niż spodziewany) 601
Reference to a Primary Key Could Not Be Created (Nie można utworzyć odwołania do klucza głównego) 601
Warning: Division by Zero (Ostrzeżenie: dzielenie przez zero) 601
Element <style> Not Allowed as Child of Element <div> (Element <style> niedozwolony jako podrzędny dla elementu <div>) 601
Błędy logiczne 602
Problem with Prepared Statement (Problem z gotową instrukcją) 602
Internet to nasz przyjaciel 603
Podsumowanie 603
Dodatek B. Zasoby 604
E-maile w PHP 604
Krótki przewodnik PHP 604
Filtry weryfikacji i oczyszczania 606
Objaśnienie kodu 606
Funkcje 607
if, else oraz elseif 607
include( ) oraz require( ) 607
Komentarze 609
Objaśnienie kodu 609
Konkatenacja 610
Liczby 610
Operator trójargumentowy 610
Pętla while 611
Pętle 611
Pętla for 612
Pętla foreach 612
Pętla do while 613
Przygotowane instrukcje 614
Sesje 615
Logowanie za pomocą sesji 616
Wylogowywanie 617
Stałe 618
Tablice 618
Tablice asocjacyjne 619
Używanie Try/Catch 621
Zmienne 623
Zmienne: predefiniowane 623
Szablon Bootstrap 624
Zmienne: łańcuchy 624
Przegląd działania MySQL i phpMyAdmin 625
date_time 626
INSERT 627
Mechanizmy pamięci i phpMyAdmin 627
SELECT 627
UPDATE 627
Co dalej? 628
Zasoby 628
Zmiana mechanizmu przechowywania dla istniejącej, wypełnionej tabeli 628
Fora PayPal 629
Podręcznik online 629
Zasoby do tworzenia forów 629
Zasoby internetowe związane z PHP i MySQL 629
Zasoby z dziedziny e-commerce 629
Koszyki innych firm 630
Podsumowanie 630
Indeks 632