PHP und MySQL

1.1 - Einführung in PHPPHP

  • Allgemeines über PHP
  • Anwendungen von PHP
  • Vorteile von PHP
  • Ausführungsort (Client-Server-Modell)
  • Sicherheit von PHP
  1. Lernhandout

1.2 - XAMPPEnvironment

  • Was ist XAMPP?
  • Unterschied zwischen DEV und PROD
  • XAMPP Paket und Tools
  • Aufruf über localhost
  • Das /htdocs Verzeichnis
  • Übung A: Installation von XAMPP
  1. Lernhandout

1.3 - EditorenEnvironment

  • Was ist ein guter Editor?
  • Anforderungen
  • Kostenlose und -pflichtige Editoren
  • IDE
  1. Lernhandout

Hilfreiche Links

  • Hier findest du nützliche Links zum Unterricht!
  1. php.net (Benutzerhandbuch)
  2. LibreOffice Impress 16:9
  3. PDF Impress 16:9

 

 

2.1 - EinstiegPHP

  • PHP Code einbetten
  • PHP Markierung
  • HTML Konstrukt
  • Abspeichern als .php
  • Übung A: Eine Vorlage für PHP Übungen
  1. Lernhandout

2.2 - Ausgabe mit echoPHP

  • Der echo Befehl
  • Befehlsatzende mit Semikolon
  • Ausgabe von HTML mit echo
  • einfache und doppelte Anführungszeichen
  • entwerten mit Backslash
  • Zeilenschaltung mit \r\n
  1. Lernhandout

2.3 - VariablenPHP

  • Variablendeklaration mit $
  • Eigenschaften von Variablen
  • Stringverkettung
  • Ausgabe mit echo
    (Auswirkung von Anführungszeichen)
  • Gültigkeit von Variablen
  • Löschen unset
  1. Lernhandout

2.4 - PHP und MathematikPHP

  • Überblick der Operatoren
    (Addition, Subtraktion, usw.)
  • Überblick der mathematischen Funktionen
    (Wurzel, Runden, Zufallszahl, usw.)
  • Kombinieren von zwei Funktionen
  1. Lernhandout
  2. Mathematische Funktionen auf php.net

 

 

 

U 2.4 - Operatoren

  • Übung A: Palatschinken Rezept
  • Übung B: Hintergrundfarbe
  • Übung C: Optimale Bestellmenge
  1. Übungsblatt

3.1 - if VerzweigungPHP

  • Syntax von if(...) {...}
  • Vergleichsoperatoren
  • elseif(...) {...}
  • else {...}
  1. Lernhandout

3.2 - Logische OperatorenPHP

  • Was sind logische Operatoren?
  • Liste der logischen Operatoren
    (UND, ODER, Entwender-Oder)
  • Codebeispiel
  • Bedingte Gruppierung mit Klammern
  1. Lernhandout

3.3 - Wertübergabe $_POSTPHP

  • Werte mit $_POST übergeben
  • Das <form> Element
  • Die Attribute action und method
  • name Attribut des Eingabefeld
  • Werte zu sich selbst schicken
  • <form> ohne action
  • Variablenprüfung mit isset()
  1. Lernhandout

3.4 - Wertübergabe $_GETPHP

  • Werte mit $_GET übergeben
  • Aufbau einer URL
  • Auslesen des Query String
  • <form> mit method="get"
  1. Lernhandout

3.5 - Files lesenPHP

  • Lesen von Plain-Text
  • Arten von Plain-Text-Files
  • Erstelle die Datei inhalte.txt
  • Einlesen mit file_get_contents()
  • Prüfung auf Existenz
    mit file_exists()
  • Alternative is_readable()
  • Einlesen einer Webseite über die URL
  1. Lernhandout

3.6 - Files schreibenPHP

  • Schreiben in eine Datei
  • file_put_contents()
  • FILE_APPEND Flag
  • Einlesen mit file_get_contents()
  • Beispiel für ein einfaches Gästebuch
  1. Lernhandout
  2. Schreibrechte Linux/OSx

 

 

U 3.3 - $_POST Variablen

  • Übung A: Einfaches Anmeldeformular
  • Übung B: Kalorienrechner Grundumsatz
  • Übung C: Mathetrainer - Addition
  1. Übungsblatt

