Christian Wenz, Tobias Hauser
PHP 7 und MySQL
Das umfassende Handbuch. Aktuell zu PHP 7.3.. Grundlagen, Anwendung, Praxiswissen - aktuell zu PHP 7.3. Aktuelle Webtechnologien, Administration und Sicherheit. Inkl. SQLite, MS SQL Server, Oracle, Postg
Christian Wenz, Tobias Hauser
PHP 7 und MySQL
Das umfassende Handbuch. Aktuell zu PHP 7.3.. Grundlagen, Anwendung, Praxiswissen - aktuell zu PHP 7.3. Aktuelle Webtechnologien, Administration und Sicherheit. Inkl. SQLite, MS SQL Server, Oracle, Postg
- Gebundenes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
§Das Buch richtet sich an ambitionierte Einsteiger und fortgeschrittene Entwickler, die umfangreiches Grundwissen in der Datenbankentwicklung und Programmierung mit PHP erhalten möchten. Die Autoren bieten Ihnen eine praxisorientierte Einführung in Techniken, Arbeitsweisen und Werkzeuge für Ihre datenbankgestützte Webseite mit PHP und MySQL.§§Aus dem Inhalt:en, zum Stöbern.«
Andere Kunden interessierten sich auch für
§Das Buch richtet sich an ambitionierte Einsteiger und fortgeschrittene Entwickler, die umfangreiches Grundwissen in der Datenbankentwicklung und Programmierung mit PHP erhalten möchten. Die Autoren bieten Ihnen eine praxisorientierte Einführung in Techniken, Arbeitsweisen und Werkzeuge für Ihre datenbankgestützte Webseite mit PHP und MySQL.§§Aus dem Inhalt:en, zum Stöbern.«
Produktdetails
- Produktdetails
- Rheinwerk Computing
- Verlag: Rheinwerk Verlag
- Artikelnr. des Verlages: 459/06395
- 3., überarb. Aufl.
- Seitenzahl: 1037
- Erscheinungstermin: 26. März 2019
- Deutsch
- Abmessung: 244mm x 177mm x 63mm
- Gewicht: 2021g
- ISBN-13: 9783836263955
- ISBN-10: 3836263955
- Artikelnr.: 55038434
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
- Rheinwerk Computing
- Verlag: Rheinwerk Verlag
- Artikelnr. des Verlages: 459/06395
- 3., überarb. Aufl.
- Seitenzahl: 1037
- Erscheinungstermin: 26. März 2019
- Deutsch
- Abmessung: 244mm x 177mm x 63mm
- Gewicht: 2021g
- ISBN-13: 9783836263955
- ISBN-10: 3836263955
- Artikelnr.: 55038434
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
Hauser, Tobias
Als Buchautor schreibt Tobias Hauser seit vielen Jahren zu allen wichtigen Webthemen. Er veröffentlicht regelmäßig in Fachzeitschriften, spricht auf Entwicklerkonferenzen im In- und Ausland und ist Mitglied der Typo3 Certification Group. Als Teilhaber der Agentur Arrabiata Solutions GmbH realisiert er Web- und Intranetprojekte, führt Usability-Audits durch und realisiert E-Learning-Plattformen.
Wenz, Christian
Christian Wenz ist Autor, Trainer und Berater für Web-Technologien. Er hat bereits zahlreiche Bücher zu Web-Themen veröffentlicht, ist regelmäßig als Autor für diverse Fachmagazine tätig und unterhält einen Blog. Als Teilhaber der Web-Agentur Arrabiata Solutions GmbH realisiert er Web- und Intranetprojekte, führt Sicherheitsprüfungen durch und entwickelt Ajax-Anwendungen. Christian Wenz ist Webentwickler der ersten Stunde und in allen Webthemen zu Hause.
Als Buchautor schreibt Tobias Hauser seit vielen Jahren zu allen wichtigen Webthemen. Er veröffentlicht regelmäßig in Fachzeitschriften, spricht auf Entwicklerkonferenzen im In- und Ausland und ist Mitglied der Typo3 Certification Group. Als Teilhaber der Agentur Arrabiata Solutions GmbH realisiert er Web- und Intranetprojekte, führt Usability-Audits durch und realisiert E-Learning-Plattformen.
Wenz, Christian
Christian Wenz ist Autor, Trainer und Berater für Web-Technologien. Er hat bereits zahlreiche Bücher zu Web-Themen veröffentlicht, ist regelmäßig als Autor für diverse Fachmagazine tätig und unterhält einen Blog. Als Teilhaber der Web-Agentur Arrabiata Solutions GmbH realisiert er Web- und Intranetprojekte, führt Sicherheitsprüfungen durch und entwickelt Ajax-Anwendungen. Christian Wenz ist Webentwickler der ersten Stunde und in allen Webthemen zu Hause.
Vorwort ... 23
TEIL I Vorbereitungen ... 29
1. Allgemeines zu PHP ... 31
1.1 ... Geschichte von PHP ... 31
1.2 ... Erfolg und Einsatz ... 32
1.3 ... Das Konzept von PHP ... 34
1.4 ... Die wichtigsten Neuerungen in PHP 7.3 ... 36
1.5 ... Die wichtigsten Neuerungen in PHP 7 ... 37
1.6 ... Die wichtigsten Neuerungen in PHP 5.4, 5.5 und 5.6 ... 38
1.7 ... Versionen und Anlaufstelle ... 40
2. Installation ... 41
2.1 ... PHP installieren ... 41
2.2 ... PEAR installieren ... 73
3. Test und Hilfe ... 79
3.1 ... Häufige Fehler ... 79
3.2 ... Hilfsquellen ... 90
TEIL II Einstieg in PHP ... 91
4. Grundlagen der Sprache ... 93
4.1 ... PHP in HTML ... 93
4.2 ... Ausgabe mit PHP ... 100
4.3 ... Variablen ... 102
4.4 ... Konstanten ... 114
5. Programmieren ... 115
5.1 ... Operatoren ... 115
5.2 ... Fallunterscheidungen ... 137
5.3 ... Schleifen ... 148
5.4 ... Sprünge ... 161
6. Funktionen und Sprachkonstrukte ... 163
6.1 ... Funktionen ... 163
6.2 ... Sprachkonstrukte ... 185
7. Strings ... 195
7.1 ... Verbinden ... 195
7.2 ... Teilen und Zusammenfügen ... 196
7.3 ... Groß- und Kleinschreibung ... 206
7.4 ... Beschneiden ... 209
7.5 ... Suchen und Ersetzen ... 211
7.6 ... Sonderzeichen, HTML etc. ... 218
7.7 ... Vergleichen ... 226
7.8 ... Hilfreiches und Nützliches ... 228
8. Arrays ... 235
8.1 ... Grundlagen ... 235
8.2 ... Arrays und Schleifen ... 240
8.3 ... Untersuchen ... 246
8.4 ... Transformieren ... 247
8.5 ... Suchen und Sortieren ... 256
8.6 ... Superglobale Arrays ... 258
9. Mathematische und Datumsfunktionen ... 265
9.1 ... Mathe ... 265
9.2 ... Datum und Zeit ... 276
10. Reguläre Ausdrücke ... 297
10.1 ... Grundlagen ... 297
10.2 ... Funktionen für reguläre Ausdrücke ... 299
10.3 ... Anwendungsbeispiele ... 305
11. Objektorientiert programmieren ... 309
11.1 ... Geschichte der Objektorientierung in PHP ... 309
11.2 ... Klassen und Objekte -- Grundbegriffe ... 310
11.3 ... Fortgeschrittenes ... 322
11.4 ... Hilfreiches und Nützliches ... 347
12. Namespaces ... 375
12.1 ... Warum Namespaces? ... 376
12.2 ... Mit Namespaces arbeiten ... 377
13. Entwurfsmuster: MVC & Co. ... 385
13.1 ... Zend Framework ... 386
13.2 ... MVC/MPS ... 388
13.3 ... Singleton/Einzelstück ... 393
13.4 ... Factory/Fabrik ... 395
TEIL III Webtechniken ... 397
14. Formulare ... 399
14.1 ... Vorbereitungen ... 399
14.2 ... Formulare mit PHP ... 402
14.3 ... Formularvalidierung ... 421
14.4 ... Vorausfüllung ... 435
14.5 ... Dateiuploads ... 446
14.6 ... Anwendungsbeispiele ... 449
14.7 ... Einstellungen ... 457
15. Cookies ... 459
15.1 ... Vorbereitungen ... 459
15.2 ... Fakten und Hintergründe ... 461
15.3 ... Mit Cookies in PHP arbeiten ... 464
15.4 ... Cookie-Test ... 478
15.5 ... Abschließende Überlegungen ... 480
16. Sessions ... 483
16.1 ... Vorbereitungen ... 483
16.2 ... Fakten, Hintergründe und Konfiguration ... 484
16.3 ... Mit Sessions in PHP arbeiten ... 488
16.4 ... Geschützter Bereich ... 495
16.5 ... Sessions in Datenbanken ... 498
16.6 ... Sicherheitsbedenken ... 506
17. E-Mail ... 509
17.1 ... Vorbereitungen ... 509
17.2 ... Mails mit PHP versenden ... 514
TEIL IV Datenbanken ... 529
18. SQL ... 531
18.1 ... Datenbanken und Tabellen anlegen ... 532
18.2 ... Daten eintragen ... 535
18.3 ... Daten abfragen ... 536
18.4 ... Daten aktualisieren ... 540
18.5 ... Daten löschen ... 540
18.6 ... Besonderheiten ... 541
19. PDO ... 549
19.1 ... Vorbereitungen ... 550
19.2 ... Datenbankzugriff mit PDO ... 552
19.3 ... Gästebuch ... 559
20. MySQL ... 569
20.1 ... Vorbereitungen ... 570
20.2 ... Datenbankzugriff mit MySQL ... 577
20.3 ... Alte MySQL-Versionen ... 601
20.4 ... Anwendungsbeispiel ... 604
20.5 ... Einstellungen ... 613
21. SQLite ... 615
21.1 ... Vorbereitungen ... 616
21.2 ... Datenbankzugriff mit SQLite ... 617
21.3 ... Anwendungsbeispiel ... 630
22. Microsoft SQL Server ... 639
22.1 ... Vorbereitungen ... 639
22.2 ... Microsoft SQL Server Driver for PHP ... 641
22.3 ... Anwendungsbeispiel ... 651
23. Oracle ... 659
23.1 ... Vorbereitungen ... 659
23.2 ... Datenbankzugriff mit Oracle ... 664
23.3 ... Anwendungsbeispiel ... 673
24. PostgreSQL ... 681
24.1 ... Vorbereitungen ... 681
24.2 ... Datenbankzugriff mit PostgreSQL ... 685
24.3 ... Anwendungsbeispiel ... 697
24.4 ... Einstellungen ... 705
25. MongoDB ... 707
25.1 ... Vorbereitungen ... 707
25.2 ... Datenbankzugriff mit MongoDB ... 712
25.3 ... Anwendungsbeispiel ... 719
25.4 ... Einstellungen ... 727
TEIL V Kommunikation ... 729
26. Dateien ... 731
26.1 ... Vorbereitungen ... 731
26.2 ... Dateihandling mit PHP ... 732
26.3 ... Anwendungsbeispiele ... 743
26.4 ... Einstellungen ... 751
27. Verbindung nach außen ... 753
27.1 ... Vorbereitungen ... 753
27.2 ... Verbindung nach außen mit PHP ... 754
27.3 ... Anwendungsbeispiele ... 768
28. Webservices ... 773
28.1 ... Vorbereitungen ... 773
28.2 ... nuSOAP ... 781
28.3 ... PHP-SOAP ... 789
28.4 ... REST ... 793
28.5 ... UDDI ... 796
29. JavaScript ... 799
29.1 ... Vorbereitungen ... 800
29.2 ... JavaScript mit PHP verbinden ... 800
29.3 ... Ajax ... 805
29.4 ... WebSockets ... 810
TEIL VI Fremdformate ... 817
30. XML ... 819
30.1 ... Vorbereitungen ... 819
30.2 ... XML-Zugriff ... 825
30.3 ... XMLReader und XMLWriter ... 844
30.4 ... EXIF ... 847
31. Grafiken mit PHP ... 853
31.1 ... Vorbereitungen ... 853
31.2 ... GD 2 im Einsatz ... 854
31.3 ... Die Alternativen ... 873
32. PDF mit PHP ... 875
32.1 ... Vorbereitung ... 876
32.2 ... TCPDF ... 877
32.3 ... FPDF ... 890
32.4 ... Haru ... 893
TEIL VII Administration und Sicherheit ... 895
33. Sicherheit ... 897
33.1 ... Benutzereingaben ... 899
33.2 ... XSS ... 902
33.3 ... SQL Injection ... 906
33.4 ... Versteckte Felder? ... 909
33.5 ... Input-Filter ... 912
33.6 ... Cross-Site Request Forgery ... 915
33.7 ... Screen Scraping und CAPTCHAs ... 920
33.8 ... Passwörter verschlüsseln ... 925
33.9 ... Fazit ... 928
34. Authentifizierung ... 929
34.1 ... Apache-Authentifizierung ... 930
34.2 ... IIS-Authentifizierung ... 934
34.3 ... HTTP-Authentifizierung von Hand ... 935
34.4 ... Fazit ... 938
35. Konfigurationsmöglichkeiten in der »php.ini« ... 941
35.1 ... Wo konfigurieren? ... 941
35.2 ... Was konfigurieren? ... 944
35.3 ... Fazit ... 952
36. Fehlersuche und Unittests ... 953
36.1 ... Debugging von Hand ... 955
36.2 ... Debugging mit DBG ... 957
36.3 ... Debugging mit Xdebug ... 961
36.4 ... Auflösung ... 966
36.5 ... Unittests mit PHPUnit ... 968
37. Apache-Funktionen ... 975
37.1 ... Vorbereitungen ... 975
37.2 ... Anwendungsbeispiele ... 976
38. Composer ... 983
38.1 ... Composer installieren ... 983
38.2 ... Pakete per Composer installieren ... 986
38.3 ... Eigenen Code für Composer anpassen ... 989
39. PHP-Erweiterungen ... 993
39.1 ... Programmieren ... 994
39.2 ... Kompilieren ... 1000
39.3 ... Testen ... 1004
40. Zu PHP beitragen ... 1007
40.1 ... Patches für PHP ... 1007
40.2 ... Weitere Möglichkeiten ... 1015
Index ... 1017
TEIL I Vorbereitungen ... 29
1. Allgemeines zu PHP ... 31
1.1 ... Geschichte von PHP ... 31
1.2 ... Erfolg und Einsatz ... 32
1.3 ... Das Konzept von PHP ... 34
1.4 ... Die wichtigsten Neuerungen in PHP 7.3 ... 36
1.5 ... Die wichtigsten Neuerungen in PHP 7 ... 37
1.6 ... Die wichtigsten Neuerungen in PHP 5.4, 5.5 und 5.6 ... 38
1.7 ... Versionen und Anlaufstelle ... 40
2. Installation ... 41
2.1 ... PHP installieren ... 41
2.2 ... PEAR installieren ... 73
3. Test und Hilfe ... 79
3.1 ... Häufige Fehler ... 79
3.2 ... Hilfsquellen ... 90
TEIL II Einstieg in PHP ... 91
4. Grundlagen der Sprache ... 93
4.1 ... PHP in HTML ... 93
4.2 ... Ausgabe mit PHP ... 100
4.3 ... Variablen ... 102
4.4 ... Konstanten ... 114
5. Programmieren ... 115
5.1 ... Operatoren ... 115
5.2 ... Fallunterscheidungen ... 137
5.3 ... Schleifen ... 148
5.4 ... Sprünge ... 161
6. Funktionen und Sprachkonstrukte ... 163
6.1 ... Funktionen ... 163
6.2 ... Sprachkonstrukte ... 185
7. Strings ... 195
7.1 ... Verbinden ... 195
7.2 ... Teilen und Zusammenfügen ... 196
7.3 ... Groß- und Kleinschreibung ... 206
7.4 ... Beschneiden ... 209
7.5 ... Suchen und Ersetzen ... 211
7.6 ... Sonderzeichen, HTML etc. ... 218
7.7 ... Vergleichen ... 226
7.8 ... Hilfreiches und Nützliches ... 228
8. Arrays ... 235
8.1 ... Grundlagen ... 235
8.2 ... Arrays und Schleifen ... 240
8.3 ... Untersuchen ... 246
8.4 ... Transformieren ... 247
8.5 ... Suchen und Sortieren ... 256
8.6 ... Superglobale Arrays ... 258
9. Mathematische und Datumsfunktionen ... 265
9.1 ... Mathe ... 265
9.2 ... Datum und Zeit ... 276
10. Reguläre Ausdrücke ... 297
10.1 ... Grundlagen ... 297
10.2 ... Funktionen für reguläre Ausdrücke ... 299
10.3 ... Anwendungsbeispiele ... 305
11. Objektorientiert programmieren ... 309
11.1 ... Geschichte der Objektorientierung in PHP ... 309
11.2 ... Klassen und Objekte -- Grundbegriffe ... 310
11.3 ... Fortgeschrittenes ... 322
11.4 ... Hilfreiches und Nützliches ... 347
12. Namespaces ... 375
12.1 ... Warum Namespaces? ... 376
12.2 ... Mit Namespaces arbeiten ... 377
13. Entwurfsmuster: MVC & Co. ... 385
13.1 ... Zend Framework ... 386
13.2 ... MVC/MPS ... 388
13.3 ... Singleton/Einzelstück ... 393
13.4 ... Factory/Fabrik ... 395
TEIL III Webtechniken ... 397
14. Formulare ... 399
14.1 ... Vorbereitungen ... 399
14.2 ... Formulare mit PHP ... 402
14.3 ... Formularvalidierung ... 421
14.4 ... Vorausfüllung ... 435
14.5 ... Dateiuploads ... 446
14.6 ... Anwendungsbeispiele ... 449
14.7 ... Einstellungen ... 457
15. Cookies ... 459
15.1 ... Vorbereitungen ... 459
15.2 ... Fakten und Hintergründe ... 461
15.3 ... Mit Cookies in PHP arbeiten ... 464
15.4 ... Cookie-Test ... 478
15.5 ... Abschließende Überlegungen ... 480
16. Sessions ... 483
16.1 ... Vorbereitungen ... 483
16.2 ... Fakten, Hintergründe und Konfiguration ... 484
16.3 ... Mit Sessions in PHP arbeiten ... 488
16.4 ... Geschützter Bereich ... 495
16.5 ... Sessions in Datenbanken ... 498
16.6 ... Sicherheitsbedenken ... 506
17. E-Mail ... 509
17.1 ... Vorbereitungen ... 509
17.2 ... Mails mit PHP versenden ... 514
TEIL IV Datenbanken ... 529
18. SQL ... 531
18.1 ... Datenbanken und Tabellen anlegen ... 532
18.2 ... Daten eintragen ... 535
18.3 ... Daten abfragen ... 536
18.4 ... Daten aktualisieren ... 540
18.5 ... Daten löschen ... 540
18.6 ... Besonderheiten ... 541
19. PDO ... 549
19.1 ... Vorbereitungen ... 550
19.2 ... Datenbankzugriff mit PDO ... 552
19.3 ... Gästebuch ... 559
20. MySQL ... 569
20.1 ... Vorbereitungen ... 570
20.2 ... Datenbankzugriff mit MySQL ... 577
20.3 ... Alte MySQL-Versionen ... 601
20.4 ... Anwendungsbeispiel ... 604
20.5 ... Einstellungen ... 613
21. SQLite ... 615
21.1 ... Vorbereitungen ... 616
21.2 ... Datenbankzugriff mit SQLite ... 617
21.3 ... Anwendungsbeispiel ... 630
22. Microsoft SQL Server ... 639
22.1 ... Vorbereitungen ... 639
22.2 ... Microsoft SQL Server Driver for PHP ... 641
22.3 ... Anwendungsbeispiel ... 651
23. Oracle ... 659
23.1 ... Vorbereitungen ... 659
23.2 ... Datenbankzugriff mit Oracle ... 664
23.3 ... Anwendungsbeispiel ... 673
24. PostgreSQL ... 681
24.1 ... Vorbereitungen ... 681
24.2 ... Datenbankzugriff mit PostgreSQL ... 685
24.3 ... Anwendungsbeispiel ... 697
24.4 ... Einstellungen ... 705
25. MongoDB ... 707
25.1 ... Vorbereitungen ... 707
25.2 ... Datenbankzugriff mit MongoDB ... 712
25.3 ... Anwendungsbeispiel ... 719
25.4 ... Einstellungen ... 727
TEIL V Kommunikation ... 729
26. Dateien ... 731
26.1 ... Vorbereitungen ... 731
26.2 ... Dateihandling mit PHP ... 732
26.3 ... Anwendungsbeispiele ... 743
26.4 ... Einstellungen ... 751
27. Verbindung nach außen ... 753
27.1 ... Vorbereitungen ... 753
27.2 ... Verbindung nach außen mit PHP ... 754
27.3 ... Anwendungsbeispiele ... 768
28. Webservices ... 773
28.1 ... Vorbereitungen ... 773
28.2 ... nuSOAP ... 781
28.3 ... PHP-SOAP ... 789
28.4 ... REST ... 793
28.5 ... UDDI ... 796
29. JavaScript ... 799
29.1 ... Vorbereitungen ... 800
29.2 ... JavaScript mit PHP verbinden ... 800
29.3 ... Ajax ... 805
29.4 ... WebSockets ... 810
TEIL VI Fremdformate ... 817
30. XML ... 819
30.1 ... Vorbereitungen ... 819
30.2 ... XML-Zugriff ... 825
30.3 ... XMLReader und XMLWriter ... 844
30.4 ... EXIF ... 847
31. Grafiken mit PHP ... 853
31.1 ... Vorbereitungen ... 853
31.2 ... GD 2 im Einsatz ... 854
31.3 ... Die Alternativen ... 873
32. PDF mit PHP ... 875
32.1 ... Vorbereitung ... 876
32.2 ... TCPDF ... 877
32.3 ... FPDF ... 890
32.4 ... Haru ... 893
TEIL VII Administration und Sicherheit ... 895
33. Sicherheit ... 897
33.1 ... Benutzereingaben ... 899
33.2 ... XSS ... 902
33.3 ... SQL Injection ... 906
33.4 ... Versteckte Felder? ... 909
33.5 ... Input-Filter ... 912
33.6 ... Cross-Site Request Forgery ... 915
33.7 ... Screen Scraping und CAPTCHAs ... 920
33.8 ... Passwörter verschlüsseln ... 925
33.9 ... Fazit ... 928
34. Authentifizierung ... 929
34.1 ... Apache-Authentifizierung ... 930
34.2 ... IIS-Authentifizierung ... 934
34.3 ... HTTP-Authentifizierung von Hand ... 935
34.4 ... Fazit ... 938
35. Konfigurationsmöglichkeiten in der »php.ini« ... 941
35.1 ... Wo konfigurieren? ... 941
35.2 ... Was konfigurieren? ... 944
35.3 ... Fazit ... 952
36. Fehlersuche und Unittests ... 953
36.1 ... Debugging von Hand ... 955
36.2 ... Debugging mit DBG ... 957
36.3 ... Debugging mit Xdebug ... 961
36.4 ... Auflösung ... 966
36.5 ... Unittests mit PHPUnit ... 968
37. Apache-Funktionen ... 975
37.1 ... Vorbereitungen ... 975
37.2 ... Anwendungsbeispiele ... 976
38. Composer ... 983
38.1 ... Composer installieren ... 983
38.2 ... Pakete per Composer installieren ... 986
38.3 ... Eigenen Code für Composer anpassen ... 989
39. PHP-Erweiterungen ... 993
39.1 ... Programmieren ... 994
39.2 ... Kompilieren ... 1000
39.3 ... Testen ... 1004
40. Zu PHP beitragen ... 1007
40.1 ... Patches für PHP ... 1007
40.2 ... Weitere Möglichkeiten ... 1015
Index ... 1017
Vorwort ... 23
TEIL I Vorbereitungen ... 29
1. Allgemeines zu PHP ... 31
1.1 ... Geschichte von PHP ... 31
1.2 ... Erfolg und Einsatz ... 32
1.3 ... Das Konzept von PHP ... 34
1.4 ... Die wichtigsten Neuerungen in PHP 7.3 ... 36
1.5 ... Die wichtigsten Neuerungen in PHP 7 ... 37
1.6 ... Die wichtigsten Neuerungen in PHP 5.4, 5.5 und 5.6 ... 38
1.7 ... Versionen und Anlaufstelle ... 40
2. Installation ... 41
2.1 ... PHP installieren ... 41
2.2 ... PEAR installieren ... 73
3. Test und Hilfe ... 79
3.1 ... Häufige Fehler ... 79
3.2 ... Hilfsquellen ... 90
TEIL II Einstieg in PHP ... 91
4. Grundlagen der Sprache ... 93
4.1 ... PHP in HTML ... 93
4.2 ... Ausgabe mit PHP ... 100
4.3 ... Variablen ... 102
4.4 ... Konstanten ... 114
5. Programmieren ... 115
5.1 ... Operatoren ... 115
5.2 ... Fallunterscheidungen ... 137
5.3 ... Schleifen ... 148
5.4 ... Sprünge ... 161
6. Funktionen und Sprachkonstrukte ... 163
6.1 ... Funktionen ... 163
6.2 ... Sprachkonstrukte ... 185
7. Strings ... 195
7.1 ... Verbinden ... 195
7.2 ... Teilen und Zusammenfügen ... 196
7.3 ... Groß- und Kleinschreibung ... 206
7.4 ... Beschneiden ... 209
7.5 ... Suchen und Ersetzen ... 211
7.6 ... Sonderzeichen, HTML etc. ... 218
7.7 ... Vergleichen ... 226
7.8 ... Hilfreiches und Nützliches ... 228
8. Arrays ... 235
8.1 ... Grundlagen ... 235
8.2 ... Arrays und Schleifen ... 240
8.3 ... Untersuchen ... 246
8.4 ... Transformieren ... 247
8.5 ... Suchen und Sortieren ... 256
8.6 ... Superglobale Arrays ... 258
9. Mathematische und Datumsfunktionen ... 265
9.1 ... Mathe ... 265
9.2 ... Datum und Zeit ... 276
10. Reguläre Ausdrücke ... 297
10.1 ... Grundlagen ... 297
10.2 ... Funktionen für reguläre Ausdrücke ... 299
10.3 ... Anwendungsbeispiele ... 305
11. Objektorientiert programmieren ... 309
11.1 ... Geschichte der Objektorientierung in PHP ... 309
11.2 ... Klassen und Objekte -- Grundbegriffe ... 310
11.3 ... Fortgeschrittenes ... 322
11.4 ... Hilfreiches und Nützliches ... 347
12. Namespaces ... 375
12.1 ... Warum Namespaces? ... 376
12.2 ... Mit Namespaces arbeiten ... 377
13. Entwurfsmuster: MVC & Co. ... 385
13.1 ... Zend Framework ... 386
13.2 ... MVC/MPS ... 388
13.3 ... Singleton/Einzelstück ... 393
13.4 ... Factory/Fabrik ... 395
TEIL III Webtechniken ... 397
14. Formulare ... 399
14.1 ... Vorbereitungen ... 399
14.2 ... Formulare mit PHP ... 402
14.3 ... Formularvalidierung ... 421
14.4 ... Vorausfüllung ... 435
14.5 ... Dateiuploads ... 446
14.6 ... Anwendungsbeispiele ... 449
14.7 ... Einstellungen ... 457
15. Cookies ... 459
15.1 ... Vorbereitungen ... 459
15.2 ... Fakten und Hintergründe ... 461
15.3 ... Mit Cookies in PHP arbeiten ... 464
15.4 ... Cookie-Test ... 478
15.5 ... Abschließende Überlegungen ... 480
16. Sessions ... 483
16.1 ... Vorbereitungen ... 483
16.2 ... Fakten, Hintergründe und Konfiguration ... 484
16.3 ... Mit Sessions in PHP arbeiten ... 488
16.4 ... Geschützter Bereich ... 495
16.5 ... Sessions in Datenbanken ... 498
16.6 ... Sicherheitsbedenken ... 506
17. E-Mail ... 509
17.1 ... Vorbereitungen ... 509
17.2 ... Mails mit PHP versenden ... 514
TEIL IV Datenbanken ... 529
18. SQL ... 531
18.1 ... Datenbanken und Tabellen anlegen ... 532
18.2 ... Daten eintragen ... 535
18.3 ... Daten abfragen ... 536
18.4 ... Daten aktualisieren ... 540
18.5 ... Daten löschen ... 540
18.6 ... Besonderheiten ... 541
19. PDO ... 549
19.1 ... Vorbereitungen ... 550
19.2 ... Datenbankzugriff mit PDO ... 552
19.3 ... Gästebuch ... 559
20. MySQL ... 569
20.1 ... Vorbereitungen ... 570
20.2 ... Datenbankzugriff mit MySQL ... 577
20.3 ... Alte MySQL-Versionen ... 601
20.4 ... Anwendungsbeispiel ... 604
20.5 ... Einstellungen ... 613
21. SQLite ... 615
21.1 ... Vorbereitungen ... 616
21.2 ... Datenbankzugriff mit SQLite ... 617
21.3 ... Anwendungsbeispiel ... 630
22. Microsoft SQL Server ... 639
22.1 ... Vorbereitungen ... 639
22.2 ... Microsoft SQL Server Driver for PHP ... 641
22.3 ... Anwendungsbeispiel ... 651
23. Oracle ... 659
23.1 ... Vorbereitungen ... 659
23.2 ... Datenbankzugriff mit Oracle ... 664
23.3 ... Anwendungsbeispiel ... 673
24. PostgreSQL ... 681
24.1 ... Vorbereitungen ... 681
24.2 ... Datenbankzugriff mit PostgreSQL ... 685
24.3 ... Anwendungsbeispiel ... 697
24.4 ... Einstellungen ... 705
25. MongoDB ... 707
25.1 ... Vorbereitungen ... 707
25.2 ... Datenbankzugriff mit MongoDB ... 712
25.3 ... Anwendungsbeispiel ... 719
25.4 ... Einstellungen ... 727
TEIL V Kommunikation ... 729
26. Dateien ... 731
26.1 ... Vorbereitungen ... 731
26.2 ... Dateihandling mit PHP ... 732
26.3 ... Anwendungsbeispiele ... 743
26.4 ... Einstellungen ... 751
27. Verbindung nach außen ... 753
27.1 ... Vorbereitungen ... 753
27.2 ... Verbindung nach außen mit PHP ... 754
27.3 ... Anwendungsbeispiele ... 768
28. Webservices ... 773
28.1 ... Vorbereitungen ... 773
28.2 ... nuSOAP ... 781
28.3 ... PHP-SOAP ... 789
28.4 ... REST ... 793
28.5 ... UDDI ... 796
29. JavaScript ... 799
29.1 ... Vorbereitungen ... 800
29.2 ... JavaScript mit PHP verbinden ... 800
29.3 ... Ajax ... 805
29.4 ... WebSockets ... 810
TEIL VI Fremdformate ... 817
30. XML ... 819
30.1 ... Vorbereitungen ... 819
30.2 ... XML-Zugriff ... 825
30.3 ... XMLReader und XMLWriter ... 844
30.4 ... EXIF ... 847
31. Grafiken mit PHP ... 853
31.1 ... Vorbereitungen ... 853
31.2 ... GD 2 im Einsatz ... 854
31.3 ... Die Alternativen ... 873
32. PDF mit PHP ... 875
32.1 ... Vorbereitung ... 876
32.2 ... TCPDF ... 877
32.3 ... FPDF ... 890
32.4 ... Haru ... 893
TEIL VII Administration und Sicherheit ... 895
33. Sicherheit ... 897
33.1 ... Benutzereingaben ... 899
33.2 ... XSS ... 902
33.3 ... SQL Injection ... 906
33.4 ... Versteckte Felder? ... 909
33.5 ... Input-Filter ... 912
33.6 ... Cross-Site Request Forgery ... 915
33.7 ... Screen Scraping und CAPTCHAs ... 920
33.8 ... Passwörter verschlüsseln ... 925
33.9 ... Fazit ... 928
34. Authentifizierung ... 929
34.1 ... Apache-Authentifizierung ... 930
34.2 ... IIS-Authentifizierung ... 934
34.3 ... HTTP-Authentifizierung von Hand ... 935
34.4 ... Fazit ... 938
35. Konfigurationsmöglichkeiten in der »php.ini« ... 941
35.1 ... Wo konfigurieren? ... 941
35.2 ... Was konfigurieren? ... 944
35.3 ... Fazit ... 952
36. Fehlersuche und Unittests ... 953
36.1 ... Debugging von Hand ... 955
36.2 ... Debugging mit DBG ... 957
36.3 ... Debugging mit Xdebug ... 961
36.4 ... Auflösung ... 966
36.5 ... Unittests mit PHPUnit ... 968
37. Apache-Funktionen ... 975
37.1 ... Vorbereitungen ... 975
37.2 ... Anwendungsbeispiele ... 976
38. Composer ... 983
38.1 ... Composer installieren ... 983
38.2 ... Pakete per Composer installieren ... 986
38.3 ... Eigenen Code für Composer anpassen ... 989
39. PHP-Erweiterungen ... 993
39.1 ... Programmieren ... 994
39.2 ... Kompilieren ... 1000
39.3 ... Testen ... 1004
40. Zu PHP beitragen ... 1007
40.1 ... Patches für PHP ... 1007
40.2 ... Weitere Möglichkeiten ... 1015
Index ... 1017
TEIL I Vorbereitungen ... 29
1. Allgemeines zu PHP ... 31
1.1 ... Geschichte von PHP ... 31
1.2 ... Erfolg und Einsatz ... 32
1.3 ... Das Konzept von PHP ... 34
1.4 ... Die wichtigsten Neuerungen in PHP 7.3 ... 36
1.5 ... Die wichtigsten Neuerungen in PHP 7 ... 37
1.6 ... Die wichtigsten Neuerungen in PHP 5.4, 5.5 und 5.6 ... 38
1.7 ... Versionen und Anlaufstelle ... 40
2. Installation ... 41
2.1 ... PHP installieren ... 41
2.2 ... PEAR installieren ... 73
3. Test und Hilfe ... 79
3.1 ... Häufige Fehler ... 79
3.2 ... Hilfsquellen ... 90
TEIL II Einstieg in PHP ... 91
4. Grundlagen der Sprache ... 93
4.1 ... PHP in HTML ... 93
4.2 ... Ausgabe mit PHP ... 100
4.3 ... Variablen ... 102
4.4 ... Konstanten ... 114
5. Programmieren ... 115
5.1 ... Operatoren ... 115
5.2 ... Fallunterscheidungen ... 137
5.3 ... Schleifen ... 148
5.4 ... Sprünge ... 161
6. Funktionen und Sprachkonstrukte ... 163
6.1 ... Funktionen ... 163
6.2 ... Sprachkonstrukte ... 185
7. Strings ... 195
7.1 ... Verbinden ... 195
7.2 ... Teilen und Zusammenfügen ... 196
7.3 ... Groß- und Kleinschreibung ... 206
7.4 ... Beschneiden ... 209
7.5 ... Suchen und Ersetzen ... 211
7.6 ... Sonderzeichen, HTML etc. ... 218
7.7 ... Vergleichen ... 226
7.8 ... Hilfreiches und Nützliches ... 228
8. Arrays ... 235
8.1 ... Grundlagen ... 235
8.2 ... Arrays und Schleifen ... 240
8.3 ... Untersuchen ... 246
8.4 ... Transformieren ... 247
8.5 ... Suchen und Sortieren ... 256
8.6 ... Superglobale Arrays ... 258
9. Mathematische und Datumsfunktionen ... 265
9.1 ... Mathe ... 265
9.2 ... Datum und Zeit ... 276
10. Reguläre Ausdrücke ... 297
10.1 ... Grundlagen ... 297
10.2 ... Funktionen für reguläre Ausdrücke ... 299
10.3 ... Anwendungsbeispiele ... 305
11. Objektorientiert programmieren ... 309
11.1 ... Geschichte der Objektorientierung in PHP ... 309
11.2 ... Klassen und Objekte -- Grundbegriffe ... 310
11.3 ... Fortgeschrittenes ... 322
11.4 ... Hilfreiches und Nützliches ... 347
12. Namespaces ... 375
12.1 ... Warum Namespaces? ... 376
12.2 ... Mit Namespaces arbeiten ... 377
13. Entwurfsmuster: MVC & Co. ... 385
13.1 ... Zend Framework ... 386
13.2 ... MVC/MPS ... 388
13.3 ... Singleton/Einzelstück ... 393
13.4 ... Factory/Fabrik ... 395
TEIL III Webtechniken ... 397
14. Formulare ... 399
14.1 ... Vorbereitungen ... 399
14.2 ... Formulare mit PHP ... 402
14.3 ... Formularvalidierung ... 421
14.4 ... Vorausfüllung ... 435
14.5 ... Dateiuploads ... 446
14.6 ... Anwendungsbeispiele ... 449
14.7 ... Einstellungen ... 457
15. Cookies ... 459
15.1 ... Vorbereitungen ... 459
15.2 ... Fakten und Hintergründe ... 461
15.3 ... Mit Cookies in PHP arbeiten ... 464
15.4 ... Cookie-Test ... 478
15.5 ... Abschließende Überlegungen ... 480
16. Sessions ... 483
16.1 ... Vorbereitungen ... 483
16.2 ... Fakten, Hintergründe und Konfiguration ... 484
16.3 ... Mit Sessions in PHP arbeiten ... 488
16.4 ... Geschützter Bereich ... 495
16.5 ... Sessions in Datenbanken ... 498
16.6 ... Sicherheitsbedenken ... 506
17. E-Mail ... 509
17.1 ... Vorbereitungen ... 509
17.2 ... Mails mit PHP versenden ... 514
TEIL IV Datenbanken ... 529
18. SQL ... 531
18.1 ... Datenbanken und Tabellen anlegen ... 532
18.2 ... Daten eintragen ... 535
18.3 ... Daten abfragen ... 536
18.4 ... Daten aktualisieren ... 540
18.5 ... Daten löschen ... 540
18.6 ... Besonderheiten ... 541
19. PDO ... 549
19.1 ... Vorbereitungen ... 550
19.2 ... Datenbankzugriff mit PDO ... 552
19.3 ... Gästebuch ... 559
20. MySQL ... 569
20.1 ... Vorbereitungen ... 570
20.2 ... Datenbankzugriff mit MySQL ... 577
20.3 ... Alte MySQL-Versionen ... 601
20.4 ... Anwendungsbeispiel ... 604
20.5 ... Einstellungen ... 613
21. SQLite ... 615
21.1 ... Vorbereitungen ... 616
21.2 ... Datenbankzugriff mit SQLite ... 617
21.3 ... Anwendungsbeispiel ... 630
22. Microsoft SQL Server ... 639
22.1 ... Vorbereitungen ... 639
22.2 ... Microsoft SQL Server Driver for PHP ... 641
22.3 ... Anwendungsbeispiel ... 651
23. Oracle ... 659
23.1 ... Vorbereitungen ... 659
23.2 ... Datenbankzugriff mit Oracle ... 664
23.3 ... Anwendungsbeispiel ... 673
24. PostgreSQL ... 681
24.1 ... Vorbereitungen ... 681
24.2 ... Datenbankzugriff mit PostgreSQL ... 685
24.3 ... Anwendungsbeispiel ... 697
24.4 ... Einstellungen ... 705
25. MongoDB ... 707
25.1 ... Vorbereitungen ... 707
25.2 ... Datenbankzugriff mit MongoDB ... 712
25.3 ... Anwendungsbeispiel ... 719
25.4 ... Einstellungen ... 727
TEIL V Kommunikation ... 729
26. Dateien ... 731
26.1 ... Vorbereitungen ... 731
26.2 ... Dateihandling mit PHP ... 732
26.3 ... Anwendungsbeispiele ... 743
26.4 ... Einstellungen ... 751
27. Verbindung nach außen ... 753
27.1 ... Vorbereitungen ... 753
27.2 ... Verbindung nach außen mit PHP ... 754
27.3 ... Anwendungsbeispiele ... 768
28. Webservices ... 773
28.1 ... Vorbereitungen ... 773
28.2 ... nuSOAP ... 781
28.3 ... PHP-SOAP ... 789
28.4 ... REST ... 793
28.5 ... UDDI ... 796
29. JavaScript ... 799
29.1 ... Vorbereitungen ... 800
29.2 ... JavaScript mit PHP verbinden ... 800
29.3 ... Ajax ... 805
29.4 ... WebSockets ... 810
TEIL VI Fremdformate ... 817
30. XML ... 819
30.1 ... Vorbereitungen ... 819
30.2 ... XML-Zugriff ... 825
30.3 ... XMLReader und XMLWriter ... 844
30.4 ... EXIF ... 847
31. Grafiken mit PHP ... 853
31.1 ... Vorbereitungen ... 853
31.2 ... GD 2 im Einsatz ... 854
31.3 ... Die Alternativen ... 873
32. PDF mit PHP ... 875
32.1 ... Vorbereitung ... 876
32.2 ... TCPDF ... 877
32.3 ... FPDF ... 890
32.4 ... Haru ... 893
TEIL VII Administration und Sicherheit ... 895
33. Sicherheit ... 897
33.1 ... Benutzereingaben ... 899
33.2 ... XSS ... 902
33.3 ... SQL Injection ... 906
33.4 ... Versteckte Felder? ... 909
33.5 ... Input-Filter ... 912
33.6 ... Cross-Site Request Forgery ... 915
33.7 ... Screen Scraping und CAPTCHAs ... 920
33.8 ... Passwörter verschlüsseln ... 925
33.9 ... Fazit ... 928
34. Authentifizierung ... 929
34.1 ... Apache-Authentifizierung ... 930
34.2 ... IIS-Authentifizierung ... 934
34.3 ... HTTP-Authentifizierung von Hand ... 935
34.4 ... Fazit ... 938
35. Konfigurationsmöglichkeiten in der »php.ini« ... 941
35.1 ... Wo konfigurieren? ... 941
35.2 ... Was konfigurieren? ... 944
35.3 ... Fazit ... 952
36. Fehlersuche und Unittests ... 953
36.1 ... Debugging von Hand ... 955
36.2 ... Debugging mit DBG ... 957
36.3 ... Debugging mit Xdebug ... 961
36.4 ... Auflösung ... 966
36.5 ... Unittests mit PHPUnit ... 968
37. Apache-Funktionen ... 975
37.1 ... Vorbereitungen ... 975
37.2 ... Anwendungsbeispiele ... 976
38. Composer ... 983
38.1 ... Composer installieren ... 983
38.2 ... Pakete per Composer installieren ... 986
38.3 ... Eigenen Code für Composer anpassen ... 989
39. PHP-Erweiterungen ... 993
39.1 ... Programmieren ... 994
39.2 ... Kompilieren ... 1000
39.3 ... Testen ... 1004
40. Zu PHP beitragen ... 1007
40.1 ... Patches für PHP ... 1007
40.2 ... Weitere Möglichkeiten ... 1015
Index ... 1017