"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