U 3.4 - $_GET Variablen

  • Übung A: Umsatzsteuer
  • Übung B: Palatschinken Rezept II
  • Übung C: URL Generator
  1. Übungsblatt

 

U 3.6 - Files schreiben

  • Übung A: Kommentare
  • Übung B: Farbwähler
  1. Übungsblatt

4.1 - FunktionenPHP

  • Was ist eine Funktion?
  • Wertübergabe und -übernahme
  • Syntax von function(...) {...}
  • Vergleichsoperatoren
  • Rückgabe mit return
  • Gültigkeit von Variablen
  • Globale Variablen
    $GLOBALS["name"]
  • Der exit; Befehl
  • Auslagern von PHP Code
  • Einbinden mit include
  1. Lernhandout

4.2 - FehlermeldungenPHP

  • Über das Fehlerreporting von PHP
  • Fehlerhandling für DEV und PROD
  • Alle Fehler und Warnungen anzeigen
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
  • Fehler und Warnungen abschalten
    error_reporting(0);
    ini_set('display_errors', 0);
  • Kommentarfunktion für die Fehlersuche
    // Einzeiliges Kommentar
    /* Mehrzeiliges Kommentar */
  1. Lernhandout

4.3 - TypumwandlungPHP

  • PHP und Variablentypen
  • Typ ermitteln mit gettype($var)
  • Informationen über eine Variable
    var_dump($var)
  • Typ ändern mit settype($var, 'type')
  • Weitere Typumwandlungen
    intval($var) und floatval($var)
  • Prüfung auf einen nummerischen Wert
    is_numeric($var)
  1. Lernhandout

 

 

U 4.3 - Typumwandlung

  • Übung A: Variablentabelle
  • Übung B: Typbestimmung
  • Übung C: Besucherzähler
  1. Übungsblatt

5.1 - String FunktionenPHP

  • Wozu String Funktionen?
  • Suchen und ersetzen in einem String
    str_replace()
  • Weitere Funktionen zum Ersetzen str_ireplace()
    substr_replace()
  • Groß- und Kleinbuchstaben
    strtolower()
    strtoupper()
    ucfirst()
  • Leerzeichen und Whitespace entfernen
    trim()
  1. Lernhandout

5.2 - Zeichen escapenPHP

  • Wozu Zeichen escapen?
  • In HTML-Code wandeln
    htmlentities()
  • Parameter
    ENT_QUOTES
    ENT_HTML5
    "UTF-8"
  • HTML Code dekodieren
    html_entity_decode()
  • Zeilenschaltungen wandeln
    nl2br()
  1. Lernhandout
  2. HTML Zeichenreferenz

5.3 - TextoperationenPHP

  • Zeichenlänge ermitteln mit strlen()
  • Position eines Textteil ermitteln
    strpos()
  • Einen Teilstring ausschneiden
    substr()
  1. Lernhandout

 

U 5.2 - Zeichen escapen

  • Übung A: Kommentarfunktion
  • Übung B: Schwarzes Brett
  • Übung C: Gästebuch
  1. Übungsblatt

 

6.1 - Arrays (indiziert)PHP

  • Was ist ein Array?
  • Indiziertes Array array()
  • Einen Wert ausgeben
  • Einen Wert zuweisen
  • Einen Wert hinzufügen
  • Einen Wert löschen mit unset()
  • Informationen ausgeben mit var_dump()
  1. Lernhandout

6.2 - Arrays (assoziiert)PHP

  • Syntax eines assoziierten Array
  • Werte ändern
  • Werte hinzufügen
  • Schlüssel-Wertpaare löschen
    unset()
  1. Lernhandout

6.3 - Arrays (multidim)PHP

  • Was ist ein mehrdimensionales Array?
  • Mehrdimensionales indiziertes Array
  • Mehrdimensionales assoziiertes Array
  • Zugriff auf Array-Werte mit Variablen
  1. Lernhandout

6.4 - Array FunktionenPHP

  • Array aus einem String erzeugen
    explode()
  • Element am Anfang hinzufügen
    array_unshift()
  • Element am Ende hinzufügen
    array_push()
  • Erstes Element entfernen
    array_shift()
  • Letztes Element entfernen
    array_pop()
  1. Lernhandout

6.5 - Arrays analysierenPHP

  • Elemente zählen
    count()
  • Summe von Elementwerten
    array_sum()
  • Einen Wert im Array suchen
    array_search()
  • Schlüssel-Prüfung
    array_key_exists()
  1. Lernhandout

