1 / 68

IT-Zertifikat der Phil.Fak

Kurs 2: Allgemeine Technologien II. IT-Zertifikat der Phil.Fak. Patrick Sahle XML-Basics WS 08/09. Zeiten und Pausen IT-Zertifikat Teilnehmer WLan läuft? XAMPP läuft? Literatur? Kursprojekt, Kursziel Didaktische Mantras Skills not Knowledge Konzepte, nicht Syntax

shina
Download Presentation

IT-Zertifikat der Phil.Fak

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kurs 2: Allgemeine Technologien II IT-Zertifikat der Phil.Fak Patrick Sahle XML-Basics WS 08/09

  2. Zeiten und Pausen • IT-Zertifikat • Teilnehmer • WLan läuft? XAMPP läuft? • Literatur? • Kursprojekt, Kursziel • Didaktische Mantras • Skills not Knowledge • Konzepte, nicht Syntax • Hilfe zur Selbsthilfe (Finden Sie die Lösungen selbst!) • CPs und Arbeitsaufwand; Noten • "Klappe zu" heißt Klappe zu! • Fragen? • Organisatorisches

  3. Netzwerke • Internet-Grundtechnologien • ein Schritt zurück: HTML/CSS • Programmieren am Beispiel: PHP • Online-Datenbanken: MySQL • Kursinhalte

  4. "Pimp my Book" • http://www.injoest.ac.at/projekte/laufend/mittelalterliche_judenurkunden/ • http://www.injoest.ac.at/upload/Regesten_Text(1).pdf • http://www.injoest.ac.at/upload/Regesten_Anhang(1).pdf • Worum geht es hier? Was ist das? Wie funktioniert das? • Zielstellungen • Verwandeln Sie ein digitalisiertes Buch in eine interaktive Online-Anwendung auf der Basis von PHP und MySQL • Lösungsbeispiele mit anderen Technologien (X) • http://itzert.phil-fak.uni-koeln.de/Kurs4/Coutura/regesten.html • http://itzert.phil-fak.uni-koeln.de/Kurs4/Sahle/ • http://itzert.phil-fak.uni-koeln.de/Kurs4/Quiring/regesten.html • Lösungsbeispiele mit PHP(MySQL • http://localhost/Boettger/HaBoettgerSQL.php • Im Hinterkopf: Vergleich X-Technologien vs. PHP/MySQL (Vorteile, Nachteile, Zusammenspiel) • Beispielprojekt

  5. Referate: • Eike Steinhoff - entfällt • Kerstin Kropmanns • Netzwerke

  6. Ein Computernetz ist ein verteiltes System von autonomen und räumlich getrennten Computern, die durch Datenübertragungs- und Vermittlungseinrichtungen sowie Vermittlungseinrichtungen sowie Übertragungsmedien miteinander verbunden sind. • Funktion: verteilte Informationsspeicherung, Informationsübermittlung, Informationsverarbeitung • Kommunikation über eine Hierarchie von Protokollen • Protokoll = Menge von Regeln, die das Verhalten von Instanzen oder Prozessen bei der Kommunikation festlegt • Verbindungs-Auf und -Abbau, Formate, Codierungen, Fehlererkennung • Netzwerke

  7. Netzwerktypen: • Terminal-Netz, Peer-to-Peer-Netz, Client-Server-Netz • Netzwerke • Klassifikation von Netzen durch Übertragungskapa-zität und räumliche Aus-dehnung • PAN (Personal Area Network) • LAN (Local Area Network) • SAN (Storage Area Network) • MAN (Metroplitan Area Network) • WAN (Wide Area Network) • GAN (Global Area Network)

  8. OSI-Referenzmodell • Open Systems Interconnection Reference Model • … "geschichtete Kommunikationsarchitektur" … • Netzwerke

  9. DoD-Schichtenmodell • Department of Defense - Schichtenmodell • Netzwerke

  10. OSI-Schichten und DoD-Schichten • Netzwerke

  11. Lokale Netzwerke • HUB, Router, Switch • Server, Firewall • Zentrale Dienste, Speicherverwaltung, Nutzer- und Rechteverwaltung, Druckerverwaltung etc. • Software: Netware (z.B. Novell Netware), Groupware • Netzwerke

  12. Referate: • Tibor Toth: • Client-Server-Architektur • Alexander Recht: • Mailprotokolle • Fabian Heerbaart: • DNS • HTTP • Internet-Grundtechnologien

  13. DNS • Domain Name System • Auflösung eines Hostnamen zu einer IP-Adresse • Verteilter Verzeichnisdienst zur Verwaltung des Namensraums des Internets • Hierarchische Struktur des Namensraums (Baum) • TLD = Top Level Domain • Hierarchie der Nameserver (Software / Hardware) • Domains: Registrierungsorganisationen; IP-Adressen: Provider • Konsole: nslookup; Browser: www.whois.net, www.denic.de • Beispiel: www.i-d-e.de (whois.net - dig)  ide.uni-koeln.de • Internet-Grundtechnologien

  14. http • Hypertext Transfer Protocol • OSI-Modell: Anwendungsschicht, setzt auf Transportschicht (TCP) bzw. Vermitlungsschicht (IP) auf • HTTP-Request und HTTP-Response • Request: • Host + Anfrage • GET, POST plus weitere Request-Methoden • Response: • Statuscodes • HTTP-Header und HTTP-Body • https – sichere Kommunikation zwischen Client und Server durch zusätzliches Verschlüsselungsprotokoll zwischen den Protokollschichten http und TCP. • Beispiel: www.ide.uni-koeln.de – Firefox Live Headers • Internet-Grundtechnologien

  15. GET und POST • Übertragung zusätzlicher Informationen bei einem http-Request • GET • Informationen als Teil der URL • http://www.regesten.org/rgjoem/regesten.php?nummer=123 • Übergabe von Paaren aus Argument und Wert • POST • Informationen im Body-Teil des HTTP-Requests • Übergabe von Paaren aus Argument und Wert • Beispiel: Live Header zu localhost/Kurs/For-Schleife-1.php • Internet-Grundtechnologien

  16. Referat: • Philipp Wolfram • Ein Schritt zurück: HTML, CSS, Javascript

  17. Wissensstand? • Ggf. Schnellkurs • Grundkonzepte • Aufbau einer HTML-Datei • Struktur eines HTML-Body • Wichtige Elemente • CSS-Konzepte • Javascript, DOM • Alles, was Sie brauchen finden Sie hier: • http://de.selfhtml.org/html/index.htm • http://de.selfhtml.org/css/index.htm Nützlich: Firebug-Plugin für Firefox • Ein Schritt zurück: HTML, CSS, Javascript

  18. Erstellen Sie aus einem Regest eine HTML-Seite (mit assoziierter CSS-Datei) • Erstellen Sie eine Projekt-Startseite (mit Auswahlmenüs und ggf. Eingabefeldern) • Besprechung der Entwürfe • Übungen: HTML und CSS

  19. Referat: • Faatin Hegazi • Einstieg in PHP

  20. Rekursives Akronym: PHP Hypertext Preprocessor • PHP als Programmiersprache für dynamische Webseiten • Stärken: Einfachheit, Serverintegration, Datenbankanbindung • Interpretierte Sprache (PHP-Interpreter auf dem Server) • Schwache und dynamische Typisierung • Mögliche Einbindung in HTML-Code • HTML wird serverseitig vorverarbeitet (PHP-Teile werden ausgeführt und dabei ersetzt) • Vergleich zu Javascript und Perl • Aktuelle Version: 5.2.8 • Einstieg in PHP

  21. Grundsätzlich: PHP-Code ist Text und kann mit einem beliebigen Editor geschrieben werden • Allgemeine Editoren • vi, emacs • Editoren für andere Zwecke • Dreamweaver, oXygen • Spezielle PHP-Editoren (IDEs) • Maguma Open Studio, ZEND Studio, PHPEclipse, KDevelop, PHPEdit, NuSphere PhpED etc. • PHP schreiben: Editoren

  22. Referat: • Johannes Lenz • Grundlegendes in PHP

  23. Befehle mit ; abschließen !!! • Kommentare • //  einzeilige Kommentare (auch: #) • /* … */  mehrzeilige Kommentare • Strings in doppelten Anführungszeichen ("… hier werden Anweisungen noch ausgewertet …") und einfachen Anführungszeichen ('… hier wird wirklich alles als String behandelt …') • Schachtelung von Anführungszeichen • Grundlegendes in PHP

  24. Konstanten und Variablen • Datentypen (Zahlen, Strings, Booleans, Objekte) • Keine strenge Typisierung • Variablen können typisiert werden, Typen können umgewandelt werden, PHP versucht Funktionen anzuwenden • $variable = wert • Namenskonventionen: Keine Leerzeichen; nur Buchstaben, Zahlen und Unterstrich; reservierte Wörter! • Gültigkeitsbereich von Variablen • lokal (in Funktionen), global, superglobal (Systemvariablen, z.B. $_GET) • Arrays • numerisch indizierte Arrays • $var = array("1","2","3") auch: $array[n] = "wert" • assoziative Arrays • $var = array("nr"=>001, "datum"=>"1323") • ein- und mehrdimensionale Arrays • Grundlegendes in PHP

  25. Operatoren • arithmetisch (+ - * / ) • Inkremente/Dekremente (++ --) • logisch (AND, OR, !) • Vergleiche (>, <, <=, ==, !=) • Zuweisungen (=, viele andere) • Verkettung ( . ) ("Konkatenation") • … viele weitere • Grundlegendes in PHP

  26. Kontrollstrukturen und Schleifen • if if ( Bedingung ) { Anweisungsblock } • if-else if ( Bedingung ) { Anweisungsblock TRUE} else { Anweisungsblock FALSE} • if-elseif-else • switch switch ( Ausdruck ) { case Wert1: Anweisungsblock … break; case Wert2: Anweisungsblock … break; … default: Anweisungsblock … break; } • for for (Initialisierung; Bedingung; Änderung) { Anweisungsblock } Bsp: for ($i=1; $i<10; $i++) {echo "$i";} • while while ( Bedingung ) { Anweisungsblock } • foreach foreach (array as $wert) { Anweisungsblock } • Grundlegendes in PHP

  27. Referate: • Anna Job • Angela Brinck • PHP in HTML

  28. PHP-Code kann beliebig in einer HTML-Datei "eingestreut" werden • PHP-Code wird bei der Ausführung durch das Ergebnis des Codes ersetzt • PHP-Code kann durch HTML unterbrochen werden • PHP in HTML

  29. Keine Vorschriften, nur Empfehlungen! • Benutzen Sie sprechende Bezeichner • Trennen Sie Teil-Namen durch Unterstrich oder großen Anfangsbuchstaben • Rücken Sie hierarchisch ein (Tabs benutzen) • Kommentieren Sie! • PHP Code-Konventionen

  30. Immer ein Semikolon am Ende? • Alle Klammern geschlossen? • Anführungszeichen geschlossen? • … und korrekt geschachtelt? • Alle Variablen direkt anzeigen lassen • echo "Wert: $var"; • print_r($array); • PHP Poor Man's Debugging

  31. Hallo Welt (HelloWorld.php) • Ein Auswahlmenü • Ohne Funktionalität (For-Schleife.php) •  live-Header?! • Mit Rückmeldung (For-Schleife-1.php) • Mit Beibehaltung des ausgewählten Wertes (For-Schleife-2.php) • GET statt POST (For-Schleife-3.php) • Den submit-Button loswerden (Javascript) (For-Schleife-4.php) • Ein Suchfeld (Suchfeld.php) • Leeres Submit abfangen (todo) • Ein Array benutzen • Datum der ersten zehn Regesten; Gib zu einem angefragten Regest das Jahr zurück (todo) • PHP-Übungen

  32. Referat: • Arne Schunack (entfällt) • Funktionen in PHP

  33. Funktionen werden aufgerufen, es wird ihnen etwas übergeben und sie liefern etwas zurück • $variable = funktion (wert1, wert2, …) • Es gibt viele vorgefertigte Funktionen • Funktionsreferenz: http://de3.php.net/manual/de/funcref.php • Z.B. Dateisystem (fopen, fgets) • Z.B. Textverarbeitung, Zeichenketten (substr) • Z.B. Variablen, Arrays (shuffle) • Funktionen können selbst definiert werden • function meineNeueFunktion (Parameter1, Parameter2, …) { Anweisungen; return $rückgabe} • Einbindung externer Funktionsbibliotheken mit include • Funktionen in PHP

  34. phpinfo () • Datei auslesen • Drop-Down Jahrzehnte (mit Jahrzehnte.txt; Datei_auslesen.php) • Drop-Down Jahrzehnte (mit JahreNummern.txt; Datei_auslesen-1.php) • Vollständiges Regest in Array umwandeln • Mit explode (Explode.php, baut auf For-Schleife-4.php auf und nutzt regest1.txt) • Mit while ein assoziatives array aufbauen (ArrayAusDatei.php) • Ausgabe verschönern; Weitere Auswertungen; Kommentare an Datei anhängen lassen • Eine eigene Funktion schreiben • Schreiben Sie eine Funktion, die regest1.txt öffnet und den Inhalt als assoziatives Array zurückgibt • PHP-Übungen

  35. Referat: • Timo Coutura • MySQL – Einstieg, Allgemeines, Konzepte

  36. Zusammenfassung • MySQL – Einstieg, Allgemeines, Konzepte

  37. Tabellentypen • http://dev.mysql.com/doc/refman/5.1/de/storage-engines.html • Datentypen für Attribute / Eigenschaften / Spalten • http://dev.mysql.com/doc/refman/5.1/de/data-types.html • http://www.schmager.de/mysql.php • http://www.grammiweb.de/uebersichten/mysql-datentypen.shtml • Optionen für Spalten • NULL / NOT NULL • DEFAULT • PRIMARY KEY • AUTO_INCREMENT • MySQL – Einstieg, Allgemeines, Konzepte

  38. Beziehungen zwischen Tabellen • Konzept der Fremdschlüssel • Foreign-Key-Regeln • Sichert die "Referenzielle Integrität" einer Datenbank • FOREIGN KEY (Fremdschlüsselspalte) REFERENCES Tabelle (Spalte) • MySQL – Einstieg, Allgemeines, Konzepte

  39. Referat: Bethzy Karla Gianella Chiang - entfällt • PHPMyAdmin – Erstes Arbeiten mit SQL

  40. Zusammenfassung wichtiger Aspekte • PHPMyAdmin – Erstes Arbeiten mit SQL

  41. Übung: Wir erstellen eine erste Regestendatenbank • PHPMyAdmin – Erstes Arbeiten mit SQL

  42. Referate • Roman Quiring • Pierre Dedy • SQL als Abfragesprache

  43. Datenbank und Tabellen anlegen • CREATE DATABASE [IF NOT EXISTS] Datenbank; • CREATE TABLE [IF NOT EXISTS] Tabelle ( (Spaltendefinitionen, …) [Tabellenoptionen]) • Spaltenname [verschiedene optionale Flags] • AUTO_INCREMENT, CHARACTER SET Zeichensatz, DEFAULT Wert, NULL | NOT NULL, [PRIMARY] KEY, UNIQUE [KEY], etc. etc. • ALTER TABLE Tabelle Aktionsliste • Verschiedene mögliche Aktionen, z.B. • ADD COLUMN (Spaltendefinitionen, …) • DROP COLUMN Spaltenname • RENAME TO Neuer_Tabellenname • … etliche weitere • SQL als Abfragesprache

  44. Daten einfüllen, löschen, ändern … • INSERT Tabelle [(Spalte, …] VALUES ({Wert, …}) • (Es müssen soviele Values wie Spalten übergeben werden!) • INSERT Tabelle SET Spalte={Wert}, … • DELETE FROM Tabelle WHERE Spalte=Wert • (Löscht Zeilen) • UPDATE Tabelle SET Spalte=Wert WHERE Spalte=Wert • (Ersetzt Werte) • SQL als Abfragesprache

  45. Daten abfragen • Einfache Beispiele für SELECT • SELECT * FROM Tabelle • (alle Daten der Tabelle anzeigen) • SELECT Spalte FROM Tabelle WHERE Spalte=Wert • (suche einzelne Feldinhalte) • Auf Teile der Abfrage können Funktionen angewandt werden (z.B. count) • Ergebnisse sortieren • SELECT Spalte FROM Tabelle ORDER BY Spalte • Daten können aus mehreren Tabellen kommen … ( "joins") • SELECT * FROM Tabelle, Tabelle • SELECT * FROM Tabelle, Tabelle WHERE Tabelle.Spalte=Tabelle.Spalte • (Tabellen werden über ein gemeinsames Feld zusammengeführt) • … verschiedene Formen von "joins" • Selects können verschachtelt werden (Sub-SELECTs) • SQL als Abfragesprache

  46. Referat: • Christoph Stollwerk • PHP und MySQL (Anbindung und Kommunikation)

  47. Eigentlich ganz einfach … <html> <body> <?php mysql_connect("","root"); mysql_select_db("regesten1"); // selbst das kann man sich sparen $res = mysql_query("select * from texte"); while ($zeile = mysql_fetch_array($res)) { echo "$zeile[0] - "; echo "$zeile[Datum]<br/>"; } ?> </body> </html> SQL-Abfrage-minimal.php • PHP und MySQL (Anbindung und Kommunikation)

  48. Im einzelnen … • Kontakt aufnehmen: mysql_connect($server,$Benutzername,$Benutzerpasswort) • Verbindung schließen: mysql_close($verbindung) • Permanente Verbindung: mysql_pconnect(…) • PHP und MySQL (Anbindung und Kommunikation)

  49. Im einzelnen … • Datenbank auswählen: mysql_select_db($datenbankname) • PHP und MySQL (Anbindung und Kommunikation)

  50. Im einzelnen … • Daten aus der Datenbank holen: mysql_query(" SQL-Anfrage ") • PHP und MySQL (Anbindung und Kommunikation)

More Related