1.png

PHP & MySQL

Schnelleinstieg

Programmieren lernen in 14 Tagen
Einfach und ohne Vorkenntnisse

Impressum

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar.

ISBN 978-3-7475-0397-3
1. Auflage 2022

www.mitp.de

E-Mail: mitp-verlag@sigloch.de
Telefon: +49 7953 / 7189 - 079
Telefax: +49 7953 / 7189 - 082

© 2022 mitp Verlags GmbH & Co. KG

Mit freundlicher Genehmigung der HfG Schwäbisch Gmünd verwenden einige Abbildungen Emojis von OpenMoji (https://openmoji.org) – dem Open-Source Emoji- und Icon-Projekt.

Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.

Lektorat: Janina Bahlmann
Sprachkorrektorat: Claudia Fluor
Covergestaltung: Janina Bahlmann, Christian Kalkert
Covergrafik & Icons: Tanja Wehr, sketchnotelovers
Electronic Publishing: Petra Kleinwegen

Dieses Ebook verwendet das ePub-Format und ist optimiert für die Nutzung mit dem iBooks-reader auf dem iPad von Apple. Bei der Verwendung anderer Reader kann es zu Darstellungs­problemen kommen.

Hinweis des Verlages zum Urheberrecht und Digitalen Rechtemanagement (DRM)

Der Verlag räumt Ihnen mit dem Kauf des ebooks das Recht ein, die Inhalte im Rahmen des gel­tenden Urheberrechts zu nutzen. Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheherrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfälti­gungen, Übersetzungen, Mikroverfilmungen und Einspeicherung  und Verarbeitung in elektroni­schen Systemen.

Der Verlag schützt seine ebooks vor Missbrauch des Urheberrechts durch ein digitales Rechtemanagement. Bei Kauf im Webshop des Verlages werden die ebooks mit einem nicht sichtba­ren digitalen Wasserzeichen individuell pro Nutzer signiert.

Bei Kauf in anderen ebook-Webshops erfolgt die Signatur durch die Shopbetreiber. Angaben zu diesem DRM finden Sie auf den Seiten der jeweiligen Anbieter.

Inhalt

Impressum

Einleitung

E.1 Programmieren lernen in 14 Tagen

E.2 Der Aufbau des Buchs

E.3 Programmtexte und Lösungen zum Download

E.4 Fragen und Feedback

1 Erste Schritte mit PHP

1.1 Wofür wird PHP eingesetzt?

1.1.1 PHP zur Erzeugung dynamischer Webseiten

1.1.2 PHP zur Bereitstellung von Webservices

1.1.3 Kommandozeilenprogramme mit PHP

1.2 Stärken von PHP

1.3 Schwächen von PHP

1.4 Was ist für die Entwicklung mit PHP notwendig?

1.5 Quelltext und PHP-Interpreter

1.6 Kommandozeile nutzen

1.6.1 Kommandozeile starten

1.6.2 Kommandozeilen-Einmaleins

1.7 PHP installieren

1.7.1 Windows

1.7.2 macOS

1.7.3 Linux

1.8 Quelltext-Editor verwenden: Visual Studio Code

1.9 Das erste PHP-Skript ausführen

1.11 Wie entstand PHP?

1.12 Übungen

2 Variablen, Datentypen und Konstanten

2.1 Daten in einer Variablen erfassen

2.1.1 EVA: Grundprinzip der Datenverarbeitung

2.1.2 Variablen erzeugen und verwenden

2.1.3 Regeln für Variablennamen

2.1.4 Datentypen und die »dynamische Typisierung«

2.2 Einfache Datentypen

2.2.1 Daten wörtlich aufschreiben: Literale

2.2.2 Zeichenkette (String)

2.2.3 Ganzzahl (Integer)

2.2.4 Gleitkommazahl (Float)

2.2.5 Wahrheitswert (Boolean)

2.3 Der spezielle Datentyp: NULL

2.4 Der vielseitige Datentyp: Array

2.4.1 Numerisch indizierte Arrays

2.4.2 Assoziative Arrays

2.4.3 Mehrdimensionale Arrays

2.5 Datentypen umwandeln

2.5.1 Type Juggling

2.5.2 Type Casting

2.6 Programmstrukturen

2.6.1 Ausdrücke

2.6.2 Anweisungen

2.7 Konstanten

2.7.1 Literale Konstanten

2.7.2 Benannte Konstanten

2.7.3 Vordefinierte Konstanten

2.7.4 Magische Konstanten

2.8 Übungen

3 Programmablauf mit Kontrollstrukturen steuern

3.1 Programmablauf verzweigen

3.1.1 Bedingte Anweisung mit if

3.1.2 Beispiel: Passwortabfrage

3.1.3 Verzweigung mit if...else

3.1.4 Beispiel: Eintrittskarte Zoo

3.1.5 Der ternäre Operator ?:

3.1.6 Fallunterscheidung mit if…elseif...else

3.1.7 Beispiel: Bankautomat

3.2 Bedingungen formulieren

3.2.1 Vergleichoperatoren

3.2.2 Gleichheit (==) und Identität (===)

3.2.3 Logische Operatoren

3.2.4 Beispiel: Schaltjahrprüfung

3.3 Programmabschnitte mit Schleifen wiederholen

3.3.1 Arrays durchlaufen – foreach

3.3.2 Beispiel: Getränkekarte

3.3.3 Zählschleife – for

3.3.4 Beispiel: Countdown

3.3.5 Bedingte Wiederholung – while

3.3.6 Beispiel: Lostopf

3.3.7 Schleifen abbrechen – break

3.3.8 Schleife beim nächsten Durchlauf fortsetzen – continue

3.3.9 Endlosschleifen

3.4 Alternative Syntax für Kontrollstrukturen

3.5 Übungen

4 Programmierfehler und PHP-Konfiguration

4.1 Programmierfehler

4.1.1 Syntaxfehler

4.1.2 Laufzeitfehler

4.1.3 Logische Fehler

4.2 PHP konfigurieren: die php.ini-Datei

4.2.1 Was ist die php.ini-Datei?

4.2.2 Wo ist die php.ini und wie wird sie bearbeitet?

4.2.3 PHP-Einstellungen zur Laufzeit

4.2.4 PHP-Erweiterungen aktivieren

4.3 Fehlerstufen

4.4 Fehlersichtbarkeit einstellen

4.5 Übungen

5 Funktionen

5.1 Native Funktionen aus der PHP-Bibliothek verwenden

5.1.1 Signatur einer Funktion

5.1.2 Rückgabewerte

5.1.3 Mit Zahlen arbeiten: Mathematische Funktionen

5.1.4 Mit Texten arbeiten: String-Funktionen

5.1.5 Beispiel: E-Mail validieren

5.1.6 Mit Arrays arbeiten: Array-Funktionen

5.1.7 Beispiel: Passwort generieren

5.1.8 Die Unixzeit und Datumsfunktionen

5.2 Eigene Funktionen definieren

5.2.1 Hinweise auf Datentypen: Type Hints

5.2.2 Geltungsbereich von Variablen

5.3 Übungen

6 Webseiten entwickeln und veröffentlichen

6.1 Was geschieht beim Abruf einer Webseite?

6.1.1 Adressen für Computer: IP-Adressen

6.1.2 Adressbuch für Computer:
das Domain Name System (DNS)

6.1.3 Computer als Dienstleister im Internet: Host, Server und Client

6.1.4 Dienste auf einem Computer unterscheiden: Ports

6.2 Webserver auf dem eigenen Computer betreiben

6.2.1 Domainname für den eigenen Rechner: localhost

6.2.2 Lokalen Webserver starten

6.2.3 Das Dokument-Wurzelverzeichnis: Document-Root

6.2.4 Automatisch angezeigte Dateien: Index-Dateien

6.2.5 Entwicklungszyklus mit PHP auf dem Webserver

6.2.6 Infos über PHP anzeigen: phpinfo()

6.3 HTML-Grundgerüst

6.4 Anfragen und Antworten mit dem HTTP-Protokoll

6.4.1 Browser-Konsole nutzen

6.4.2 HTTP-Anfragen (Requests)

6.4.3 Header im superglobalen Array $_SERVER

6.4.4 HTTP-Antworten

6.4.5 HTTP als zustandsloses Protokoll

6.5 Webspace mieten und Webseite veröffentlichen

6.5.1 Anbieter finden

6.5.2 Webspace in der Praxis

6.6 Übungen

7 Dynamische Webseiten und Formulare

7.1 $_GET: Daten aus dem Query-String der URL

7.1.1 Der Query-String in Hyperlinks

7.1.2 Niemals Benutzereingaben vertrauen: Eingabevalidierung

7.2 Formulardaten im Query-String der URL übermitteln

7.2.1 Formular und Auswertung in einem Skript zusammenfassen

7.2.2 Niemals Eingabedaten vertrauen: Ausgabe-Maskierung

7.3 Einsatzgebiete der GET-Methode

7.4 $_POST: Formulardaten unsichtbar übermitteln

7.5 Vergleich zwischen GET und POST

7.6 Übungen

8 Mit Dateien arbeiten

8.1 Quelltext in mehreren Dateien strukturieren

8.1.1 Quelltext-Dateien einbinden und ausführen

8.1.2 Geltungsbereich von Variablen bei eingebundenen Dateien

8.1.3 Dateien außerhalb der Document-Root einbinden

8.2 Dateien schreiben und lesen

8.2.1 Dateien schreiben: file_put_contents()

8.2.2 Dateien lesen: file_get_contents()

8.2.3 Dateien als Array einlesen: file()

8.3 Dateien über das Internet laden

8.4 Datei-Uploads: $_FILES

8.4.1 $_POST und $_FILES

8.4.2 Uploads verarbeiten

8.4.3 Upload-Fehler

8.4.4 php.ini-Einstellungen

8.4.5 Datei-Art prüfen (MIME-Type)

8.5 Datei-Zugriffsrechte

8.5.1 Warum Zugriffsrechte?

8.5.2 Klassische Unix-Zugriffsrechte

8.5.3 Zugriffrechte ändern

8.6 Übungen

9 Cookies und Sessions

9.1 Cookies

9.1.1 Wie entsteht ein Cookie?

9.1.2 Cookie-Daten lesen: $_COOKIE

9.1.3 Beispiel: Sprachwechsler

9.1.4 Cookies mit Ablaufdatum

9.1.5 Cookies löschen

9.1.6 Cookies im Browser verwalten

9.2 Sessions: Benutzersitzungen

9.2.1 Eine Session starten

9.2.2 Eine Session wieder aufnehmen

9.2.3 Beispiel: Login

9.2.4 Beispiel: »Flash«-Nachrichten

9.3 Übungen

10 Einstieg in die objektorientierte Programmierung (OOP)

10.1 Grenzen der prozeduralen Programmierung

10.2 Grundbegriffe der »OOP«

10.2.1 Klasse (Class)

10.2.2 Objekt (Object)

10.2.3 Eigenschaft (Property)

10.2.4 Methode (Method)

10.2.5 Die spezielle Variable $this

10.2.6 Konstruktor: __construct()

10.2.7 Sichtbarkeit (Visibility)

10.2.8 Das Geheimnisprinzip: Daten kapseln

10.3 Vererbung

10.4 Ausnahmen (Exceptions)

10.5 Native Objektorientierung in PHP

10.5.1 Datum & Zeit: Prozedurale Programmierung

10.5.2 Datum & Zeit: Objektorientierte Programmierung

10.6 Übungen

11 Datenverwaltung mit MySQL

11.1 Was ist eine relationale Datenbank?

11.2 Was ist ein Datenbankmanagementsystem?

11.3 Was ist SQL?

11.4 Erste Schritte mit MySQL

11.4.1 Warum MySQL?

11.4.2 MySQL installieren

11.4.3 Verbindung zu MySQL aufnehmen und erste Befehle ausführen

11.5 Kommentare

11.6 Datenbanken

11.6.1 Datenbank erzeugen

11.6.2 Datenbank löschen

11.7 Tabellen

11.7.1 Tabelle anlegen

11.7.2 Spaltentypen

11.7.3 Spaltenoptionen

11.7.4 Tabellenstruktur anzeigen

11.7.5 Tabellen löschen

11.8 Bezeichner

11.8.1 Gültige Bezeichner

11.8.2 Punkt-Notation

11.9 Daten schreiben, lesen, ändern und löschen

11.9.1 Daten einfügen: INSERT INTO

11.9.2 Daten abfragen: SELECT

11.9.3 Daten ändern: UPDATE

11.9.4 Daten löschen: DELETE

11.10 Übungen

12 Fortgeschrittene Daten­bankabfragen mit MySQL

12.1 Grafische Datenbankverwaltung mit phpMyAdmin

12.2 MySQL beim Webhoster

12.3 Fortgeschrittene Datenabfragen

12.3.1 Vergleichsoperatoren

12.3.2 Logische Verknüpfungen

12.3.3 LIMIT: Abfrageergebnisse begrenzen

12.4 Alias-Namen für Tabellenspalten

12.5 SQL-Funktionen

12.5.1 Skalare Funktionen

12.5.2 Daten zusammenfassen: Aggregatfunktionen

12.6 Performance und Indizes

12.7 Übungen

13 PHP und MySQL kombinieren

13.1 PHP mit MySQL verbinden

13.1.1 Datenbankverbindung mit PDO

13.1.2 Verbindung mit MySQL herstellen

13.1.3 SQL-Befehle ausführen

13.2 Beispiel: MySQL-Version abfragen

13.3 Beispiel: Benutzer-Accounts

13.3.1 Benutzer-Tabelle anlegen

13.3.2 Benutzer registrieren

13.3.3 Login

13.3.4 Login-Bereich

13.4 Passwörter sicher speichern

13.4.1 Passwort-Hash erzeugen

13.4.2 Passwort validieren

13.5 Sicherheitslücke: SQL-Injection

13.6 Übungen

14 Abschlussprojekt: Ein Blog programmieren

14.1 Installation

14.2 Übersicht: Das fertige Blog

14.3 Verwendete Techniken

14.3.1 Webdesign mit »Bootstrap«

14.3.2 Methodenaufrufe verketten

14.3.3 Letzte eingefügte Datensatz-ID ermitteln

14.3.4 POST-Anfrage erkennen

14.3.5 Versteckte Formularfelder

14.3.6 Composer

14.4 So funktioniert das Blog

14.4.1 Verzeichnisstruktur

14.4.2 Die verschiedenen Webseiten

14.4.3 Initialisierungsaufgaben

14.5 Anwendungsbeispiele

14.5.1 Startseite mit Artikelübersicht

14.5.2 Artikel anlegen

14.5.3 Artikel als PDF downloaden

14.5.4 Feedback als E-Mail versenden

14.6 Ausblick: Was kommt als Nächstes?

14.6.1 Namespaces (Namensräume)

14.6.2 Fortgeschrittene Entwicklungsumgebung mit XAMPP

14.6.3 Reguläre Ausdrücke

14.6.4 Frameworks

14.6.5 PHP-Standardsoftware: Content Management und Co.

14.6.6 Versionsverwaltung mit git und GitHub

14.6.7 Testing mit PHPUnit

14.7 Übungen

Einleitung

E.1 Programmieren lernen in 14 Tagen

Mit diesem Buch haben Sie sich für einen einfachen, praktischen und fundierten Einstieg in die Welt der Programmierung entschieden. Sie lernen ohne unnötigen Ballast alles, was Sie wissen müssen, um PHP und MySQL effektiv für Projekte in Ihrem Berufs- und Interessensgebiet einzusetzen.

Wenn Sie Zeit genug haben, können Sie jeden Tag ein neues Kapitel durcharbeiten und so innerhalb von zwei Wochen Programmieren lernen. Alle Erklärungen sind leicht verständlich und setzen keine Vorkenntnisse voraus. Am besten lesen Sie das Buch neben der Computer-Tastatur und probieren die Programmbeispiele und Übungen gleich aus. Sie werden schnell erste Erfolge erzielen und Freude an der Programmierung finden.

E.2 Der Aufbau des Buchs

Die Kapitel bauen Schritt für Schritt aufeinander auf. Das Buch beschreibt zunächst die Einsatzgebiete von PHP und die Einrichtung Ihres Computers zur Entwicklung des ersten PHP-Programms. Anschließend lernen Sie wichtige Sprachelemente und Einstellungen von PHP kennen. Sie werden vertraut mit der Verwendung von Funktionen, der Entwicklung und Veröffentlichung dynamischer Webseiten, dem Lesen und Schreiben von Dateien, der Anbindung eines externen Webservices sowie dem Einsatz von Cookies und Sessions. Nach einer Einführung in die objektorientierte Programmierung erlernen Sie den Umgang mit einem MySQL-Datenbanksystem und der Datenbanksprache SQL. Das letzte Kapitel vereint alles Gelernte in einem Projekt zur Programmierung eines Weblogs und gibt Anregungen zur Weiterentwicklung Ihrer Programmierkenntnisse nach dem Schnelleinstieg.

Gelegentlich stoßen Sie auf kleine Aufgaben oder Zwischenfragen, die als Lernaktivierung gedacht sind. Ihr Tagespensum schließt mit praktischen Programmierübungen, in denen Sie Ihr neu gewonnenes Wissen vertiefen können. Die Lösungen zu diesen Übungen und die Antworten zu den Zwischenfragen stehen in einem Online-Kapitel zum Download zur Verfügung. Mehr dazu im nächsten Abschnitt.

Am Ende des Buchs finden Sie ein Stichwortverzeichnis, das Ihnen hilft, bestimmte Themen im Buch schneller zu finden.

E.3 Programmtexte und Lösungen zum Download

Das Buch enthält viele kleine Beispielprogramme. Sie sind als »Starterprojekte« gedacht und sollen Sie ermuntern, den Code weiterzuentwickeln und selbst etwas Neues auszuprobieren.

Der Code aller Beispielprogramme sowie die Lösungen zu den Übungen und Zwischenfragen stehen Ihnen auf der Webseite des Verlags unter www.mitp.de/0395 zum Download zur Verfügung.

Dort finden Sie außerdem ein praktisches Glossar mit den wichtigsten Fachbegriffen.

E.4 Fragen und Feedback

Unsere Verlagsprodukte werden mit großer Sorgfalt erstellt. Sollten Sie trotzdem einen Fehler bemerken oder eine andere Anmerkung zum Buch haben, freuen wir uns über eine direkte Rückmeldung an lektorat@mitp.de.

Falls es zu diesem Buch bereits eine Errata-Liste gibt, finden Sie diese unter www.mitp.de/0395 im Reiter Downloads.

Wir wünschen Ihnen viel Erfolg und Spaß bei der Programmierung mit PHP und MySQL!

Philipp Rieber und das mitp-Lektorat