6.6 - Arrays sortierenPHP

  • Sortieren mit sort()
  • Natürliches Sortieren mit natsort()
  • Infos ausgeben mit print_r()
  • Die Reihenfolge umdrehen mit array_reverse()
  • Zufallsgenerator für Arrays
    shuffle()
  1. Lernhandout

6.7 - Arrays und JSONPHP, JSON

  • Über die JavaScript Objekt Notation
  • In JSON wandeln mit json_encode()
  • In ein PHP Array wandeln mit
    json_decode()
  • Array-Wertübergabe mit POST und JSON
  1. Lernhandout

 

 

U 6.3 - Arrays (multidim)

  • Übung A: Die zwölf Monate
  • Übung B: Wochentage
  • Übung C: Obstvergleich
  1. Übungsblatt

 

 

 

U 6.7 - Arrays und JSON

  • Übung A: Newsroom
  • Übung B: Fünf-Sterne-Bewertung
  • Übung C: Fünf-Sterne-Bewertung II
  1. Übungsblatt

7.1 - for SchleifePHP

  • Was ist eine Zählschleife?
  • Die Syntax einer Zählschleife
    for(Start, Bedingung, Schritte) {...}
  • Einen Schritt überspringen
    continue;
  • Die Schleife verlassen
    break;
  1. Lernhandout

7.2 - while SchleifePHP

  • Was ist eine while-Schleife?
  • Syntax einer kopfgesteuerten Schleife
    while(Bedingung) {...}
  • Syntax einer fussgesteuerten Schleife
    do{...} while(Bedingung)
  • Endlosschleife mit Abbruchbedingung
    break;
  1. Lernhandout

7.3 - foreach SchleifePHP

  • Was ist eine foreach-Schleife?
  • Syntax einer foreach Schleife
    foreach($array as $wert) {...}
  • Syntax einer foreach Schleife mit Schlüssel
    foreach($array as $key => $wert) {...}
  • Verschachtelte foreach Schleife für mehrdimensionale Arrays
  1. Lernhandout

U 7.1 - for Schleife

  • Übung A: Multiplikationstabelle
  • Übung B: Schabrett Muster
  • Übung C: Mathe-Trainer - Bruchrechnung
  • Übung D: Römische Zahlen
  1. Übungsblatt

U 7.2 - while Schleife

  • Übung A: Primfaktoren-Zerlegung
  • Übung B: Bingo
  1. Übungsblatt

U 7.3 - foreach Schleife

  • Übung A: Fünf-Sterne-Bewertung II
  • Übung B: Einkaufsliste
  • Übung C: Hyperlinks einer Webseite
  1. Übungsblatt

8.1 - ZeitPHP

  • Wie arbeitet PHP mit der Zeit?
  • Was ist der UNIX-Timestamp?
  • Die aktuelle Zeit ermitteln mit time();
  • Mit dem UNIX-Timestamp rechnen
  • Den Timestamp eines bestimmten Datums ermitteln
    strtotime()
  • Das lokale Datum mit getdate()
  1. Lernhandout

8.2 - DatumPHP

  • Einen UNIX-Timestamp lesbar machen
  • Das date(); Objekt
  • Formatieren mit date();
  • Parameter-Liste für das Zeitmuster
  1. Lernhandout

8.3 - Zeit MethodenPHP

  • Wochentag und Monat in Deutsch
  • Die Alternative: strftime()
  • Zeitzonen
    date_default_timezone_set()
  • UNIX-Timestamp mit Mikrosekunden
    microtime(true)
  1. Lernhandout
  2. Zeitzonen (php.net)

 

 

U 8.3 - Zeit Methoden

  • Übung A: Welcher Wochentag
  • Übung B: Sternzeichen
  1. Übungsblatt

9.1 - headerPHP

  • Was ist ein HTTP-Header?
  • PHP Redirect (Weiterleitung)
    header("Location: URL")
  • Der exit; Befehl
  • Ein Redirect zum Schutz eines Verzeichnisses
  • Cache-Control (Zwischenspeichern verhindern)
  • Einen Download erzwingen
  1. Lernhandout

9.2 - CookiesPHP | JS

  • Was sind Cookies?
  • Cookies definieren mit setcookie()
  • Ein Cookie ausgeben
  • Cookies löschen
  • Cookies und JavaScript
  1. Lernhandout

