Deko-Banner

Datenbankgestützte dynamische Webseiten mit php und MySQL/MariaDB

(Bilder von Wikipedia - php bzw. Wikipedia - MariaDB)
php ist die Standard-Programmiersprache zur Erstellung von dynamischen Webanwendungen. php ist frei, zahlreiche Funktionsbibliotheken für alle nur erdenklichen Zwecke stehen zur Verfügung. Ein ganz entscheidender Vorteil ist die Anbindung an viele Datenbanksysteme, somit lassen sich ganz einfach auch umfangreiche, professionelle Projekte realisieren. php läuft auf dem Webserver, nicht im Browser! Nur so ist die Anbindung an eine Datenbank sinnvoll, nur hier können grundlegende Sicherheitsüberprüfungen durchgeführt werden. Moderne Webapplikationen nutzen zwar intensiv Client-seitige Techniken wie html5, CCS3 und CSS, als Rückgrat wird aber immer serverseitige Dynamik, sehr oft auf der Basis von php, eingesetzt.
Einige große Projekte, die in php realisiert sind:
  • Content-Management-Systeme wie TYPO3 oder WordPress oder Joomla
  • MediaWiki
  • diverse Foren-Software, Chats, Blogs
  • viele eCommerce-Systeme
Im universitären und im privaten Umfeld sind datenbankgestütze Webanwendungen auf Basis von php sehr nützlich, weil sie sich leicht erstellen und auf spezielle Anforderungen zuschneidern lassen. Beispiele: Anmeldungen zu Workshops und Veranstaltungen, Personenlisten mit feingranularen Zugriffsrechten, die man selbst unter Kontrolle hat, spezielle Terminkalender, Newsletter, Verwaltung von Buchbeständen o .ä. mit Entleihungen, dynamische Erzeugung von pdf-Dokumenten.
Selbstgeschriebene php-Anwendungen arbeiten hervorragend mit dem neuen Content Management System der Universität auf Basis von TYPO3 zusammen. Beispiel: Mitarbeiter-Seite vom Lehrstuhl Richter. Die Rohdaten kommen aus der Mitarbeiter-Datenbank (in php) und werden über moderne Webtechniken wie Ajax und JSON an das CMS geliefert, das dann die Informationen entsprechend dem gewünschten Erscheinungsbild des Lehrstuhles darstellt.
In unserem 2-wöchigen, ganztägigen Kurs lernen Sie alles Wesentliche, um selbst dynamische, datenbankgestützte Webseiten mit php und der Datenbank MariaDB (MySQL) zu erstellen. Schon am ersten Tag werden Sie eine kleine funktionsfähige Applikation entwickeln. Stück für Stück werden dann die Kenntnisse vertieft, zunächst durch Vorträge des Dozenten, die dann gleich anschließend durch praktische Übungen ergänzt werden. Natürlich werden auch grundlegende Konzepte zum Design von Datenbanksystemen vermittelt - wie kann ein reales Problem sinnvoll abgebildet werden in Tabellen und Beziehungen untereinander. In den letzten Tagen des Kurses fertigt jede Gruppe (i.d.R. zwei Leute) ein eigenes kleines Projekt an, Ideen der KursteilnehmerInnen sind dabei herzlich willkommen.
Als Kurs-Voraussetzungen sollten vorhanden sein (wir rekapitulieren aber auch im Kurs nochmals diese Aspekte):
  • Kenntnisse im Erstellen einfacher statischer Webseiten in HTML.
  • Passable Programmierkenntnisse in einer beliebigen Sprache (z.B. C/C++, Java, Perl, Python, …)
  • hilfreich, aber nicht notwendig: Unix-Grundkenntnisse – auf Linux-PCs arbeiten wir.
Aufgrund der intuitiven, C/C++-ähnlichen Syntax von php eignet sich der Kurs auch für Leute, die noch wenig Programmiererfahrung haben. Die Programmieraufgaben und das Projekt werden direkt im Browser untersucht, das erleichtert gerade Unerfahrenen die Fehlersuche.

