Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
18
Einführung
19
1 PHP-Programmierkurs
23
1.1 Einbettung von PHP
23
1.1.1 Kodierung in UTF-8
25
1.1.2 Kommentare
25
1.2 Variablen, Datentypen und Operatoren
27
1.2.1 Datentypen
27
1.2.2 Namen für Variablen
27
1.2.3 Variablen für Zahlen
28
1.2.4 Rechenoperatoren für Zahlen
29
1.2.5 Kombinierte Zuweisungsoperatoren
31
1.2.6 Formatierung von Zahlen
33
1.2.7 Variablen und Operatoren für Zeichenketten
35
1.2.8 Konstanten
36
1.2.9 Referenzen
37
1.3 Einfache Formularauswertungen
38
1.3.1 Eingabeformular
39
1.3.2 Auswertung mit $_POST
41
1.3.3 Umwandlungen zwischen Zeichenketten und Zahlen
42
1.3.4 Umwandlung von Eingaben
45
1.4 Verzweigungen
47
1.4.1 Einfache Verzweigung mit »if«
47
1.4.2 Alternativer Zweig mit »else«
49
1.4.3 Verknüpfung mit »oder«
52
1.4.4 Verknüpfung mit »und«
53
1.4.5 Umkehrung mit »nicht«
55
1.4.6 Rangordnung der Operatoren
56
1.4.7 Mehrfache Verzweigung mit »if« und »else«
57
1.4.8 Mehrfache Verzweigung mit »switch«
58
1.4.9 Mehrfache Verzweigung mit »match«
60
1.5 Mehr über Verzweigungen
62
1.5.1 Wahrheitswerte
62
1.5.2 Ternärer Operator ?:
65
1.5.3 Spaceship-Operator <=>
66
1.5.4 Existenz von Variablen
67
1.5.5 Typ prüfen
69
1.5.6 Die Koaleszenzoperatoren ?? und ??=
70
1.6 Schleifen
72
1.6.1 Schleife mit »for«
72
1.6.2 Beispiele für Schleifen mit »for«
73
1.6.3 Verschachtelte Schleife mit »for«
75
1.6.4 Schleifen und Tabellen
76
1.6.5 Schleife mit »while«
79
1.6.6 Schleife mit »do-while«
81
1.6.7 Abbruch einer Schleife mit »break«
81
1.6.8 Fortsetzung einer Schleife mit »continue«
83
1.7 Funktionen
83
1.7.1 Ein erstes Beispiel
84
1.7.2 Definition, Aufruf und Funktionstypen
86
1.7.3 Funktionen mit einem Parameter
86
1.7.4 Funktionen mit mehreren Parametern
89
1.7.5 Rückgabewert einer Funktion
91
1.7.6 Kopie und Referenz
93
1.7.7 Gültigkeitsbereich von Variablen
96
1.8 Behandlung von Fehlern
98
1.8.1 Ohne Ausnahmebehandlung
99
1.8.2 Mit Ausnahmebehandlung
100
1.9 Felder
103
1.9.1 Numerisch indizierte Felder
103
1.9.2 Assoziative Felder
106
1.10 Mehr über Funktionen
109
1.10.1 Variable Parameteranzahl
109
1.10.2 Variadische Funktionen
112
1.10.3 Parameter entpacken
113
1.10.4 Optionale Parameter
114
1.10.5 Benannte Parameter
115
1.10.6 Rekursive Funktionen
117
1.10.7 Auslagern von Funktionen
119
1.10.8 Anonyme Funktionen
122
1.10.9 Callback-Funktionen
123
1.10.10 Generatoren
125
1.10.11 Typhinweise
126
1.10.12 Nullbare Typen
130
1.11 Beispiele
131
1.11.1 Entwicklung eines Programms
132
1.11.2 Geldanlage
133
1.11.3 Steuertabelle
134
1.11.4 Bestimmung des Ostersonntags
135
2 Daten senden und auswerten
139
2.1 Textelemente
139
2.1.1 Einzeilige Texteingabefelder
140
2.1.2 Mehrzeilige Texteingabefelder
142
2.1.3 Passworteingabefeld und versteckte Elemente
144
2.2 Auswahlelemente
147
2.2.1 Radiobutton-Gruppe
148
2.2.2 Einfaches Auswahlmenü
150
2.2.3 Kontrollkästchen
151
2.2.4 Mehrfaches Auswahlmenü
153
2.3 Aktionselemente
155
2.3.1 Absenden und Zurücksetzen
156
2.4 Weitere Möglichkeiten
159
2.4.1 Formular und Programm in einer Datei
159
2.4.2 Absenden über Hyperlink mit CSS
161
2.4.3 Daten an Formularziel anhängen
164
2.4.4 Daten an Hyperlinkziel anhängen
167
2.4.5 Dateien auf den Server hochladen
169
2.5 Beispiele
172
2.5.1 Grundrechenarten
172
2.5.2 Pizzabestellung
173
2.5.3 Kopfrechnen
174
2.6 PHP-Programme publizieren
176
3 Datenbanken mit MySQL
177
3.1 Einführung
177
3.1.1 Was ist eine Datenbank?
177
3.1.2 Was sind SQL und MySQL?
178
3.1.3 Was ist phpMyAdmin?
178
3.2 Verwaltung mit phpMyAdmin
179
3.2.1 Planung
180
3.2.2 Datenbank erzeugen
180
3.2.3 Tabelle erzeugen
181
3.2.4 Primärschlüssel erzeugen
182
3.2.5 Datensätze eintragen
183
3.3 Datensätze anzeigen
185
3.3.1 Aufbau des Programms
185
3.3.2 Die Klasse »mysqli« für das Verbindungsobjekt
186
3.3.3 Die Klasse »mysqli_result« für das Ergebnisobjekt
187
3.3.4 Schleife über alle Ergebnisse
188
3.3.5 Ausgabe des Datums
189
3.4 Datensätze auswählen
190
3.4.1 Vergleich, Verknüpfung und Sortierung
190
3.4.2 Vergleich von Zahlen
191
3.4.3 Vergleich von Zeichenketten
192
3.5 Ausgabe in Tabellenform
194
3.6 Auswahl über Formulare
196
3.6.1 Ablauf
196
3.6.2 Formular
196
3.6.3 Auswertung
197
3.7 Prepared Statements
200
3.7.1 Eingabe von Text
200
3.7.2 Verwendung von Platzhaltern
203
3.7.3 Eingabe von Zahlen
204
3.7.4 Ist der »float«-Wert gültig?
206
3.8 Datensätze erzeugen
208
3.8.1 Ist der »int«-Wert gültig?
212
3.8.2 Ist das Datum gültig?
213
3.8.3 Existiert der neue Primärschlüssel doppelt?
214
3.9 Datensätze ändern
215
3.9.1 Mehrere Datensätze
216
3.9.2 Einzelner Datensatz
217
3.9.3 Existiert der geänderte Primärschlüssel doppelt?
222
3.10 Datensätze löschen
223
3.11 SQL-Funktionen für Zeichenketten
225
3.12 Aggregatfunktionen
227
3.13 Gruppierung
230
3.14 Benutzeroberfläche mit JavaScript und CSS
231
3.15 Beispiel Eventplanung
232
3.16 Eine Datenbank mit mehreren Tabellen
232
3.16.1 Zweck der Anwendung
232
3.16.2 Datenbankmodell
233
3.16.3 Die Programme der Anwendung
234
3.17 Ein Datenbankbrowser
237
3.18 Datenbanken publizieren
238
3.18.1 Verbindung aufnehmen
239
3.18.2 Tabelle und Daten per Programm erzeugen
241
4 Objektorientierung in PHP
243
4.1 Was ist objektorientierte Programmierung?
243
4.2 Klassen und Objekte
244
4.2.1 Definition der Klasse
244
4.2.2 Sichtbarkeit
246
4.2.3 Anwendung der Klasse
247
4.3 Konstruktor und Ausgabe
249
4.4 Destruktor
252
4.5 Schreibgeschützte Eigenschaften
253
4.6 Optionale und benannte Parameter
255
4.7 Konstanten und statische Elemente
258
4.8 Kopie und Referenz
261
4.9 Typhinweise
264
4.10 Objekte und Felder
266
4.11 Vererbung
271
4.12 Schnittstellen
275
4.12.1 Eigene Schnittstellen
275
4.12.2 Iterator-Schnittstelle
277
4.13 Enumerationen
279
4.14 Serialisierung
281
4.15 Beispiel »Scheck«
284
4.16 Kopfrechnen, objektorientiert
285
5 Fehler behandeln, Sicherheit erhöhen
287
5.1 Anzeige von Fehlern
287
5.2 Dauerhafte Konfiguration der Anzeige von Fehlern
287
5.3 Änderung der Anzeige
290
5.4 Angriffe und Sicherheit
291
5.4.1 Programmpakete
291
5.4.2 Sichtbare Daten
291
5.4.3 Sessions
292
5.4.4 Variablen
292
5.4.5 Eingaben prüfen
293
5.4.6 SQL-Injection vermeiden
293
5.4.7 Passwörter
294
6 Zeichenketten
295
6.1 Eigenschaften und Umwandlungen
295
6.2 Suchen und Ersetzen
297
6.3 Positionen und Teilzeichenketten
299
6.4 Zeichenketten und Felder
301
6.5 Zeichen und Codenummern
302
6.6 Verschlüsselung
303
7 Dateien und Verzeichnisse
309
7.1 Eine Textdatei schreiben
309
7.2 Eine Textdatei lesen
311
7.3 Ein einfacher Webcounter
314
7.4 Eine CSV-Datei schreiben
315
7.5 Eine CSV-Datei lesen
317
7.6 Informationen über Dateien
318
7.7 Informationen über ein Verzeichnis
319
7.8 Informationen über einen Verzeichnisbaum
322
8 Felder
325
8.1 Ein Feld entpacken
325
8.2 Ein Feld kopieren
326
8.3 Ein Feld als Parameter
327
8.4 Ein Feld als Rückgabewert
328
8.5 Zufällige Werte aus einem Feld
329
8.6 Typhinweise
331
8.7 foreach-Schleife, Kopie und Referenz
331
8.8 Operationen für numerisch indizierte Felder
333
8.8.1 Erzeugung mit der Funktion »range()«
333
8.8.2 Sortierung
334
8.8.3 Wert und Position der Extrema
335
8.8.4 Statistische Auswertung
337
8.8.5 Feld verändern
339
8.9 Sortierung eines assoziativen Feldes
341
8.10 Zweidimensionale Felder
343
8.10.1 Zweidimensionale numerische Felder
343
8.10.2 Zweidimensionale gemischte Felder
346
8.10.3 Zweidimensionale assoziative Felder
349
8.11 Callback-Funktionen
352
8.12 Benutzerdefinierte Sortierung
354
8.12.1 Sortierung eines zweidimensionalen Felds
354
8.12.2 Sortierung eines Felds von Objekten
356
8.13 Dekonstruktion
357
8.14 Mengenlehre
360
9 Datum und Zeit
365
9.1 Zeit ermitteln und ausgeben
365
9.2 Zeit formatiert ausgeben
366
9.3 Zeitangabe prüfen
369
9.4 Absolute Zeitangabe erzeugen
370
9.5 Relative Zeitangabe erzeugen
372
9.6 Mit Zeitangaben rechnen
373
9.7 Zeitstempel in Datenbanken
377
9.8 SQL-Funktionen für Zeitangaben
379
9.9 Ermittlung von Feiertagen
382
9.10 Kopfrechnen mit Zeitmessung
383
10 Mathematische Funktionen
385
10.1 Ganze Zahlen und Fließkommazahlen
385
10.2 Exponentialoperator **
387
10.3 PHP als Taschenrechner
388
10.4 Ganze Zahlen, Runden
390
10.5 Ganzzahlige Division und Modulo
392
10.6 Extremwerte
393
10.7 Winkelfunktionen
394
10.8 Mischen
395
10.9 Stellenwertsysteme
397
10.10 Bit-Operatoren
399
11 Sessions und Cookies
403
11.1 Session-Management
404
11.2 Zugriffszähler mit Sessions
404
11.3 Geschützte Website mit Sessions
406
11.3.1 Ablauf
406
11.3.2 Anmeldeseite
408
11.3.3 Intro-Seite
409
11.3.4 Seite innerhalb der Website
410
11.4 Webshop mit Sessions
411
11.4.1 Ablauf
411
11.4.2 Datenbank
413
11.4.3 Auswahl der Abteilung
414
11.4.4 Startseite
414
11.4.5 Warenkorb
416
11.5 Cookies
419
11.6 Die Existenz von Cookies prüfen
419
11.7 Daten speichern mit Cookies
421
12 Datenbanken mit SQLite3 und PDO
425
12.1 SQLite3
425
12.1.1 Eigenschaften
425
12.1.2 Prüfung und Version
426
12.1.3 Datenbank, Tabelle und Datensätze erzeugen
427
12.1.4 Abfrage der Datensätze
429
12.1.5 Benutzeroberfläche mit JavaScript und CSS
430
12.1.6 Kopfrechnen und SQLite
435
12.2 PDO
435
12.2.1 Erweiterungen aktivieren
435
12.2.2 Beispiel für einen Zugriff
435
13 XML
439
13.1 Einlesen eines einzelnen Objekts
439
13.2 Sammlung von gleichartigen Objekten
442
13.3 Zugriff auf Attribute
444
13.4 Interne XML-Daten
446
13.5 Speicherung von Objekten
447
14 Ajax
449
14.1 Hallo Ajax
449
14.2 Parameter senden
452
14.3 XML-Dateien lesen
455
14.3.1 Einzelnes Objekt
455
14.3.2 Sammlung von Objekten
457
14.4 JSON-Dateien lesen
459
14.4.1 Einzelnes Objekt
459
14.4.2 Sammlung von Objekten
461
14.4.3 Decodieren von JSON-Daten
464
14.5 Zugriff auf eine MySQL-Datenbank
465
14.6 Weitere Ereignisse
468
15 Grafiken programmieren
471
15.1 Installation testen
471
15.2 Grafik anzeigen
472
15.2.1 Speicherung in Bilddatei
473
15.2.2 Anzeige ohne Speicherung
474
15.3 Texte anzeigen
476
15.3.1 Text mit internen Fonts
476
15.3.2 Text mit TrueType-Fonts
477
15.4 Bilder anzeigen
479
15.4.1 Bilder aus Dateien laden
479
15.4.2 Bilder skalieren
480
15.4.3 Bilder spiegeln
481
15.4.4 Bildausschnitte erstellen
482
15.4.5 Bilder aus Dateien ineinander einbetten
483
15.5 Zeichnungen erzeugen
485
15.5.1 Ellipsen und Bogen
485
15.5.2 Rechtecke und Polygone
487
15.5.3 Linien und Pixel
488
15.5.4 Füllen mit Farbe
490
15.6 Beispielanwendungen
492
15.6.1 Darstellung eines Aktienkurses
492
15.6.2 Erstellung eines CAPTCHAS
493
16 PDF-Dateien erstellen
495
16.1 Installation
495
16.2 PDF-Dokument erzeugen
495
16.3 Text in Zelle
497
16.4 Fließtext, Schriftparameter
499
16.5 Tabellen
501
16.6 Kopf- und Fußzeile
503
16.7 Ein Bild aus einer Datei laden
506
16.8 Hyperlinks
507
16.9 Linie, Rechteck, Position
510
17 Automatisierter E-Mail-Versand
513
17.1 Eine erste E-Mail
513
17.2 Weitere Header
514
17.3 Ein E-Mail-Formular
515
17.4 E-Mails mit PHPMailer
517
18 Beispielanwendungen
519
18.1 Die Anwendung »Chat«
519
18.2 Die Anwendung »Blog«
520
18.2.1 Darstellung für den Betrachter
520
18.2.2 Darstellung für den Betreiber
521
18.3 Die Anwendung »Forum«
521
18.3.1 Darstellung
522
18.4 Die Anwendung »Multiplayer«
523
18.4.1 Anmeldung
524
18.4.2 Der Ablauf des Spiels
525
18.4.3 Ende des Spiels und Abmeldung
526
18.5 Die Anwendung »Steganografie«
527
Anhang
531
A Installationen und Hilfestellungen
531
A.1 Installationen unter Windows
531
A.2 Installation von XAMPP unter Ubuntu Linux
537
A.3 Installation von XAMPP unter macOS
539
A.4 Neues in den PHP-Versionen
540
A.5 HTML und CSS für PHP
542
Index
545