9.3 - SessionPHP

  • Was ist eine Session?
  • Der Browser muss Cookies akzeptieren!
  • Session-ID für die Sitzung
  • Eine Session starten mit session_start()
  • Die Supergloblen $_SESSION Variablen
  • Session-Variablen löschen
  • Session-ID auslesen bzw. setzen
    session_id()
  • Session-Status session_status()
  1. Lernhandout

9.4 - MailPHP

  • Eine eMail versenden mit mail()
  • Syntax der mail() Funktion
  • Der header eine eMail
  • Eine HTML eMail versenden
  1. Lernhandout

 

 

U 9.3 - Session

  • Übung A: Anmeldescript
  • Übung B: Passwortschutz mit .htaccess
  1. Übungsblatt
  2. .htaccess Passwortschutz

U 9.4 - Mail

  • Übung A: Kontaktformular
  • Übung B: Verfikationslink
  1. Übungsblatt

10.1 - phpMyAdmin EinstiegMySQL

  • Wozu Datenbanken?
  • Was ist SQL?
  • xampp und phpMyAdmin
  • phpMyAdmin starten
    http://localhost/phpmyadmin/
  • Eine neue Datenbank anlegen
  • Kollation (Zeichensatz) der Datenbank
  • Die Konsole von phpMyAdmin
  • Datenbank anlegen mit
    CREATE DATABASE schulDB;
  • SQL Befehle sind Case-Insensitiv
  1. Lernhandout

10.2 - phpMyAdmin BenutzerMySQL

  • Benutzerrollen (root)
  • Einen neuen Benutzer anlegen
  • Unterscheidung von PROD und DEV
  • Benutzer in phpMyAdmin anlegen
  • Anmeldeinformationen definieren
  1. Lernhandout

10.3 - phpMyAdmin TabelleMySQL

  • Relationale Datenbanken
  • Aufbau einer Tabelle
  • Fachbegriffe: Entität, Attribute, Datensatz
  • Eine Tabelle anlegen
  • Datentypen (int, varchar, timestamp)
  • Primärschlüssel (primary key)
  • Automatisches Hochzählen (auto-increment)
  • Standard für Timestamp CURRENT_TIME
  1. Lernhandout

10.4 - phpMyAdmin TypenMySQL

  • Warum Typen definieren?
  • Tabelle mit den wichtigsten Typen
  • SQL Befehl um eine Tabelle zu erstellen
  1. Lernhandout

10.5 - phpMyAdmin EingabeMySQL

  • Werte in die Tabelle eingeben
  • Die phpMyAdmin Eingabemaske
  • Einschränkungen und Zusätze der Spalten
  • Vier Benutzer anlegen
  1. Lernhandout

10.6 - phpMyAdmin StrukturMySQL

  • Tabellenstruktur ändern
  • Mögliche Aktionen der Strukturveränderung
  • Eine neue Spalte hinzufügen
  • Eine Tabelle anzeigen
  • Werte im nachhinein ändern
  1. Lernhandout

10.7 - phpMyAdmin KonsoleMySQL

  • Die Konsole von phpMyAdmin
  • SQL Befehle sind Case-Insensitve
  • SQL Befehle absetzen/abrufen
  • SELECT Abfrage
  • Einen Datensatz hinzufügen mit INSERT
  • Einen Wert ändern mit UPDATE
  1. Lernhandout

10.8 - phpMyAdmin ExportMySQL

  • Mit phpMyAdmin exportieren
  • Exportieren einer Tabelle im SQL Format
  • SQL-Kommentare
  • Weitere Export-Formate
    z. B. CSV, PDF, PHP Array, JSON usw.
  1. Lernhandout

 

 

 

 

U 10.5 - phpMyAdmin Eingabe

  • Übung A: Fischereiverein Datenbank
  • Übung B: Fischereiverein Mitgliedertabell
  • Übung C: Fischereiverein Zahlungen
  1. Übungsblatt

U 10.6 - phpMyAdmin Struktur

  • Übung D: Fischereiverein neue Mitglieder
  • Übung E: Fischereiverein eMail-Adressen
  • Übung F: Fischereiverein Daten ändern
  1. Übungsblatt

 

 