Erste Woche

Montag Dienstag Mittwoch Donnerstag Freitag
Einstimmung PHP-Grundlagen HTML-Formulare und ihre Verarbeitung mit PHP Grundlagen relationale Datenbanken Datenbanken vertieft
  • Organisatorisches, Freischaltung des dynamischen Webspace
  • Kurzübersicht PHP, HTML, SQL; HTML-Basics
  • Hello world in PHP und MySQL: eine simple Telefondatenbank mit drei Einträgen
  • Ein paar Linux-Grundlagen
  • Sicherheitsaspekte, Copyright und Datenschutz
  • Historie, Konzepte, Implementierungen
  • Online-Literatur als ständige Hilfe
  • Programmieren mit PHP:
    • Datentypen, Variablen und Arrays
    • Operatoren
    • Bedingungen und Schleifen
  • Datenübergabe mit HTML&PHP
  • Verarbeitung mit PHP
  • HTML-Formulare: Texteingaben, Textareas, versteckte Elemente
  • Auswahllisten, Checkboxen, Radiobuttons
  • Überprüfung und Verarbeitung der Eingaben mit PHP
  • Einführung in MariaDB und SQL, Behandeln der wichtigsten SQL-Befehle
  • Datenbank, Datenbank-Management, Relationen, Attribute, Schlüssel
  • Die MySQL Funktionen von PHP
  • Datenmodellierung: Entity relationship model, Normalformen
  • Aliase, SQL-Funktionen
  • Joins
nachmittags Übungsaufgaben:
  • Erster Kontakt mit Linux, für den Kurs notwendige Kommandos
  • Erstellen und Publizieren einer simplen, statischen HTML-Website
  • Erste Spielereien mit allen Kurselementen
  • Anlegen des HelloWorld-Projektes: Datenbank-Einträge, Rahmen mit php und MySQL
nachmittags Übungsaufgaben:
  • Einüben von grundlegenden Programmiertechniken in php
  • Erstellung von simplen Programmen wie
    • Mini-Taschenrechner
    • Sortieren
    • Schaltjahrrechner
nachmittags Übungsaufgaben:
  • Einüben der HTML-Formulare mit allen besprochenen Elementen
  • Erweiterung der Aufgaben vom Vortag um Usereingaben per HTML-Forms
  • Programmierung einer Maske (z.B. Registrierung) Kontrollmechanismen wie:
    • sind alle Pflichtfelder ausgefüllt?
    • entsprechen die Eingaben den Vorgaben der Maske?
    • wurden sinnvolle Daten eingegeben?
nachmittags Übungsaufgaben:
  • Erweiterung der Maske vom Vortag um eine Datenbankanbindung:
    • Speichern von Einträgen in einer selbsterstellten Tabelle
    • Auslesen von Datensätzen aus der Datenbank
    • Bearbeiten von Datensätzen aus der Datenbank

Keine Übungsaufgaben

Zweite Woche

Montag Dienstag Mittwoch Donnerstag Freitag
Fortgeschrittene PHP-Techniken Schritte in die Professionalität
  • Arrays vertieft
  • PHP-Funktionen
  • Zeichenkettenfunktionen in PHP
  • Reguläre Ausdrücke
  • PHP-Objekte
  • Mails in PHP generieren
  • CSS im Überblick
  • Header und Headerfunktionen
  • Authentisierung, Cookies und Sessions
  • dynamische Grafiken mit PHP
  • PDF-Erzeugung
  • Javascript mit AJAX
  • Zusammenfassung Sicherheitsaspekte

Projektarbeit

Projekt-Präsentationen

Montag und Dienstag Nachmittag, Mittwoch und Donnerstag ganztags Projektarbeit

Für die Fertigstellung der Projekte erhalten die Teilnehmenden eine weitere Woche Zeit.

 
Letzte Änderung: 08.04.2022 von Webmaster