Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Einführung
17
1 PHP-Programmierkurs
21
1.1 Einbettung von PHP in HTML
21
1.2 Kommentare
24
1.3 Variablen, Datentypen und Operatoren
25
1.3.1 Namen
26
1.3.2 Variablen für Zahlen
27
1.3.3 Rechenoperatoren für Zahlen
28
1.3.4 Variablen und Operatoren für Zeichenketten
31
1.3.5 Konstanten
33
1.3.6 Referenzen
34
1.4 Einfache Formularauswertungen
35
1.4.1 Eingabeformular
35
1.4.2 Auswertung mit $_POST
37
1.4.3 Umwandlung von Zeichenketten in Zahlen
39
1.4.4 Umwandlung von Eingaben
40
1.5 Verzweigungen
42
1.5.1 if-Anweisung
43
1.5.2 if/else-Anweisung
45
1.5.3 Logische Operatoren
48
1.5.4 Rangordnung der Operatoren
51
1.5.5 Mehrfache Verzweigung
52
1.5.6 switch/case-Anweisung
54
1.6 Mehr über Verzweigungen
55
1.6.1 HTML in Verzweigungsblöcken
56
1.6.2 Wahrheitswerte
57
1.6.3 Ternärer Operator ?:
59
1.6.4 Spaceship-Operator <=>
60
1.6.5 Existenz einer Variablen
61
1.6.6 Typ prüfen
63
1.6.7 Koaleszenzoperator ??
65
1.7 Schleifen
65
1.7.1 for-Schleife
66
1.7.2 Beispiele für for-Schleifen
67
1.7.3 Verschachtelte for-Schleifen
69
1.7.4 Schleifen und Tabellen
70
1.7.5 while-Schleife
73
1.7.6 do-while-Schleife
75
1.7.7 Schleifenabbruch mit break
76
1.7.8 Schleifenfortsetzung mit continue
78
1.8 Funktionen
78
1.8.1 Ein erstes Beispiel
79
1.8.2 Definition, Aufruf und Funktionstypen
81
1.8.3 Funktionen mit einem Parameter
81
1.8.4 Funktionen mit mehreren Parametern
84
1.8.5 Rückgabewert einer Funktion
87
1.8.6 Kopie und Referenz
89
1.8.7 Gültigkeitsbereich von Variablen
92
1.9 Behandlung von Fehlern
94
1.9.1 Ohne Ausnahmebehandlung
95
1.9.2 Mit Ausnahmebehandlung
96
1.10 Felder
98
1.10.1 Numerisch indizierte Felder
99
1.10.2 Assoziative Felder
101
1.11 Mehr über Funktionen
105
1.11.1 Typhinweise
105
1.11.2 Variable Parameterlisten
109
1.11.3 Parameter entpacken
113
1.11.4 Optionale Parameter
114
1.11.5 Rekursive Funktionen
115
1.11.6 include-Anweisung
117
1.11.7 Generatoren
119
1.12 Beispiele
121
1.12.1 Entwicklung eines Programms
121
1.12.2 Formatierung von Zahlen
122
1.12.3 Geldanlage
123
1.12.4 Steuertabelle
126
1.12.5 Bestimmung des Ostersonntags
129
2 Daten senden und auswerten
135
2.1 Textelemente
135
2.1.1 Einzeilige Texteingabefelder
136
2.1.2 Mehrzeilige Texteingabefelder
138
2.1.3 Passworteingabefeld und versteckte Elemente
140
2.2 Auswahlelemente
143
2.2.1 Radiobutton-Gruppe
143
2.2.2 Einfaches Auswahlmenü
146
2.2.3 Kontrollkästchen
147
2.2.4 Mehrfaches Auswahlmenü
149
2.3 Aktionselemente
152
2.3.1 Absenden und Zurücksetzen
152
2.4 Weitere Möglichkeiten
155
2.4.1 Auswertung in einem anderen Frame
156
2.4.2 Felder von Formularelementen
158
2.4.3 Formular und Programm in einer Datei
161
2.4.4 Submit über Hyperlink mit CSS
163
2.4.5 Daten an Formularziel anhängen
166
2.4.6 Daten an Hyperlink-Ziel anhängen
168
2.4.7 Dateien auf den Server hochladen
171
2.5 Beispiele
174
2.5.1 Grundrechenarten
174
2.5.2 Pizzabestellung
177
2.5.3 Kopfrechnen
180
2.6 PHP-Programme publizieren
186
3 Datenbanken mit MySQL
187
3.1 MySQL und phpMyAdmin
188
3.1.1 phpMyAdmin
188
3.1.2 Beispieldatenbank und -tabelle
189
3.1.3 Datenbank erzeugen
190
3.1.4 Tabelle erzeugen
190
3.1.5 Primärschlüssel erzeugen
192
3.1.6 Datensätze eintragen
193
3.2 PHP und MySQL
194
3.2.1 Verbindung aufnehmen, Datensätze anzeigen
195
3.2.2 Datensätze auswählen
198
3.2.3 Ausgabe in eine HTML-Tabelle
202
3.2.4 Auswahl von Daten über ein Suchformular
204
3.2.5 Datensätze erzeugen
212
3.2.6 Ändern mehrerer Datensätze
216
3.2.7 Ändern eines bestimmten Datensatzes
217
3.2.8 Datensätze löschen
222
3.2.9 Benutzeroberfläche mit JavaScript und CSS
225
3.2.10 Ein Datenbankbrowser
233
3.3 Abfragen über mehrere Tabellen
233
3.3.1 Zweck der Datenbank
234
3.3.2 Datenbankmodell
234
3.3.3 Verknüpfungen erstellen
235
3.3.4 Inhalt der Datenbank
236
3.3.5 Alle Personen
237
3.3.6 Anzahl der Kunden
237
3.3.7 Alle Kunden mit allen Projekten
238
3.3.8 Alle Personen mit allen Projektzeiten
239
3.3.9 Alle Personen mit Zeitsumme
240
3.3.10 Alle Projekte mit allen Personenzeiten
241
3.3.11 Alle Projekte mit Zeitsumme
241
3.3.12 JOIN oder WHERE
242
3.4 MySQL-Datenbanken publizieren
242
3.4.1 Verbindung aufnehmen
243
3.4.2 Export einer Tabelle
245
3.4.3 Tabelle und Daten per Programm erzeugen
248
4 Objektorientierung in PHP
251
4.1 Was ist objektorientierte Programmierung?
251
4.2 Klassen und Objekte
252
4.2.1 Sichtbarkeit
254
4.2.2 Anwendung der Klasse
255
4.3 Konstruktor und Ausgabe
257
4.4 Destruktor
259
4.5 Optionale Parameter
261
4.6 Konstanten und statische Elemente
263
4.7 Kopie und Referenz
266
4.8 Typhinweise
270
4.9 Objekte und Felder
270
4.10 Vererbung
274
4.10.1 Grundlagen
274
4.10.2 Konstruktoren bei Vererbung
277
4.11 Schnittstellen
279
4.11.1 Eigene Schnittstellen
279
4.11.2 Iterator-Schnittstelle
281
4.12 Namensräume
283
4.13 Serialisierung
286
4.14 Beispiel »Scheck«
289
4.15 Beispiel »Kopfrechnen«
294
5 Fehler behandeln, Sicherheit erhöhen
295
5.1 Anzeige von Fehlern
295
5.2 Dauerhafte Konfiguration der Anzeige von Fehlern
295
5.3 Temporäre Konfiguration der Anzeige von Fehlern
298
5.4 Angriffe und Sicherheit
299
5.4.1 Programmpakete
299
5.4.2 Sichtbare Daten
299
5.4.3 Sessions
300
5.4.4 Variablen
300
5.4.5 Eingaben prüfen
301
5.4.6 Passwörter
302
6 Zeichenketten
303
6.1 Länge und Umwandlungsfunktionen
303
6.2 Zeichenketten und Felder
305
6.3 Teilzeichenketten
307
6.4 Suchen nach Position
309
6.5 Vergleich von Zeichenketten
310
6.6 Codierung von Zeichen
312
6.7 Verschlüsselung
314
7 Dateien und Verzeichnisse
317
7.1 Dateitypen
317
7.2 Schreiben einer sequenziellen Datei
318
7.3 Lesen einer sequenziellen Datei
321
7.4 Verbessertes Lesen einer Datei
323
7.5 Vereinfachtes Lesen einer Datei
324
7.6 Schreiben einer CSV-Datei
325
7.7 Lesen einer CSV-Datei
327
7.8 Ein einfacher Webcounter
328
7.9 Wahlfreier Zugriff
330
7.10 Informationen über Dateien
333
7.11 Informationen über ein einzelnes Verzeichnis
334
7.12 Informationen über den Verzeichnisbaum
337
8 Felder
341
8.1 Feld kopieren
341
8.2 Feld als Parameter
342
8.3 Feld als Rückgabewert
343
8.4 Zufällige Werte aus einem Feld
344
8.5 Typhinweise
346
8.6 foreach-Schleife mit Referenzen
347
8.7 Operationen für numerisch indizierte Felder
348
8.7.1 Erzeugung mit der Funktion range()
348
8.7.2 Sortierung
349
8.7.3 Wert und Position der Extrema
350
8.7.4 Statistische Auswertung
352
8.7.5 Feld verändern
356
8.8 Sortierung eines assoziativen Feldes
358
8.9 Zweidimensionale Felder
359
8.9.1 Zweidimensionale numerische Felder
360
8.9.2 Zweidimensionale gemischte Felder
363
8.9.3 Zweidimensionale assoziative Felder
366
8.10 Benutzerdefinierte Sortierung
369
8.11 list-Anweisung
372
9 Datum und Zeit
375
9.1 Zeit ermitteln und ausgeben
375
9.2 Zeit formatiert ausgeben
376
9.3 Zeitangabe prüfen
379
9.4 Absolute Zeitangabe erzeugen
380
9.5 Relative Zeitangabe erzeugen
381
9.6 Mit Zeitangaben rechnen
383
9.7 Zeitbereich auswählen
386
9.8 Zeitstempel in Datenbanken
387
9.9 Beispiel Feiertagsberechnung
389
9.10 Kopfrechnen mit Zeitmessung
392
10 Mathematische Funktionen
399
10.1 Ganze Zahlen und Fließkommazahlen
399
10.2 Exponentialoperator **
401
10.3 PHP als Taschenrechner
402
10.4 Umwandlung in eine ganze Zahl
403
10.5 Ganzzahlige Division
405
10.6 Extremwerte
406
10.7 Winkelfunktionen
407
10.8 Zufallszahlen
408
10.9 Mischen
410
10.9.1 Mischen mit eigenem Algorithmus
410
10.9.2 Mischen mit shuffle()
412
10.10 Stellenwertsysteme
413
10.11 Bit-Operatoren
415
11 Sessions und Cookies
419
11.1 Session-Management
420
11.2 Beispiel für Sessions: Zugriffszähler
420
11.3 Beispiel für Sessions: geschützte Website
422
11.3.1 Ablauf
422
11.3.2 Login-Seite
424
11.3.3 Intro-Seite
425
11.4 Beispiel für Sessions: Webshop
427
11.4.1 Ablauf
428
11.4.2 Startseite
430
11.4.3 include-Datei
431
11.4.4 Tabelle der Artikel
433
11.4.5 Warenkorb
435
11.4.6 Kasse
439
11.5 Cookies
439
11.6 Beispiel für Cookies: Besuch
441
11.7 Beispiel für Cookies: Adressspeicherung
444
12 Datenbanken mit SQLite3 und PDO
449
12.1 SQLite3
450
12.2 Datenbankdatei, Tabelle und Datensätze erzeugen
451
12.3 Abfrage der Datensätze
452
12.4 Benutzeroberfläche mit JavaScript und CSS
454
12.5 Beispiel »Kopfrechnen«
459
12.6 PDO
460
13 XML
465
13.1 Einlesen eines einzelnen Objekts
465
13.2 Einlesen mehrerer Objekte
468
13.3 Zugriff auf Attribute
470
13.4 Interne XML-Daten
472
13.5 Speicherung von Objekten
473
14 Ajax
477
14.1 Hallo Ajax
477
14.2 Parameter senden
480
14.3 XML-Datei lesen
483
14.3.1 Einzelnes Objekt
483
14.3.2 Sammlung von Objekten
485
14.4 JSON-Datei lesen
487
14.4.1 Einzelnes Objekt
488
14.4.2 Sammlung von Objekten
490
14.4.3 Decodieren von JSON-Daten
492
14.5 Zugriff auf MySQL-Datenbank
494
14.6 Weitere Ereignisse
496
15 Grafiken programmieren
499
15.1 Installation testen
499
15.2 Grafik anzeigen
500
15.2.1 Grafik speichern
501
15.2.2 Grafik unmittelbar anzeigen
502
15.3 Texte anzeigen
504
15.3.1 Text mit internen Fonts
504
15.3.2 Text mit TrueType-Fonts
505
15.4 Bilder anzeigen
507
15.4.1 Bilder aus Dateien laden
507
15.4.2 Bilder spiegeln
509
15.4.3 Bildausschnitte erstellen
509
15.4.4 Bilder aus Dateien ineinander einbetten
510
15.5 Zeichnungen erzeugen
512
15.5.1 Ellipsen und Bogen
512
15.5.2 Rechtecke und Polygone
514
15.5.3 Linien und Pixel
515
15.5.4 Füllen mit Farbe
517
15.6 Beispielprojekte
519
15.6.1 Darstellung eines Aktienkurses
519
15.6.2 Erstellung eines CAPTCHAS
522
16 PDF-Dateien erstellen
527
16.1 Installation
527
16.2 PDF-Dokument erzeugen
527
16.3 Text in Zelle
529
16.4 Fließtext, Schriftparameter
531
16.5 Tabelle
533
16.6 Kopf- und Fußzeile
536
16.7 Bild aus Datei laden
538
16.8 Hyperlinks
539
16.9 Linie, Rechteck, Position
543
17 Automatisierter E-Mail-Versand
547
17.1 Eine erste E-Mail
547
17.2 Eine E-Mail mit Header
548
17.3 Ein E-Mail-Formular
549
17.4 E-Mails mit PHPMailer
550
18 Beispielprojekte
553
18.1 Das Projekt »Chat«
553
18.2 Das Projekt »Blog«
553
18.3 Das Projekt »Forum«
554
18.4 Das Projekt »Multiplayer«
554
18.4.1 Der Ablauf der Anmeldung
555
18.4.2 Der Ablauf des Spiels und der Abmeldung
556
18.4.3 Aufbau der XML-Dateien
559
18.4.4 Beginn des Programms
560
18.4.5 Anmeldung
562
18.4.6 Abmeldung
563
18.4.7 Lesen der XML-Dateien
564
18.4.8 Schreiben der XML-Dateien
565
18.4.9 Erhöhen eines Werts um 1
566
18.4.10 Ausgelöste Aktion durchführen
567
18.4.11 Formular mit Schaltflächen
569
18.4.12 Anzeige von Informationen oder Spielkarten
570
18.4.13 Individuelle oder allgemeine Informationen
572
18.5 Das Projekt »Steganografie«
573
18.5.1 Das Auge erkennt keinen Unterschied
574
18.5.2 Das Verstecken der Daten
575
18.5.3 Die Rekonstruktion der Daten
579
Anhang
583
A HTML für PHP
583
A.1 Die erste Seite
583
A.2 Formulare
585
A.3 Tabellen
587
A.4 Hyperlinks
589
B Installationen und Hilfestellungen
591
B.1 Installationen unter Windows
591
B.1.1 Installation des Pakets XAMPP
591
B.1.2 Der FTP-Client FileZilla
593
B.2 Installation unter Ubuntu Linux
594
B.3 Installation für macOS High Sierra auf dem Mac
596
B.4 Windows – einige Tastenkombinationen
598
B.5 Unix-Befehle
598
B.5.1 Inhalt eines Verzeichnisses
598
B.5.2 Verzeichnis anlegen, wechseln und löschen
599
B.5.3 Datei kopieren, verschieben und löschen
600
Materialien zum Buch
602
Index
603