Theis | Einstieg in PHP 8 und MySQL | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 558 Seiten

Reihe: Rheinwerk Computing

Theis Einstieg in PHP 8 und MySQL

Ideal für Programmiereinsteiger
15. Auflage 2023
ISBN: 978-3-8362-9276-4
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Ideal für Programmiereinsteiger

E-Book, Deutsch, 558 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-9276-4
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Dynamische Webseiten mit PHP 8 entwickeln

Mit 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:

  • Grundlagen
  • PHP-Programmierkurs
  • Daten senden und auswerten
  • Datenbanken anlegen
  • Objektorientiert programmieren
  • Fortgeschrittene Techniken
  • Prepared Statements
  • Constructor Property Promotion
  • Callbacks
  • Multibyte-Funktionen
  • XML und Ajax
  • Sicherheit erhöhen
  • Verschlüsselungen
  • Hilfen
  • Installation des lokalen Webservers
  • Hinweise für Windows-, Mac- und Ubuntu-Nutzer
Theis Einstieg in PHP 8 und MySQL jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


  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


1.2    Variablen, Datentypen und Operatoren


Innerhalb eines Programms können Informationen zur späteren Verwendung in Variablen gespeichert werden.

1.2.1    Datentypen


Variablen unterscheiden sich in ihren Datentypen. PHP unterstützt unter anderem Datentypen für:

  • ganze Zahlen

  • Fließkommazahlen, also Zahlen mit Nachkommastellen

  • Zeichenketten (auch Strings genannt)

  • Felder (ein- und mehrdimensionale Felder von Variablen)

  • Objekte

Der Datentyp für eine PHP-Variable wird nicht beim Programmieren festgelegt, sondern richtet sich nach dem Zusammenhang, in dem die Variable verwendet wird. Sie kann bei ihrem ersten Erscheinen sofort benutzt werden und muss dem Programm nicht vorher bekannt gemacht werden. Sie kann ihren Datentyp innerhalb eines Programms wechseln.

Seit PHP 7.0 gibt es die Möglichkeit, die Datentypen der benutzten Variablen beim Aufruf von Funktionen genauer zu prüfen. Dabei wird mit sogenannten Typhinweisen gearbeitet. Typhinweise verbessern die Lesbarkeit und erleichtern den Ablauf und die Pflege von PHP-Programmen. Mehr dazu finden Sie in Abschnitt 1.10.11.

Zunächst geht es um die einfachen Datentypen (Zahlen und Zeichenketten). Später kommen Felder und Objekte hinzu.

1.2.2    Namen für Variablen


Für den Namen einer Variablen gelten folgende Regeln:

  • Er muss mit einem Dollarzeichen beginnen.

  • Er darf keine Leerzeichen enthalten.

  • Er darf nur aus Buchstaben und Ziffern bestehen, wobei das erste Zeichen ein Buchstabe sein muss. Es sind Groß- und Kleinbuchstaben erlaubt, zwischen denen jedoch unterschieden wird ($HokusPokus ist nicht das Gleiche wie $hokuspokus).

  • Er darf keine sprachspezifischen Zeichen wie zum Beispiel die deutschen Umlaute oder ß (»scharfes S«) enthalten.

  • Er darf als einziges Sonderzeichen den _ (Unterstrich) enthalten.

  • Er darf nicht mit einem reservierten Wort identisch sein, zum Beispiel mit einem Befehl aus der Sprache PHP.

Sie sollten selbsterklärende Namen vergeben. Dies hat den Vorteil, dass sich jeder sofort zurechtfindet, der sich später mit dem Programm befasst. Einige Beispiele sind: $Startmeldung, $Temperaturwert, $XKoordinate, $Ywert.

Diese Regeln gelten in ähnlicher Form für die Namen von Konstanten (siehe Abschnitt 1.2.8), Funktionen (siehe Abschnitt 1.7) sowie Klassen und Methoden (siehe Kapitel 4). Eine wichtige Ausnahme: Nur die Namen von Variablen beginnen mit einem Dollarzeichen.

