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.
Znajdź podobne książki
Ostatnio czytane w tej kategorii
Darmowy fragment publikacji:
Tytuł oryginału: PHP and MySQL Web Development (5th Edition)
Tłumaczenie: Piotr Rajca
ISBN: 978-83-283-3256-0
Authorized translation from the English language edition, entitled: PHP AND MYSQL WEB
DEVELOPMENT, Fifth Edition, ISBN 0321833899; by Luke Welling; and by Laura Thomson;
published by Pearson Education, Inc, publishing as Addison Wesley.
Copyright © 2017 by Pearson Education, Inc.
All rights reserved. No part of this book may be reproduced or transmitted in any form
or by any means, electronic or mechanical, including photocopying, recording or by any
information storage retrieval system, without permission from Pearson Education Inc.
Polish language edition published by HELION S.A. Copyright © 2017.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi
bądź towarowymi ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje
były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za
związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo
HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe
z wykorzystania informacji zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/phmsv5.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/phmsv5
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
Spis treści
Część I
Rozdział 1.
O autorach ............................................................................................ 19
O współautorach .................................................................................. 19
Wprowadzenie ...................................................................................... 21
Stosowanie PHP ..................................................................31
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
Poleć książkęKup książkę6
PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty
Rozdział 2.
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
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
Poleć książkęKup książkęRozdział 3.
Spis treści
7
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
Poleć książkęKup książkę8
PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty
Rozdział 5.
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
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
Poleć książkęKup książkęSpis treści
9
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
Rozdział 8.
Stosowanie MySQL ...........................................................213
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
Poleć książkęKup książkę10
PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty
Rozdział 9.
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
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
Poleć książkęKup książkęSpis treści
11
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
Poleć książkęKup książkę12
PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty
Część III E-commerce i bezpieczeństwo ......................................327
Rozdział 14. Zagrożenia bezpieczeństwa aplikacji internetowych ..................... 329
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
Poleć książkęKup książkęSpis treści
13
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
Interakcja z systemem plików i serwerem ....................................... 379
Rozdział 17.
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
Poleć książkęKup książkę14
PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty
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
Poleć książkęKup książkęRozdział 23.
Rozdział 24.
Spis treści
15
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
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
Inne przydatne własności .................................................................. 499
Przetwarzanie łańcuchów znaków — funkcja eval() .........................................................499
Zakończe
Pobierz darmowy fragment (pdf)
Gdzie kupić całą publikację:
Opinie na temat publikacji:
Inne popularne pozycje z tej kategorii:
Czytaj również:
Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką :