====== Webprogrammierung ====== Der Kurs PHP nutzt verschiedene //Arbeitsblätter//. Lade diese herunter und bearbeite sie in den folgenden Sitzungen. ===== Einstieg: Was ist HTTP und wie funktioniert es? ===== - Erstelle eine Präsentation zum Thema Hypertext Transfer Protocol (kurz [[wpde>HTTP]]), die folgenden Begriffe erläutert: REQUEST, REQUEST METHOD, GET, POST, PUT, DELETE, HEADER, RESPONSE, RESPONSE CODE - Führe einen Beispielsitzung durch, z.B mit einem Browser oder einem telnet-client wie putty, die einen Request und Response zeigt und stelle das Ergebnis in einem Screenshots dar. - Visualisiere das Verfahren durch eine eigene Zeichnung. - Nützliche Links: [[http://openbook.rheinwerk-verlag.de/it_handbuch/13_001.html#dodtp1760af95-8b4e-4c61-899c-80192be41c86|Kap 13.1 im IT-Handbuch für Fachinformatiker]], [[http://www.ietf.org/rfc/rfc2616.txt|RFC 2616 zum HTTP-Standard]] - Ergänze deine Präsentation um einen eigenen Linktipp. ===== PHP-Programmierung: Variablen ===== Bearbeite Arbeitsblatt 1 zu Variablen. ==== Eingaben ==== Bearbeite Arbeitsblatt 2 zu Eingaben. ==== Verzweigungen ==== Bearbeite Arbeitsblatt 3 zu Verzweigeungen. Hinweis: In PHP wird die else-if-Anweisung zusammengeschrieben: $b) { echo "a is größer als b"; } elseif ($a == $b) { echo "a ist gleich groß wie b"; } else { echo "a ist kleiner als b"; } ?> ==== Logische Operatoren ==== Bearbeite Arbeitsblatt 4 zu logischen Operationen. ==== Mehrfachverzweigungen ==== Bearbeite Arbeitsblatt 5 zu Mehrfachverzweigungen. * [[http://php.net/manual/de/control-structures.switch.php|switch-case]] - Beschreibung im PHP manual. ==== Schleifen ==== Bearbeite Arbeitsblatt 6 zu Schleifen. ==== Funktionen ==== Bearbeite Arbeitsblatt 7 zu Funktionen. ==== Datenbankzugriff ==== Bearbeite Arbeitsblatt 9 zu MySQL. ==== Datenbankzugriff - Eigene Erweiterung ==== Ergänze dein Tabellenmodell um eine weitere Tabelle (oder einfacher: Spalte). Zeichne das neue ER-Modell und passe dein Programm an. Die neue Tabelle kann z. B. eine Kategorie der Informationen beinhalten, eine neue Spalte könnte das Erstellungsdatum oder ein Bild (schwieriger) beinhalten. Tipp: Der Umgang mit einem Dateiupload wird z. B. in der [[http://php.net/manual/de/features.file-upload.post-method.php|PHP Dokumentation]] beschrieben. ===== Sicherheit in Webanwendungen ===== [[http://www.dvwa.co.uk/|Damn Vulnerable Web Application (DVWA)]] ist eine verwundbare Webanwendung, mit deren Hilfe man mehr über die Sicherheit von Webanwendungen lernen kann. Mit dem Script [[https://raw.githubusercontent.com/pintman/scripts/master/bin/docker.dvwa.sh|docker.dvwa.sh]] und [[wpde>docker (Software)|docker]] lässt sich schnell ein Container aufsetzen.((Eine Sammlung von Viren aus den 1980er und 1990er Jahren hält das [[https://archive.org/details/malwaremuseum&tab=collection|Malware Museum]] bereit.)) Erläutere den folgenden Tweet und den xkcd-Comic

Now the proud director of "DROP TABLE consultants; Ltd", registered in england and wales.. http://t.co/pQ6513hC9h

— Tom Russell (@khalleth) 8. November 2013
Weitere Sicherheitslücken, dich sich nicht nur auf Webanwendungen beschränken, lassen sich z.B. mit dem Tool [[https://www.metasploit.com/|metasploit]] austesten. Dazu gibt es auch eine grafische Oberfläche mit dem Namen [[http://www.fastandeasyhacking.com/|armitage]]. Mit [[https://www.kali.org/|Kali Linux]] existiert sogar eine eigene Linux-Distribution, die den Fokus auf das Testen von Software und Infrastrukturen auf Sicherheitslücken legt. ===== Links ===== * Herr Kalt hat einen [[http://herr-kalt.de/fortbildungen/webdesign-lernen/start|Lernpfad zum Thema Webdesign]] erstellt. Hier werden die Themen HTML und CSS aber auch rechtliche Aspekte der Webentwicklung erklärt. * [[http://www.w3schools.com/php/default.asp|PHP-Tutorial]] bei w3schools.com * [[https://secure.php.net/manual/de/tutorial.php|Tutorial aus dem PHP-Handbuch]] * [[http://www.danshort.com/HTMLentities/index.php?w=latin|Entity-Tags]] * Was bedeutet dieses [[http://fun.sdinet.de/pics/white-trash-repairs-hammertime-has-been-delayed.jpg|Bild]]? * [[http://codiad.com/|CODIAD]] ist eine Entwicklungsumgebung für PHP und andere Sprachen der Webprogrammierung, die sich direkt über den Browser bedienen lässt.