1.2.3    Variablen für Zahlen


Betrachten Sie einmal das folgende Programm, in dem verschiedene Zahlen gespeichert und ausgegeben werden:

...

$ganzeZahl = -14;
$kommaZahl = 1.35;
$grosseZahl = 5.5e6;
$kleineZahl = 3.8e-3;
$separatorGross = 1_580_000_000;
$separatorKlein = 0.000_000_001_580;

echo $ganzeZahl . "
"
;
echo $kommaZahl . "
"
;
echo $grosseZahl . "
"
;
echo $kleineZahl . "
"
;
echo $separatorGross . "
"
;
echo $separatorKlein;
?>

Listing 1.3     Die Datei »zahl_variable.php«

Es wird eine Variable mit dem Namen $ganzeZahl eingeführt. Dieser Variablen wird der Wert -14 zugewiesen, wodurch $ganzeZahl zu einer Variablen für eine ganze Zahl wird. Bei negativen Werten wird ein Minuszeichen vorangestellt.

Die Variable $kommaZahl wird eingeführt. Ihr wird der Wert 1.35 zugewiesen, also wird $kommaZahl zu einer Variablen für eine Fließkommazahl. Dabei muss die englische Schreibweise mit einem Punkt als Dezimaltrennzeichen verwendet werden.

Eine Zahl kann auch als Exponentialzahl eingegeben werden. Diese Schreibweise eignet sich besonders für sehr große oder sehr kleine Zahlen:

  • Die Variable $grosseZahl erhält den Wert 5.5e6. Er wird gelesen als 5.5 × 10 hoch 6, also 5.5 × 1000000. Es ergibt sich der Wert 5500000.

  • Die Variable $kleineZahl erhält den Wert 3.8e-3. Er wird gelesen als 3.8 × 10 hoch -3, also 3.8 × 0.001. Es ergibt sich der Wert 0.0038.

Seit PHP 7.4 kann ein Unterstrich als Separator dienen. Ein Separator hilft bei der Eingabe von Zahlen mit vielen Ziffern, kann an beliebiger Stelle eingesetzt werden und hat keinen Einfluss auf den Zahlenwert. Lange Ziffernfolgen werden meist in Dreiergruppen unterteilt.

Mit echo lassen sich nicht nur Texte, sondern auch die gespeicherten Werte von Variablen ausgeben. Auch hier gilt: Mehrere Teile der Ausgabe werden mithilfe eines Punkts miteinander verbunden. Abbildung 1.4 zeigt die Ausgabe des Programms im Browser.

Abbildung 1.4     Zahlen

1.2.4    Rechenoperatoren für Zahlen


Bei Zahlen können Sie die Rechenoperatoren (arithmetischen Operatoren) aus Tabelle 1.1 verwenden.

Operator

Bedeutung

+

Addition

-

Subtraktion

*

Multiplikation

/

Division

%

Modulo-Operation: der Rest bei einer ganzzahligen Division

**

Potenzieren mithilfe des Exponentialoperators. Ein Beispiel: 2 ** 3, gesprochen: »2 hoch 3«. Mehr dazu folgt in Abschnitt 10.2.

Tabelle 1.1     Rechenoperatoren in PHP

Ein Beispiel mit einigen Berechnungen:

...

$zahlEins = 3 * 2 + 2.5 * 4 - 3;
$zahlZwei = 3 * (2 + 2.5) * 4 - 3;
$zahlDrei = 23 /...


Theis, Thomas
Thomas Theis ist Dipl.-Ing. für Technische Informatik. Als Softwareentwickler verfügt er über langjährige Erfahrung, ebenso als IT-Dozent unter anderem an der Fachhochschule Aachen. Er ist Autor vieler erfolgreicher Fachbücher, zum Beispiel zu den Themen Python, C#, PHP, JavaScript, C++ und Unity.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.