Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
18
Einführung
19
1 PHP-Programmierkurs
25
1.1 Einbettung von PHP
25
1.1.1 Kodierung in UTF-8
27
1.1.2 Kommentare
27
1.2 Variablen, Datentypen und Operatoren
29
1.2.1 Datentypen
29
1.2.2 Namen für Variablen
30
1.2.3 Variablen für Zahlen
31
1.2.4 Rechenoperatoren für Zahlen
32
1.2.5 Kombinierte Zuweisungsoperatoren
34
1.2.6 Formatierung von Zahlen
36
1.2.7 Variablen und Operatoren für Zeichenketten
38
1.2.8 Konstanten
40
1.2.9 Referenzen
41
1.3 Einfache Formularauswertungen
42
1.3.1 Eingabeformular
42
1.3.2 Auswertung mit $_POST
44
1.3.3 Umwandlungen zwischen Zeichenketten und Zahlen
46
1.3.4 Umwandlung von Eingaben
49
1.4 Verzweigungen
51
1.4.1 Einfache Verzweigung mit »if«
52
1.4.2 Alternativer Zweig mit »else«
53
1.4.3 Verknüpfung mit »oder«
57
1.4.4 Verknüpfung mit »und«
58
1.4.5 Umkehrung mit »nicht«
60
1.4.6 Rangordnung der Operatoren
61
1.4.7 Mehrfache Verzweigung mit »if« und »else«
61
1.4.8 Mehrfache Verzweigung mit »switch«
63
1.4.9 Mehrfache Verzweigung mit »match«
66
1.5 Mehr über Verzweigungen
67
1.5.1 Wahrheitswerte
68
1.5.2 Ternärer Operator ?:
70
1.5.3 Spaceship-Operator <=>
71
1.5.4 Existenz von Variablen
72
1.5.5 Typ prüfen
74
1.5.6 Koaleszenzoperatoren ?? und ??=
76
1.6 Schleifen
77
1.6.1 Schleife mit »for«
78
1.6.2 Beispiele für Schleifen mit »for«
79
1.6.3 Verschachtelte Schleife mit »for«
81
1.6.4 Schleifen und Tabellen
82
1.6.5 Schleife mit »while«
85
1.6.6 Schleife mit »do-while«
87
1.6.7 Abbruch einer Schleife mit »break«
88
1.6.8 Fortsetzung einer Schleife mit »continue«
89
1.7 Funktionen
90
1.7.1 Ein erstes Beispiel
91
1.7.2 Definition, Aufruf und Funktionstypen
92
1.7.3 Funktionen mit einem Parameter
93
1.7.4 Funktionen mit mehreren Parametern
96
1.7.5 Rückgabewert einer Funktion
98
1.7.6 Kopie und Referenz
101
1.7.7 Gültigkeitsbereich von Variablen
103
1.8 Behandlung von Fehlern
106
1.8.1 Ohne Ausnahmebehandlung
106
1.8.2 Mit Ausnahmebehandlung
108
1.9 Felder
110
1.9.1 Numerisch indizierte Felder
111
1.9.2 Assoziative Felder
113
1.10 Mehr über Funktionen
117
1.10.1 Variable Parameteranzahl
117
1.10.2 Variadische Funktionen
119
1.10.3 Parameter entpacken
121
1.10.4 Optionale Parameter
122
1.10.5 Benannte Parameter
123
1.10.6 Rekursive Funktionen
125
1.10.7 Auslagern von Funktionen
127
1.10.8 Generatoren
130
1.10.9 Typhinweise
131
1.10.10 Nullbare Typen
135
1.11 Beispiele
137
1.11.1 Entwicklung eines Programms
137
1.11.2 Geldanlage
138
1.11.3 Steuertabelle
141
1.11.4 Bestimmung des Ostersonntags
144
2 Daten senden und auswerten
151
2.1 Textelemente
151
2.1.1 Einzeilige Texteingabefelder
152
2.1.2 Mehrzeilige Texteingabefelder
154
2.1.3 Passworteingabefeld und versteckte Elemente
156
2.2 Auswahlelemente
160
2.2.1 Radiobutton-Gruppe
160
2.2.2 Einfaches Auswahlmenü
163
2.2.3 Kontrollkästchen
164
2.2.4 Mehrfaches Auswahlmenü
166
2.3 Aktionselemente
168
2.3.1 Absenden und Zurücksetzen
169
2.4 Weitere Möglichkeiten
172
2.4.1 Felder von Formularelementen
172
2.4.2 Formular und Programm in einer Datei
176
2.4.3 Absenden über Hyperlink mit CSS
178
2.4.4 Daten an Formularziel anhängen
181
2.4.5 Daten an Hyperlinkziel anhängen
184
2.4.6 Dateien auf den Server hochladen
186
2.5 Beispiele
189
2.5.1 Grundrechenarten
189
2.5.2 Pizzabestellung
191
2.5.3 Kopfrechnen
195
2.6 PHP-Programme publizieren
200
3 Datenbanken mit MySQL
203
3.1 Einführung
203
3.1.1 Was ist eine Datenbank?
203
3.1.2 Was bedeuten SQL und MySQL?
204
3.1.3 Was ist phpMyAdmin?
205
3.2 Verwaltung mit phpMyAdmin
205
3.2.1 Planung
206
3.2.2 Datenbank erzeugen
207
3.2.3 Tabelle erzeugen
207
3.2.4 Primärschlüssel erzeugen
209
3.2.5 Datensätze eintragen
210
3.3 Datensätze anzeigen
211
3.3.1 Aufbau des Programms
212
3.3.2 Klasse »mysqli« für das Verbindungsobjekt
213
3.3.3 Klasse »mysqli_result« für das Ergebnisobjekt
214
3.3.4 Schleife über alle Ergebnisse
215
3.4 Datensätze auswählen
216
3.4.1 SQL-Operatoren
216
3.4.2 Vergleich von Zahlen
217
3.4.3 Vergleich von Zeichenketten
219
3.5 Ausgabe in Tabellenform
221
3.6 Auswahl über Formulare
222
3.6.1 Ablauf
223
3.6.2 Formular
223
3.6.3 Auswertung
224
3.7 Prepared Statements
226
3.7.1 Einbindung von Zahlen
227
3.7.2 Einbindung von Zeichenketten
231
3.8 Datensätze erzeugen
233
3.9 Datensätze ändern
238
3.9.1 Mehrere Datensätze
238
3.9.2 Einzelner Datensatz
239
3.10 Datensätze löschen
244
3.11 SQL-Funktionen für Zeichenketten
247
3.12 Aggregatfunktionen
249
3.13 Gruppierung
251
3.14 Benutzeroberfläche mit JavaScript und CSS
252
3.15 Abfragen über mehrere Tabellen
263
3.15.1 Zweck der Datenbank
263
3.15.2 Datenbankmodell
264
3.15.3 Beispieldaten
265
3.15.4 Abfragen
266
3.15.5 JOIN oder WHERE?
270
3.16 Ein Datenbankbrowser
271
3.17 Datenbanken publizieren
271
3.17.1 Verbindung aufnehmen
272
3.17.2 Export einer Tabelle
274
3.17.3 Tabelle und Daten per Programm erzeugen
276
4 Objektorientierung in PHP
279
4.1 Was ist objektorientierte Programmierung?
279
4.2 Klassen und Objekte
280
4.2.1 Definition der Klasse
280
4.2.2 Sichtbarkeit
282
4.2.3 Anwendung der Klasse
283
4.3 Konstruktor und Ausgabe
285
4.4 Destruktor
288
4.5 Optionale und benannte Parameter
290
4.6 Konstanten und statische Elemente
293
4.7 Kopie und Referenz
297
4.8 Typhinweise
300
4.9 Objekte und Felder
301
4.10 Vererbung
306
4.11 Schnittstellen
311
4.11.1 Eigene Schnittstellen
311
4.11.2 Iterator-Schnittstelle
313
4.12 Serialisierung
315
4.13 Beispiel »Scheck«
318
4.14 Kopfrechnen, objektorientiert
322
5 Fehler behandeln, Sicherheit erhöhen
323
5.1 Anzeige von Fehlern
323
5.2 Dauerhafte Konfiguration der Anzeige von Fehlern
323
5.3 Änderung der Anzeige
326
5.4 Angriffe und Sicherheit
327
5.4.1 Programmpakete
327
5.4.2 Sichtbare Daten
327
5.4.3 Sessions
328
5.4.4 Variablen
329
5.4.5 Eingaben prüfen
329
5.4.6 SQL-Injection vermeiden
330
5.4.7 Passwörter
330
6 Zeichenketten
331
6.1 Eigenschaften und Umwandlungen
331
6.2 Suchen und Ersetzen
332
6.3 Positionen und Teilzeichenketten
335
6.4 Zeichenketten und Felder
337
6.5 Zeichen und Codenummern
338
6.6 Verschlüsselung
339
7 Dateien und Verzeichnisse
345
7.1 Schreiben einer Textdatei
345
7.2 Lesen einer Textdatei
347
7.3 Ein einfacher Webcounter
350
7.4 Schreiben einer CSV-Datei
351
7.5 Lesen einer CSV-Datei
353
7.6 Informationen über Dateien
355
7.7 Informationen über ein Verzeichnis
356
7.8 Informationen über einen Verzeichnisbaum
359
8 Felder
363
8.1 Feld entpacken
363
8.2 Feld kopieren
364
8.3 Feld als Parameter
365
8.4 Feld als Rückgabewert
366
8.5 Zufällige Werte aus einem Feld
368
8.6 Typhinweise
369
8.7 foreach-Schleife, Kopie und Referenz
370
8.8 Operationen für numerisch indizierte Felder
371
8.8.1 Erzeugung mit der Funktion range()
371
8.8.2 Sortierung
372
8.8.3 Wert und Position der Extrema
374
8.8.4 Statistische Auswertung
375
8.8.5 Feld verändern
378
8.9 Sortierung eines assoziativen Feldes
380
8.10 Zweidimensionale Felder
381
8.10.1 Zweidimensionale numerische Felder
382
8.10.2 Zweidimensionale gemischte Felder
385
8.10.3 Zweidimensionale assoziative Felder
388
8.11 Callback-Funktionen
391
8.12 Benutzerdefinierte Sortierung
393
8.12.1 Sortierung eines zweidimensionalen Felds
393
8.12.2 Sortierung eines Felds von Objekten
395
8.13 Dekonstruktion
396
8.14 Mengenlehre
399
9 Datum und Zeit
403
9.1 Zeit ermitteln und ausgeben
403
9.2 Zeit formatiert ausgeben
405
9.3 Zeitangabe prüfen
408
9.4 Absolute Zeitangabe erzeugen
409
9.5 Relative Zeitangabe erzeugen
410
9.6 Mit Zeitangaben rechnen
411
9.7 Zeitstempel in Datenbanken
416
9.8 SQL-Funktionen für Zeitangaben
418
9.9 Ermittlung von Feiertagen
420
9.10 Kopfrechnen mit Zeitmessung
424
10 Mathematische Funktionen
425
10.1 Ganze Zahlen und Fließkommazahlen
425
10.2 Exponentialoperator **
427
10.3 PHP als Taschenrechner
428
10.4 Ganze Zahlen, Runden
430
10.5 Ganzzahlige Division und Modulo
432
10.6 Extremwerte
433
10.7 Winkelfunktionen
434
10.8 Mischen
435
10.9 Stellenwertsysteme
437
10.10 Bit-Operatoren
439
11 Sessions und Cookies
443
11.1 Session-Management
444
11.2 Zugriffszähler mit Sessions
444
11.3 Geschützte Website mit Sessions
446
11.3.1 Ablauf
446
11.3.2 Anmeldeseite
448
11.3.3 Intro-Seite
449
11.3.4 Seite innerhalb der Website
450
11.4 Webshop mit Sessions
451
11.4.1 Ablauf
452
11.4.2 Datenbank
453
11.4.3 Auswahl der Abteilung
454
11.4.4 Startseite
455
11.4.5 Warenkorb
457
11.5 Cookies
459
11.6 Existenz von Cookies prüfen
460
11.7 Daten speichern mit Cookies
462
12 Datenbanken mit SQLite3 und PDO
465
12.1 SQLite3
465
12.1.1 Eigenschaften
465
12.1.2 Prüfung und Version
466
12.1.3 Datenbank, Tabelle und Datensätze erzeugen
467
12.1.4 Abfrage der Datensätze
469
12.1.5 Benutzeroberfläche mit JavaScript und CSS
471
12.1.6 Kopfrechnen und SQLite
476
12.2 PDO
476
12.2.1 Erweiterungen aktivieren
476
12.2.2 Beispiel für einen Zugriff
477
13 XML
481
13.1 Einlesen eines einzelnen Objekts
481
13.2 Sammlung von gleichartigen Objekten
484
13.3 Zugriff auf Attribute
486
13.4 Interne XML-Daten
488
13.5 Speicherung von Objekten
489
14 Ajax
491
14.1 Hallo Ajax
491
14.2 Parameter senden
494
14.3 XML-Datei lesen
497
14.3.1 Einzelnes Objekt
497
14.3.2 Sammlung von Objekten
499
14.4 JSON-Datei lesen
501
14.4.1 Einzelnes Objekt
502
14.4.2 Sammlung von Objekten
504
14.4.3 Decodieren von JSON-Daten
506
14.5 Zugriff auf MySQL-Datenbank
507
14.6 Weitere Ereignisse
510
15 Grafiken programmieren
513
15.1 Installation testen
513
15.2 Grafik anzeigen
514
15.2.1 Speicherung in Bilddatei
515
15.2.2 Anzeige ohne Speicherung
516
15.3 Texte anzeigen
518
15.3.1 Text mit internen Fonts
518
15.3.2 Text mit TrueType-Fonts
519
15.4 Bilder anzeigen
521
15.4.1 Bilder aus Dateien laden
521
15.4.2 Bilder skalieren
523
15.4.3 Bilder spiegeln
524
15.4.4 Bildausschnitte erstellen
525
15.4.5 Bilder aus Dateien ineinander einbetten
526
15.5 Zeichnungen erzeugen
528
15.5.1 Ellipsen und Bogen
528
15.5.2 Rechtecke und Polygone
530
15.5.3 Linien und Pixel
531
15.5.4 Füllen mit Farbe
533
15.6 Beispielprojekte
535
15.6.1 Darstellung eines Aktienkurses
535
15.6.2 Erstellung eines CAPTCHAS
538
16 PDF-Dateien erstellen
541
16.1 Installation
541
16.2 PDF-Dokument erzeugen
541
16.3 Text in Zelle
543
16.4 Fließtext, Schriftparameter
545
16.5 Tabelle
547
16.6 Kopf- und Fußzeile
550
16.7 Bild aus Datei laden
552
16.8 Hyperlinks
553
16.9 Linie, Rechteck, Position
557
17 Automatisierter E-Mail-Versand
559
17.1 Eine erste E-Mail
559
17.2 Weitere Header
560
17.3 Ein E-Mail-Formular
561
17.4 E-Mails mit PHPMailer
563
18 Beispielprojekte
565
18.1 Das Projekt »Chat«
565
18.2 Das Projekt »Blog«
565
18.3 Das Projekt »Forum«
566
18.4 Das Projekt »Multiplayer«
566
18.4.1 Der Ablauf der Anmeldung
567
18.4.2 Der Ablauf des Spiels und der Abmeldung
569
18.4.3 Aufbau der XML-Dateien
570
18.4.4 Beginn des Programms
572
18.4.5 Anmeldung
574
18.4.6 Abmeldung
575
18.4.7 Lesen der XML-Dateien
576
18.4.8 Schreiben der XML-Dateien
577
18.4.9 Erhöhen eines Werts um 1
578
18.4.10 Ausgelöste Aktion durchführen
579
18.4.11 Formular mit Schaltflächen
581
18.4.12 Anzeige von Informationen oder Spielkarten
582
18.4.13 Individuelle oder allgemeine Informationen
584
18.5 Das Projekt »Steganografie«
585
18.5.1 Das Auge erkennt keinen Unterschied
586
18.5.2 Das Verstecken der Daten
587
18.5.3 Die Rekonstruktion der Daten
591
Anhang Installationen und Hilfestellungen
595
A.1 Installationen unter Windows
595
A.1.1 Installation des Pakets XAMPP
595
A.1.2 Der FTP-Client FileZilla
597
A.2 Installation unter Ubuntu Linux
598
A.3 Installation für macOS
600
A.4 Windows – einige Tastenkombinationen
602
A.5 Unix-Befehle
602
A.5.1 Inhalt eines Verzeichnisses
603
A.5.2 Verzeichnis anlegen, wechseln und löschen
604
A.5.3 Datei kopieren, verschieben und löschen
604
Index
607