11.1 - MySQL CREATE USERMySQL

  • Welche SQL-Datenbank?
  • Zusammenhängendes Beipspiel Personalabteilung
  • Eine neue Datenbank anlegen
    CREATE DATABASE
  • Eine Datenbank auswählen mit USE
  • Einen neuen Benutzer anlegen
    CREATE USER
  • Dem Benutzer ein Passwort geben
    IDENTIFIED BY
  • Alle Rechte einem Benutzer geben
    GRANT ALL PRIVILEGES ON
  • Einen Benutzer löschen
    DROP USER
  • Eine Datenbank löschen
    DROP DATABASE
  1. Lernhandout
  2. 111_DBanlegen.sql
  3. 111_DBloeschen.sql

11.2 - MySQL CREATE TABLEMySQL

  • Eine Tabelle in MySQL
  • Typenhinweis
  • Eine Tabellenstruktur erstellen
    CREATE TABLE
  • Automatisches Hochzählen
    AUTO_INCREMENT
  • Primärschlüssel definieren
    PRIMARY KEY
  • Einschränkung mit UNIQUE
  • Standardwerte mit DEFAULT
  • aktueller Timestamp
    CURRENT_TIMESTAMP
  • Eine Tabelle löschen
    DROP TABLE
  1. Lernhandout
  2. Lernhandout MySQL Typen
  3. L112_Tabelle_anlegen.sql

11.3 - MySQL INSERTMySQL

  • Daten hinzufügen mit INSERT INTO
  • Syntax von INSERT INTO
  • Die gesamte Tabelle anzeigen
    SELECT * FROM
  • NULL-Einträge
  • Mehrere Datensätze auf einmal einfügen
  • Stammdaten-Tabelle mit Werten füllen
  1. Lernhandout
  2. L113_Mitarbeiter.sql
  3. L113_Einfuegen.sql

11.4 - MySQL SELECTMySQL

  • SELECT FROM Syntax
  • Ausgabe von Spalten einer Tabelle
  • Die Ausgabe aufsteigend sortieren
    ORDER BY ASC
  • Die Ausgabe absteigend sortieren
    ORDER BY DESC
  • Sortierergebnisse kombinieren
  • Eine Ausgabeanzahl limitieren mit LIMIT
  • Nur eindeutige Werte (ohne Duplikate) ausgeben
    SELECT DISTINCT
  1. Lernhandout

11.5 - MySQL WHEREMySQL

  • Die WHERE Klausel
  • Ausgabe eines bestimmten Datensatz mit
    WHERE Klausel
  • Ausgabe mehrere Datensätze mit
    WHERE Klausel
  • Operatoren (= ist gleich, < kleiner, > großer usw.)
  • Wertebereich definieren mit BETWEEN
  • Zwei oder mehr Bedingungen AND, OR
  1. Lernhandout

11.6 - MySQL LIKEMySQL

  • Mustererkennung mit LIKE
  • Platzhalter (Wildcards, Joker)
  • Suche mit einem Platzhalter
    für ein einziges Zeichen
  • Suche mit einem Platzhalter
    für mehrere Zeichen
  • Suche mit Platzhaltern in einem Datum
  • Suche mit einer Liste
    IN Schlüsselwort
  • Unverbeinbarkeit von IN und LIKE
    Lösung: der OR Operator
  1. Lernhandout

11.7 - MySQL UPDATEMySQL

  • Syntax des UPDATE SET Befehl
  • Einen Datensatzwert ändern
  • Eine neue Spalte hinzufügen
    mit ALTER TABLE ADD
  • Eine Spalte mit gleichen Wert füllen
  • Werte aufgrund einer WHERE Klausel ändern
  • UPDATE und mathematische Operation (Addieren)
  1. Lernhandout
  2. L117_UPDATE.sql

11.8 - MySQL JOINMySQL

  • Datenbankmodellierung
  • 1:n Verbindung
  • UML Darstellung
  • Abfrage über zwei Tabellen
    JOIN ON
  • Abfrage über zwei Tabellen mit
    WHERE Klausel
  1. Lernhandout
  2. L118_Kontakte.sql

11.9 - MySQL DELETEMySQL

  • Syntax des DELETE Befehl
  • Löschen eines bestimmten Datensatzes
  • Löschen bei einem NULL eintrag
  • Eine Spalte löschen
    ALTER TABLE ... DROP COLUMN
  • Einen Spaltentyp ändern
    ALTER TABLE ... MODIFY
  • Eine Tabelle löschen mit DROP TABLE
  • Den gesamten Tabelleninhalt löschen
  • Alternative: TRUNCATE
  1. Lernhandout
  2. L119_Sicherung.sql

 

