Dynamische Webseiten mit PHP 8 entwickelnMit PHP und MySQL können Sie dynamische Webseiten und Anwendungen programmieren. Dafür brauchen Sie fundiertes Wissen zu PHP und zu Datenbanken. Dieses Buch bietet Ihnen genau diese Grundlagenwissen, aktuell zu PHP 8. Die Programmierbücher von Thomas Theis sind besonders beliebt bei allen, die mit wenig Vorwissen in eine Programmiersprache oder IT-Themen einsteigen. Sein seit vielen Jahren bewährtes Konzept bietet Ihnen alles, was Sie brauchen, um Blogs, Webshops, Chats oder Foren mit PHP 8 selbst zu entwickeln. Leicht nachvollziehbare Beispiele und Übungen helfen Ihnen, Ihre eigenen Projekte schnell zu realisieren. Ein Programmierkurs für Anfänger zu Beginn des Buches stellt sicher, dass Ihnen der Einstieg in die Programmierung sicher gelingt. So lernen Sie PHP praxisnah, gründlich, richtig. Noch schnellere Webseiten mit PHP 8 und Just-in-Time-Compiler (JIT)Formulardaten auswerten und speichern, Sessions, Sicherheit, Grafiken, Ajax u. v. m. Mit vielen Übungsaufgaben und Beispielprojekten zum sofortigen Einsatz Aus dem Inhalt:GrundlagenPHP-ProgrammierkursDaten senden und auswertenDatenbanken anlegenObjektorientiert programmierenFortgeschrittene TechnikenPrepared StatementsConstructor Property PromotionCallbacksMultibyte-FunktionenXML und AjaxSicherheit erhöhen VerschlüsselungenHilfenInstallation des lokalen WebserversHinweise für Windows-, Mac- und Ubuntu-Nutzer
Inhaltsverzeichnis
Materialien zum Buch . . . 18
Einführung . . . 19
1. PHP-Programmierkurs . . . 23
1. 1 . . . Einbettung von PHP . . . 23
1. 2 . . . Variablen, Datentypen und Operatoren . . . 27
1. 3 . . . Einfache Formularauswertungen . . . 38
1. 4 . . . Verzweigungen . . . 47
1. 5 . . . Mehr über Verzweigungen . . . 62
1. 6 . . . Schleifen . . . 72
1. 7 . . . Funktionen . . . 83
1. 8 . . . Behandlung von Fehlern . . . 98
1. 9 . . . Felder . . . 103
1. 10 . . . Mehr über Funktionen . . . 109
1. 11 . . . Beispiele . . . 131
2. Daten senden und auswerten . . . 139
2. 1 . . . Textelemente . . . 139
2. 2 . . . Auswahlelemente . . . 147
2. 3 . . . Aktionselemente . . . 155
2. 4 . . . Weitere Möglichkeiten . . . 159
2. 5 . . . Beispiele . . . 172
2. 6 . . . PHP-Programme publizieren . . . 176
3. Datenbanken mit MySQL . . . 177
3. 1 . . . Einführung . . . 177
3. 2 . . . Verwaltung mit phpMyAdmin . . . 179
3. 3 . . . Datensätze anzeigen . . . 185
3. 4 . . . Datensätze auswählen . . . 190
3. 5 . . . Ausgabe in Tabellenform . . . 194
3. 6 . . . Auswahl über Formulare . . . 196
3. 7 . . . Prepared Statements . . . 200
3. 8 . . . Datensätze erzeugen . . . 208
3. 9 . . . Datensätze ändern . . . 215
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. 17 . . . Ein Datenbankbrowser . . . 237
3. 18 . . . Datenbanken publizieren . . . 238
4. Objektorientierung in PHP . . . 243
4. 1 . . . Was ist objektorientierte Programmierung? . . . 243
4. 2 . . . Klassen und Objekte . . . 244
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. 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
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. 9 . . . Sortierung eines assoziativen Feldes . . . 341
8. 10 . . . Zweidimensionale Felder . . . 343
8. 11 . . . Callback-Funktionen . . . 352
8. 12 . . . Benutzerdefinierte Sortierung . . . 354
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. 4 . . . Webshop mit Sessions . . . 411
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. 2 . . . PDO . . . 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. 4 . . . JSON-Dateien lesen . . . 459
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. 3 . . . Texte anzeigen . . . 476
15. 4 . . . Bilder anzeigen . . . 479
15. 5 . . . Zeichnungen erzeugen . . . 485
15. 6 . . . Beispielanwendungen . . . 492
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. 3 . . . Die Anwendung »Forum« . . . 521
18. 4 . . . Die Anwendung »Multiplayer« . . . 523
18. 5 . . . Die Anwendung »Steganografie« . . . 527
Anhang . . . 531
A . . . Installationen und Hilfestellungen . . . 531
Index . . . 545