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
30
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
38
1.4.4 Umwandlung von Eingaben
40
1.5 Verzweigungen
42
1.5.1 if-Anweisung
43
1.5.2 if/else-Anweisung
44
1.5.3 Logische Operatoren
48
1.5.4 Rangordnung der Operatoren
50
1.5.5 Mehrfache Verzweigung
51
1.5.6 switch/case-Anweisung
53
1.6 Mehr über Verzweigungen
55
1.6.1 HTML in Verzweigungsblöcken
55
1.6.2 Wahrheitswerte
56
1.6.3 Ternärer Operator ?:
58
1.6.4 Spaceship-Operator <=>
59
1.6.5 Existenz einer Variablen
60
1.6.6 Typ prüfen
62
1.6.7 Koaleszenzoperator ??
64
1.7 Schleifen
65
1.7.1 for-Schleife
65
1.7.2 Beispiele für for-Schleifen
67
1.7.3 Geschachtelte for-Schleifen
68
1.7.4 Schleifen und Tabellen
69
1.7.5 while-Schleife
72
1.7.6 do-while-Schleife
74
1.7.7 Schleifenabbruch mit break
75
1.7.8 Schleifenfortsetzung mit continue
76
1.8 Funktionen
77
1.8.1 Ein erstes Beispiel
78
1.8.2 Definition, Aufruf und Funktionstypen
79
1.8.3 Funktionen mit einem Parameter
80
1.8.4 Funktionen mit mehreren Parametern
83
1.8.5 Rückgabewert einer Funktion
86
1.8.6 Kopie und Referenz
88
1.8.7 Gültigkeitsbereich von Variablen
90
1.9 Behandlung von Fehlern
93
1.9.1 Ohne Ausnahmebehandlung
93
1.9.2 Mit Ausnahmebehandlung
94
1.10 Felder
97
1.10.1 Numerisch indizierte Felder
97
1.10.2 Assoziative Felder
100
1.11 Mehr über Funktionen
103
1.11.1 Typhinweise
104
1.11.2 Variable Parameterlisten
108
1.11.3 Parameter entpacken
111
1.11.4 Optionale Parameter
112
1.11.5 Rekursive Funktionen
113
1.11.6 include-Anweisung
115
1.11.7 Generatoren
118
1.12 Beispiele
119
1.12.1 Entwicklung eines Programms
119
1.12.2 Formatierung von Zahlen
120
1.12.3 Geldanlage
122
1.12.4 Steuertabelle
124
1.12.5 Bestimmung des Ostersonntags
127
2 Daten senden und auswerten
133
2.1 Textelemente
133
2.1.1 Einzeilige Texteingabefelder
134
2.1.2 Mehrzeilige Texteingabefelder
136
2.1.3 Passworteingabefeld, verstecktes Element
138
2.2 Auswahlelemente
141
2.2.1 Radiobutton-Gruppe
141
2.2.2 Einfaches Auswahlmenü
144
2.2.3 Kontrollkästchen
145
2.2.4 Mehrfaches Auswahlmenü
147
2.3 Aktionselemente
149
2.3.1 Absenden und Zurücksetzen
150
2.4 Weitere Möglichkeiten
153
2.4.1 Auswertung in anderem Frame
153
2.4.2 Felder von Formularelementen
155
2.4.3 Formular und Programm in einer Datei
158
2.4.4 Submit über Hyperlink, mit CSS
160
2.4.5 Daten an Formularziel anhängen
163
2.4.6 Daten an Hyperlink-Ziel anhängen
166
2.4.7 Dateien auf den Server hochladen
168
2.5 Beispiele
171
2.5.1 Grundrechenarten
171
2.5.2 Pizzabestellung
174
2.5.3 Kopfrechnen
177
2.6 PHP-Programme publizieren
183
3 Datenbanken mit MySQL
185
3.1 MySQL und phpMyAdmin
186
3.1.1 phpMyAdmin
187
3.1.2 Beispieldatenbank und -tabelle
187
3.1.3 Datenbank erzeugen
188
3.1.4 Tabelle erzeugen
188
3.1.5 Primärschlüssel erzeugen
189
3.1.6 Datensätze eintragen
190
3.2 PHP und MySQL
192
3.2.1 Verbindung aufnehmen, Datensätze anzeigen
192
3.2.2 Datensätze auswählen
195
3.2.3 Ausgabe in eine HTML-Tabelle
200
3.2.4 Auswahl von Daten über ein Suchformular
202
3.2.5 Datensätze erzeugen
210
3.2.6 Ändern mehrerer Datensätze
214
3.2.7 Ändern eines bestimmten Datensatzes
214
3.2.8 Datensätze löschen
220
3.2.9 Benutzeroberfläche mit JavaScript und CSS
222
3.2.10 Ein Datenbankbrowser
230
3.3 Abfragen über mehrere Tabellen
230
3.3.1 Zweck der Datenbank
230
3.3.2 Datenbankmodell
231
3.3.3 Verknüpfungen erstellen
231
3.3.4 Inhalt der Datenbank
232
3.3.5 Alle Personen
233
3.3.6 Anzahl der Kunden
234
3.3.7 Alle Kunden mit allen Projekten
234
3.3.8 Alle Personen mit allen Projektzeiten
235
3.3.9 Alle Personen mit Zeitsumme
236
3.3.10 Alle Projekte mit allen Personenzeiten
237
3.3.11 Alle Projekte mit Zeitsumme
238
3.3.12 JOIN oder WHERE
238
3.4 MySQL-Datenbanken publizieren
239
3.4.1 Verbindung aufnehmen
240
3.4.2 Export einer Tabelle
241
3.4.3 Tabelle und Daten per Programm erzeugen
244
4 Objektorientierung in PHP
247
4.1 Was ist objektorientierte Programmierung?
247
4.2 Klassen und Objekte
248
4.2.1 Sichtbarkeit
250
4.2.2 Anwendung der Klasse
251
4.3 Konstruktor und Ausgabe
253
4.4 Destruktor
255
4.5 Optionale Parameter
257
4.6 Konstanten und statische Elemente
260
4.7 Kopie und Referenz
262
4.8 Typhinweise
266
4.9 Objekte und Felder
267
4.10 Vererbung
270
4.10.1 Grundlagen
270
4.10.2 Konstruktoren bei Vererbung
274
4.11 Schnittstellen
275
4.11.1 Eigene Schnittstellen
275
4.11.2 Iterator-Schnittstelle
277
4.12 Namensräume
279
4.13 Serialisierung
282
4.14 Beispiel »Scheck«
285
4.15 Beispiel »Kopfrechnen«
290
5 Fehler behandeln, Sicherheit erhöhen
291
5.1 Anzeige von Fehlern
291
5.2 Dauerhafte Konfiguration der Anzeige von Fehlern
291
5.3 Temporäre Konfiguration der Anzeige von Fehlern
294
5.4 Angriffe und Sicherheit
295
5.4.1 Programmpakete
295
5.4.2 Sichtbare Daten
295
5.4.3 Sessions
296
5.4.4 Variablen
297
5.4.5 Eingaben prüfen
297
5.4.6 Passwörter
298
6 Zeichenketten
299
6.1 Länge und Umwandlungsfunktionen
299
6.2 Zeichenketten und Felder
301
6.3 Teilzeichenketten
303
6.4 Suchen nach Position
305
6.5 Vergleich von Zeichenketten
306
6.6 Codierung von Zeichen
308
6.7 Verschlüsselung
309
7 Dateien und Verzeichnisse
313
7.1 Dateitypen
313
7.2 Schreiben einer sequenziellen Datei
314
7.3 Lesen einer sequenziellen Datei
317
7.4 Verbessertes Lesen einer Datei
319
7.5 Vereinfachtes Lesen einer Datei
320
7.6 Schreiben einer CSV-Datei
321
7.7 Lesen einer CSV-Datei
323
7.8 Ein einfacher Webcounter
325
7.9 Wahlfreier Zugriff
326
7.10 Informationen über Dateien
330
7.11 Informationen über ein einzelnes Verzeichnis
330
7.12 Informationen über den Verzeichnisbaum
333
8 Felder
337
8.1 Feld kopieren
337
8.2 Feld als Parameter
338
8.3 Feld als Rückgabewert
339
8.4 Zufällige Werte aus einem Feld
340
8.5 Typhinweise
342
8.6 foreach-Schleife mit Referenzen
343
8.7 Operationen für numerisch indizierte Felder
344
8.7.1 Erzeugung mit der Funktion range()
344
8.7.2 Sortierung
346
8.7.3 Wert und Position der Extrema
347
8.7.4 Statistische Auswertung
348
8.7.5 Feld verändern
352
8.8 Sortierung eines assoziativen Felds
354
8.9 Zweidimensionale Felder
355
8.9.1 Zweidimensionale numerische Felder
356
8.9.2 Zweidimensionale gemischte Felder
359
8.9.3 Zweidimensionale assoziative Felder
362
8.10 Benutzerdefinierte Sortierung
365
8.11 list-Anweisung
368
9 Datum und Zeit
371
9.1 Zeit ermitteln und ausgeben
371
9.2 Zeit formatiert ausgeben
372
9.3 Zeitangabe prüfen
376
9.4 Absolute Zeitangabe erzeugen
377
9.5 Relative Zeitangabe erzeugen
378
9.6 Mit Zeitangaben rechnen
380
9.7 Zeitbereich auswählen
382
9.8 Zeitstempel in Datenbanken
383
9.9 Beispiel Feiertagsberechnung
385
9.10 Kopfrechnen mit Zeitmessung
389
10 Mathematische Funktionen
395
10.1 Ganze Zahlen und Fließkommazahlen
395
10.2 Exponentialoperator **
397
10.3 PHP als Taschenrechner
398
10.4 Umwandlung in ganze Zahl
399
10.5 Ganzzahlige Division
400
10.6 Extremwerte
401
10.7 Winkelfunktionen
402
10.8 Zufallszahlen
404
10.9 Mischen
406
10.9.1 Mischen mit eigenem Algorithmus
406
10.9.2 Mischen mit shuffle()
407
10.10 Stellenwertsysteme
409
10.11 Bit-Operatoren
411
11 Sessions und Cookies
415
11.1 Session-Management
416
11.2 Beispiel für Sessions: Zugriffszähler
416
11.3 Beispiel für Sessions: geschützte Website
418
11.3.1 Ablauf
418
11.3.2 Login-Seite
420
11.3.3 Intro-Seite
421
11.4 Beispiel für Sessions: Webshop
423
11.4.1 Ablauf
424
11.4.2 Startseite
426
11.4.3 include-Datei
427
11.4.4 Tabelle der Artikel
429
11.4.5 Warenkorb
431
11.4.6 Kasse
435
11.5 Cookies
435
11.6 Beispiel für Cookies: Besuch
437
11.7 Beispiel für Cookies: Adressspeicherung
440
12 Datenbanken mit SQLite3 und PDO
445
12.1 SQLite3
446
12.2 Datenbankdatei, Tabelle und Datensätze erzeugen
446
12.3 Abfrage der Datensätze
448
12.4 Benutzeroberfläche mit JavaScript und CSS
450
12.5 Beispiel »Kopfrechnen«
455
12.6 PDO
456
13 XML
461
13.1 Einlesen eines einzelnen Objekts
461
13.2 Einlesen mehrerer Objekte
464
13.3 Zugriff auf Attribute
467
13.4 Interne XML-Daten
469
13.5 Speicherung von Objekten
470
14 Ajax
473
14.1 Hallo Ajax
474
14.2 Parameter senden
476
14.3 XML-Datei lesen
479
14.3.1 Einzelnes Objekt
479
14.3.2 Sammlung von Objekten
481
14.4 JSON-Datei lesen
483
14.4.1 Einzelnes Objekt
484
14.4.2 Sammlung von Objekten
486
14.4.3 Decodieren von JSON-Daten
488
14.5 Zugriff auf MySQL-Datenbank
490
14.6 Weitere Ereignisse
492
15 Grafiken programmieren
495
15.1 Installation testen
495
15.2 Grafik anzeigen
496
15.2.1 Grafik speichern
497
15.2.2 Grafik unmittelbar anzeigen
498
15.3 Texte anzeigen
500
15.3.1 Text mit internen Fonts
500
15.3.2 Text mit TrueType-Fonts
501
15.4 Bilder anzeigen
503
15.4.1 Bilder aus Dateien laden
503
15.4.2 Bilder spiegeln
504
15.4.3 Bildausschnitte erstellen
505
15.4.4 Bilder aus Dateien ineinander einbetten
506
15.5 Zeichnungen erzeugen
508
15.5.1 Ellipsen und Bogen
508
15.5.2 Rechtecke und Polygone
510
15.5.3 Linien und Pixel
511
15.5.4 Füllen mit Farbe
513
15.6 Beispielprojekte
514
15.6.1 Darstellung eines Aktienkurses
515
15.6.2 Erstellung eines CAPTCHAS
517
16 PDF-Dateien erstellen
521
16.1 Installation
521
16.2 PDF-Dokument erzeugen
521
16.3 Text in Zelle
523
16.4 Fließtext, Schriftparameter
525
16.5 Tabelle
527
16.6 Kopf- und Fußzeile
530
16.7 Bild aus Datei laden
532
16.8 Hyperlinks
533
16.9 Linie, Rechteck, Position
537
17 Automatisierter EMail-Versand
541
17.1 Eine erste EMail
541
17.2 Eine EMail mit Header
542
17.3 Ein EMail-Formular
542
17.4 EMails mit PHPMailer
544
18 Beispielprojekte
547
18.1 Projekt »Chat«
547
18.1.1 Frame-Aufbau
547
18.1.2 CSS-Formatierung
549
18.1.3 Ausgabe, Version »Textdatei«
549
18.1.4 Darstellung der Textdatei
550
18.1.5 Ausgabe, Version »Datenbank«
551
18.1.6 Darstellung der Datenbanktabellen
552
18.1.7 Eingabe, Head
553
18.1.8 Eingabe, PHP zum Speichern, Version »Textdatei«
554
18.1.9 Eingabe, PHP zum Speichern, Version »Datenbank«
555
18.1.10 Eingabe, Formular
556
18.1.11 Mögliche Erweiterungen
557
18.2 Projekt »Blog«
558
18.2.1 Aufbau der Datenbank
560
18.2.2 Blog für den Betrachter, Programmcode
561
18.2.3 Blog für den Betreiber, Programmcode
563
18.3 Projekt »Forum«
567
A HTML für PHP
569
A.1 Die erste Seite
570
A.2 Formulare
571
A.3 Tabellen
574
A.4 Hyperlinks
575
B Installationen und Hilfestellungen
577
B.1 Installationen unter Windows
577
B.1.1 Installation des Pakets EasyPHP
578
B.1.2 Installation des Pakets XAMPP
581
B.1.3 FTP-Client FileZilla
583
B.2 Installation unter Ubuntu Linux
584
B.3 Installation für macOS auf dem Mac
586
B.4 Windows – einige Tastenkombinationen
587
B.5 Unix-Befehle
588
B.5.1 Inhalt eines Verzeichnisses
588
B.5.2 Verzeichnis anlegen, wechseln und löschen
589
B.5.3 Datei kopieren, verschieben und löschen
589
Index
591