U 11.2 - MySQL CREATE TABLE

  • Übung A: Friseurdatenbank
  • Übung B: Produkt-Tabelle
  • Übung C: Mitarbeiter-Tabelle
  1. Übungsblatt

U 11.3 - MySQL INSERT

  • Übung D: Daten für die Produkte Tabelle
  • Übung E: Daten für die Mittarbeiter Tabelle
  • Übung F: Datensätze importieren
  1. Übungsblatt
  2. Friseurdaten.sql

U 11.4 - MySQL SELECT

  • Übung G: Ausgabe aller Datensätze
  • Übung H: Ausgabe sortiert nach Geburtsdatum
  • Übung I: Ausgabe sortiert nach Preis (absteigend)
  • Übung J: Unterschiedliche Warengruppen
  1. Übungsblatt

U 11.5 - MySQL WHERE

  • Übung K: Suche über die ID
  • Übung L: Suche über das Geschlecht
  • Übung M: Ausgabe aller Mitarbeiterinnen nach Geburtsdatum
  • Übung N: Suche nach allen Männer in Vollzeitbeschäftigung
  1. Übungsblatt

U 11.6 - MySQL LIKE

  • Übung O: Suche nach Cremeoxyd
  • Übung P: Suche nach Antidandruff
  • Übung Q: Suche nach Mitarbeitern die im Mai Geburtstag feiern
  • Übung R: Suche mit zwei Bedingungen
  1. Übungsblatt

U 11.7 - MySQL UPDATE

  • Übung S: Preisänderung
  • Übung T: Änderung der Warengruppe
  • Übung U: Neue Spalte Rabatt
  • Übung V: Änderungen der Rabatte
  • Übung W: Erhöhung der Rabatte
  1. Übungsblatt

U 11.8 - MySQL JOIN

  • Übung X: Lager-Tabelle
  • Übung Y: Join-Abfragen
  1. Übungsblatt
  2. FriseurLager.sql

U 11.9 - MySQL DELETE

  • Übung Z: Löschaufträge
  1. Übungsblatt
  2. FriseurDBSicherung.sql

12.1 - mysqli_connect()PHP MySQL

  • Zugriff auf eine Datenbank mit PHP
  • mysqli_connect()
  • Die MedienDB anlegen
  • Benutzer für die MedienDB
  • Verbindung zur MedienDB mit PHP
  • Rückgabe des mysqli_connect Objekt
  • Fehlermeldungen mit
    mysqli_connect_error()
  1. Lernhandout
  2. MedienDB.sql
  3. Medienbetriebe.sql

12.2 - mysqli_query()PHP MySQL

  • SQL Befehle als String formulieren
  • Einen SQL Befehl absetzen
    mysqli_query()
  • In ein Array speichern
    mysqli_fetch_all()
  • Datenbankverbindung schließen
    mysqli_close()
  • Parameter von mysqli_fetch_all()
  • Ein Array mit einer Zählschleife ausgeben
  1. Lernhandout

12.3 - mysqli_num_rows()PHP MySQL

  • Anzahl der Datensätze ermitteln
    mysqli_num_rows()
  • Anzahl der betroffenen Zeilen
    mysqli_affected_rows()
  1. Lernhandout

12.4 - mysqli_fetch_assoc()PHP MySQL

  • Datensätze einzeln abfragen mit
    mysqli_fetch_assoc() und while
  1. Lernhandout

12.5 - Beispiel SELECTPHP MySQL HTML

  • Einfaches Suchformular in HTML
  • Suchstring erzeugen (trim, Platzhalter)
  • SELECT-Abfrage mit LIKE
  • Ausgabe des Sucheregenis
  • Links für Löschen und Bearbeiten
    mittels URL-Query (GET)
  1. Lernhandout
  2. Kap12_Beispiel.zip

12.6 - Beispiel DELETEPHP MySQL

  • Löschen eines Datensatz
  • Auswerten einer GET Variable
  • Löschbefehl (DELETE) absetzen
  • Löschergebnis prüfen mit
    mysqli_affected_rows()
  1. Lernhandout
  2. Kap12_Beispiel.zip

12.7 - Beispiel UPDATEPHP MySQL HTML

  • Einen Datensatz aktualisieren
  • UPDATE SQL Befehl
  • Spaltenwerte einem Input-Field zuweisen
  1. Lernhandout
  2. Kap12_Beispiel.zip

12.8 - Beispiel INSERTPHP MySQL HTML

  • Ein einfaches Eingabeformular
  • INSERT SQL Befehl
  1. Lernhandout
  2. Kap12_Beispiel.zip

 

 

 

 

 

 

 

U 12.8 - Beispiel PHP & MySQL

  • Übung A: Benutzerverwaltung
  1. Übungsblatt

13.1 - DateifunktionenPHP

  • Verzeichnis erstellen - mkdir()
  • Datei umbenennen - rename()
  • Verzeichnis umbenennen - rename()
  • Datei kopieren - copy()
  • Datei löschen - unlink()
  • Verzeichnis löschen - rmdir()
  1. Lernhandout

13.2 - DateirechtePHP

  • Zugriffsrechte in Linux
  • Besitzer, Gruppe und Alle
  • Rechte:
    Lesen = r bzw. 4
    Schreiben = w bzw. 2
    Ausführen = x bzw. 1
  • Systemkonfiguration beachten
  • Numerische Zugriffsrechte über ein OKTAL
  • Rechte ändern mit chmod()
  • Rechte kurzzeitig ändern
  1. Lernhandout

13.3 - DateiinformationenPHP

  • Übungsdatei zufall.txt erstellen.
  • Existenzprüfung
    file_exists()
    is_file()
    is_readable()
    is_executable()
    file_writeable()
  • Dateigröße filesize()
  • MIME-Typ mime_content_type()
  • Pfadinfos pathinfo()
  • Weitere Infos stat()
    z. B. Zugriffdatum
  1. Lernhandout

13.4 - DateiuploadPHP HTML

  • Eine Datei hochladen
  • Form Attribut
    enctype="multipart/form-data"
  • Fild Attribut type="file"
  • Das $_FILES Array
  • move_uploaded_file() Funktion
  • Die $_FILES Eigenschaften
    name, type, size, tmp_name, error
  1. Lernhandout

13.5 - Verzeichnis RekursionPHP

  • Was ist eine Rekursion?
  • Beispiele für Rekursionen
  • Rekursives Auslesen eines Verzeichnis
  • Verzeichnis-Handler opendir()
  • Verzeichnis lesen mit readdir()
  • Erläuterungen zum Beispiel
  1. Lernhandout
  2. Beispiel_Tree.zip

 

 

 

U 13.4 - Dateiupload

  • Übung A: Sharepoint
  • Übung B: CSV-Datei in einer Tabelle
  1. Übungsblatt

 

14.1 - ObjektorientiertPHP

  • OOP: Objektorientierte Programmierung
  • Vorteile der OOP
  • Klassen, Eigenschaften und Methoden
  • Schlüsselwort class
  • Instanziierung mit new
  • OOP Beispiel: Bankkonto
  • Mit -> Pfeil auf
    Methoden und Eigenschaften zugreifen
  1. Lernhandout

14.2 - SimpleXMLPHP XML

  • Über XML (Extensible Markup Language)
  • Das SimpleXML Objekt
  • XML String innerhalb von PHP
  • XML String als Objekt vereinbaren mit
    simplexml_load_string()
  • XML Knotenwert ausgeben
  • XML Knotenwert verändern
  • Als .xml Datei speichern mit
    saveXML()
  • Eine .xml Datei laden mit
    simplexml_load_file()
  • Aus XML ein assoziatives Array
    erstellen mit JSON
  1. Lernhandout

U 14.1 - Objektorientiert

  • Übung A: OOP Sichtbarkeiten
  • Übung B: OOP Konstruktor
  • Übung C: OOP Vererbung
  • Übung D: OOP GET und SET Methoden
  1. Übungsblatt

 

15.1 - Image und GD2PHP

  • Bild als PHP File darstellen
  • header und Content-type
  • Ein jpeg Bild laden
  • Bildbreite und -höhe ermitteln
    imagesx() und imagesy()
  • Bild skalieren imagescale()
  • jpeg Bild anzeigen mit imagejpeg()
  • Speicher freigeben imagedestroy()
  • Bild speichern und Qualität ändern
    Weitere Parameter von imagejpeg()
  • Einbinden in den HTML Code mit img
  1. Lernhandout
  2. adam.jpg

15.2 - PNG skalierenPHP

  • Ein PNG mit transparentem Hintergrund skalieren
  • Das Problem mit imagescale()
  • Ein PNG Header
  • Erstellen eines neuen leeren Bildes
    imagecreatetruecolor()
  • Alphakanal für die Transparenz definieren
  • Bild kopieren mit imagecopyresized()
  • PNG darstellen imagepng()
  1. Lernhandout
  2. drucker.png

15.3 - Text auf ImagePHP

  • Einen Text platzieren mit
    imagettftext()
  • Alternative: imagefttext()
  • Beispiel mit Erläuterungen
  1. Lernhandout
  2. autowrack.jpg
  3. concert.ttf

15.4 - TortendiagrammPHP

  • GD- und Imagefunktionen
  • Ein dynamisches Tortendiagramm
  • imagefilledarc()
  1. Lernhandout
  2. mono.ttf

 

 

U 15.3 - Text auf Image

  • Übung A: Bild-Anzeige
  • Übung B: Image Resizer
  • Übung C: Einfaches Captcha
  1. Übungsblatt

 

16.1 - Sicherheit EingabePHP

  • BENUTZEREINGABEN
  • Kritische Zeichen escapen
  • Sicherheitsrisiko: Superglobale Variablen
    $_GET
  • Sinn der Eingabe
  • Typ einer Eingabe prüfen
  • Wert einer Eingabe prüfen
  • Division durch Null
  • HTML Elemente sinnvoll nutzen
  • Prüfung mit if(isset())
  1. Lernhandout

16.2 - Sicherheit XSSPHP

  • CROSS-SITE SCRIPTING (XSS)
  • XSS am Beispiel JavaScript
  • PHP Code mit ungefilterter Eingabe/Ausgabe
  • Ein unerwünschtes Dialogfenster
  • Immer neu laden (Endlos)
  • Umleitung zu einer fremde Website
  • Umleitung mit Cookie-Informationen
  • Zwischenspeichern (z. B. MySQL, JSON)
  • Gefahr: Einbinden von fremden Code
    z.B. include, script src, iframe, link, img usw.
  1. Lernhandout

16.3 - Sicherheit SQLPHP SQL

  • DATENBANKSICHERHEIT
  • Einschleusen von SQL Code
    (SQL Injection)
  • Problem des einfachen Apostroph
  • Andere SQL Zeichen
  • SQL Zeichen escapen
    str_replace()
    mysqli_real_escape_string()
  • Weitere Sicherheitsmaßnahmen
    Rollenbasierte Berechtigungen
    Starke Passwörter
    Datenbank-Administration
    PHP-Sicherheitseinstellungen
  1. Lernhandout

16.4 - Sicherheit PasswörterPHP

  • PASSWORT SICHERHEIT
  • Über sichere Passwörter
  • Passwörter verschlüsseln
  • Sichere Übertragung von Passwörtern
  • Verschlüsselungsalgorithmen
  • Password Hashing API
  • HASH generieren mit
    passwort_hash()
  • HASH und Passwort prüfen mit
    passwort_verfiy()
  • Zusätzlicher Schutz (openSSL, Kryptographie)
  1. Lernhandout

16.5 - SicherheitshinweisePHP

  • Formel: Denkfaulheit == Sicherheitsrisiko
  • Unnötige Technologien abschalten!
  • Dateirechte vergeben!
  • Intelligente Serveradministration!
  • Zertifikate verwenden!
  • Fehler und Warnungen in der PROD abschalten!
  • Saubere Programmierung!
  • Verzeichnisse schützen!
  • Scriptsicherheit erhöhen mit php.ini!
  • Website testen!
  1. Lernhandout

 

 

 

 

 

 

 

U 17.1 - Projekte

  • Projekt A: Webchat
  • Projekt B: Social-Media-Plattform
  • Projekt C: Sicherheitskonzept
  • Projekt D: Springerschach
  • Projekt E: Freies Projekt
  1. Übungsblatt

U 17.2 - Projekte Wirtschaft

  • Projekt A: Kassabuch
  • Projekt B: Anlagenbuchhaltung
  • Projekt C: Ticketverkauf
  • Projekt D: Finanzmathematik
  • Projekt E: Freies Projekt
  1. Übungsblatt

 

 


PHP © Thomas Maier, 2020 Graz |