Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -

Ähnliche Präsentationen


Präsentation zum Thema: "DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -"—  Präsentation transkript:

1 DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -

2 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Ihre Vorkenntnisse Grundlagen der Programmierung beherrschen, d.h. über Kenntnisse in wenigstens einer Programmiersprache Einfache Grundkenntnisse in HTML verfügen, d.h. einfachste Webseiten in HTML schreiben können Grundlagen relationaler Datenbanken und der DB-Abfragesprache SQL kennen Netzwerk- und Unix-Kenntnisse

3 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Lernziele und Inhalt Lernziele: Fähigkeit zum Aufbau eines einfachen LAMP (Linux, Apache, MySQl, PHP) –Systems mit netzwerkfähiger Datenbank auf einem Datenbankserver. Entwicklung einer einfachen Webapplikation mit PHP und MySQL. Nutzung von PHP-Anwendungen Inhalte: Aufbau eines LAMP (Linux, Apache, MySQl, PHP) – Systems SAMBA Installation Windows-Zugriff auf LINUX-Dateisystem mittels SAMBA Aufbau von Websites (Wiederholung/Steilkurs) Datenbanksystem MySQL Einführung in die Skriptsprache PHP Installation und Nutzung von PHP-Anwendungen

4 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Ihre Arbeitsumgebung Srv0862.fhvr-aiv.de APACHE PHP SAMBA /home/ /home/ /home/ pcXY.fhvr-aiv.de Micro$oft WinXY PUTTY (SSH-Client) Editor Browser Zugriff über SAMBA Login per SSH To do:> ssh srv.fhvr-aiv.de > Kennung und Homeverzeichnis > smbpasswd > Zugriff mittels SAMBA

5 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Ihr Homeverzeichnis auf srv0862 /home/200400xy htdocs hello.php To do:http://srv0862.fhvr-aiv.de/ Editor starten hello.php editieren

6 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. hello.php Hello Hof "; endfor; ?> Hello Hof Hello Hof Hello Hof Hello Hof Hello Hof Hello Hof

7 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Was ist und was kann PHP4? PHP4 ist eine in HTML eingebettete Skriptsprache zur serverseitigen Erzeugung von dynamischen Webseiten Dateinamenserweiterung.php statt.html Die festen Anteile einer Webseite werden durch bekannte HTML- Befehle erzeugt, die variablen Anteile werden durch Sprachelemente der PHP-Skriptsprache erzeugt. Kennzeichnung der PHP-Skriptelemente durch besondere Tags PHP4 kann mit einer Vielzahl von Datenbanken kommunizieren (z. B. Informix, Oracle, MySQL und ODBC-Datenbanken Mit PHP4 können Datenbankinhalte graphisch als Websites aufbereitet und dargestellt, aber auch über webbasierte Oberflächen modifiziert und upgedatet werden PHP4 ist ein ideales Werkzeug zur professionellen Entwicklung von dynamischen Websites

8 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Die Einbettung in HTML 1. Reines HTML Aber den Strichpunkt nicht vergessen 2. Reines HTML Aber den Strichpunkt nicht vergessen 3. Reines HTML echo "Thats PHP4 mittels Script-Tag"; Aber den Strichpunkt nicht vergessen SGML-konforme Einbettung (erfordert Konfigurationseinstellung short_open_tag)

9 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Aufgabe 1 HTML - Wiederholung

10 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Erstes PHP - Skript Beispiel

11 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Ausführung von PHP-Skripts Von einem Internetbrowser aus wird eine URL mit Dateinamensendung.php abgerufen. Der Webserver ist so konfiguriert, dass er angeforderte Dateien mit Endung.php an den PHP-Interpreter übergibt. Der PHP-Interpreter verarbeitet die PHP-Dateien, indem er den eingebetteten PHP-Code ausführt und aus der PHP-Datei eine HTML-Seite erzeugt. Die erzeugte HTML-Seite sieht aus wie die PHP-Datei, nur sind die Teile innerhalb der PHP-Tags durch Text ersetzt, der durch eingebettete PHP-Ausgabeanweisungen generiert wurde, z.B. durch den Befehl echo. Diese HTML-Seite wird an den Webserver übergeben, der diese dann an den Internetbrowser zur Anzeige überträgt.

12 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax. Sie können ganz unterschiedlich aufgebaut sein. Alles was einen Wert hat, kann als Aufdruck aufgefasst werden. Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet. Dies ist ähnlich der Sprachen C, Perl oder JavaScript. Ausdrücke und Anweisungen Beispiele: 1000 $zahl = 1000; $b = $a; function ausdr_beisp() {return 1000;} Beispiele:

13 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Textausgabe mit echo Der Text, der ausgegeben werden soll, muss in Anführungsstrichen stehen, da der Server sonst versucht, ihn als PHP-Befehl zu interpretieren. Dieses Vorgehen wird Quoten oder Quoting genannt. Bei den Anführungsstrichen gibt es zwei verschiedene: einmal das einfache,,'`` und das doppelte,,"``. Es gibt einen Unterschied zwischen den beiden: Bei den doppelten Anführungsstrichen versucht der Server, den Text zu interpretieren; bei den einfachen hingegen behandelt er ihn nicht speziell, sondern gibt ihn z.B. direkt aus. $var = 123; echo 'Die Variable $var hat den Wert 123!\n'; echo "Die Variable $var hat den Wert 123!\n"; Das erste echo gibt,,Die Variable $var hat den Wert 123!\n`` aus, das zweite hingegen,,Die Variable 123 hat den Wert 123!`` echo "Say \"Hello World\" my friend"; Die Ausgabe bei diesem echo ist ``Say ``Hello World!`` my friend``. Wie man sieht, müssen doppelte Anführungsstriche, die ausgegeben werden sollen, besonders gekennzeichnet werden. Dieses Vorgehen nennt man Escapen.

14 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Textausgabe mit print Neben dem echo- gibt es auch den print-Befehl. Im Endeffekt leisten beide dasselbe: Sie geben Text aus. echo ist ein internes Sprachkonstrukt, wohingegen print ein Ausdruck (Expression) ist. echo kann mehrere Argumente haben, die nicht in Klammern stehen dürfen. print kann nur genau ein Argument haben. Alle folgenden Anweisungen sind zulässig und geben dasselbe aus: $var1 = "Hallo";$var2 = "Welt!"; echo $var1," ",$var2; echo $var1." ".$var2; print ($var1." ".$var2); $res = print ($var1." ".$var2);

15 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Kommentare Für Kommentare gibt es zwei Möglichkeiten der Schreibweise: echo "Noch kein Kommentar!"; /* Dies ist ein Kommentar,der auch ueber mehrere Zeilen gehen kann */ // Dies ist wieder ein Kommentar, // der jeweils bis zum Ende der Zeile geht echo "Kein Kommentar mehr!"; Die erste und die letzte Zeile sind Befehle, der Rest sind Kommentare.

16 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Variablen PHP4 ist eine nicht-typisierte Sprache. Dennoch kennt PHP4 die Typen integer, double, boolean, string und array. PHP erfordert keine Datentaypdefinition. Der Typ wird durch den Zusammenhang bestimmt, in dem die Variable benutzt wird. Variablennamen beginnen stets mit $ und einem Buchstaben. Die Zuweisung eines Wertes erfolgt mit dem Operator = Beispiele: $a = 2; $r2 = 5.2; $hinweis = "Der Strichpunkt trennt Statements";

17 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Globale Variablen Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen. Soll innerhalb einer Funkton auf eine Variable zugegriffen werden, die außerhalb der Funktion definiert ist (oder umgekehrt), muss diese globalisiert werden, um sie für die Funktion zugänglich zu machen. Die Globalisierung erfolgt durch das Schlüsselwort global Beispiel: global $TestVariable; Übung: Schreiben Sie ein PHP-Skript, welches die Verwendung von lokalen und globalen Variablen verdeutlicht.

18 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Globale und lokale Variablen function foo1($n) { $h = $n }; // $h ist lokale Variable function foo2($n) { global $h; // hier wird die $h = $n // globale Variable $h verwendet }; $h = 1; foo1(5); echo $h; // gibt 1 aus echo ; foo2(5); echo $h; // gibt 5 aus

19 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Konstanten Konstanten enthalten während der Programmausführung immer denselben Wert, der nicht geändert werden kann. Nach Definition kann keine weitere Wertzuweisung vorgenommen werden. Jede im Skript verwendete Konstante muss vorher definiert werden. Die Festlegung erfolgt über das Schlüsselwort define() Beispiel: define(Name,Wert); define(pi,3,141592);

20 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Indizierte Arrays PHP kennt indizierte, dynamische Arrays, d.h. Arrays, die über natürlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben. Solche Arrays können auf drei verschiedene, völlig gleichwertige Arten initialisiert werden. Auf den Inhalt eines Arrays wird über den Index zugegriffen. Beispiel: Initialisierung 1.$namen[] = "Max"; $namen[] = "Sepp"; 2.$namen[0] = "Max"; $namen[1] = "Sepp"; 3.$namen = array("Max","Sepp"); Beispiel: Zugriff echo $namen[1];

21 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Assoziative Arrays PHP kennt assoziative, dynamische Arrays, d.h. Arrays, die über atomaren Schlüsseln indiziert sind und keine Obergrenze haben. Solche Arrays können auf zwei verschiedene, völlig gleichwertige Arten initialisiert werden. Auf den Inhalt eines Arrays wird über den Schlüssel zugegriffen. Beispiel: Initialisierung 1.$vornamen["Huber"] = "Max"; $vornamen["Meier"] = "Sepp"; 2.$vornamen = array("Huber" => "Max", "Meier" => "Sepp"); Beispiel: Zugriff echo $vornamen["Meier"]; Weitere Beispiele: $monat[1]["Name"] = "Januar"; $monat[1]["Tage"] = 31; $monat[2]["Name"] = "Februar"; $monat[2]["Tage"] = 28;

22 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Übung 1 Vergewissern Sie sich durch ein geeignetes Testprogramm, daß die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsächlich völlig gleichwertig sind, d.h. daß sie zu denselben Ergebnissen führen. Finden Sie durch ein geeignetes Testprogramm heraus, wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt. Oder anders ausgedrückt: Was bewirkt die Statements: $test["Huber"] = "Assoziativer Max"; $test[0] = "Indizierter Max"; Finden Sie durch ein geeignetes Testprogramm heraus, ob PHP4 gemischte Arrays erlaubt, d.h. Arrays, deren einzelne Werte zu den verschiedenen Indizes bzw. Schlüsseln verschiedene Datentypen haben.

23 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Mehrdimensionale Arrays PHP kennt auch mehrdimensionale indizierte und assoziative Arrays. Beispiel: Initialisierung 1.$vornamen["Bayer"] = "Sepp"; $vornamen["Preiss"][0] = "Karl"; $vornamen["Preiss"][1] = "Otto"; 2.$vornamen["Bayer"] = "Sepp"; $vornamen["Preiss"] = array("Karl","Otto"); 3.$vornamen = array("Bayer" => "Sepp", "Preiss" => array("Karl","Otto")); Beispiel: Zugriff echo $vornamen["Preiss"][1];

24 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Typbestimmung Mit den folgenden Funktionen lassen sich die Typen von Variablen bestimmten: string gettype(variable) gibt den Typ einer Variablen zurück, also " integer ", " double ", " string ", " array " oder " unknown type " int is_integer(variable) gibt 0 bzw. 1 zurück, falls die Variable mit keinem bzw. einem integer -Wert belegt ist int is_double(variable) gibt 0 bzw. 1 zurück, falls die Variable mit keinem bzw. einem double -Wert belegt ist int is_string(variable) gibt 0 bzw. 1 zurück, falls die Variable mit keinem bzw. einem string -Wert belegt ist int is_array(variable) gibt 0 bzw. 1 zurück, falls die Variable mit keinem bzw. einem array -Wert belegt ist

25 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Typen festlegen und ändern Datentypen festlegen $variable = (double)200; Datentypen nachträglich ändern settype(Variable, Datentyp); Datentypen: integer, double, string, array v2=intval($v1); v2=doubleval($v1); v2=strval($v1);

26 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Zuweisungsoperatoren $a = 5; $a wird 5 zugewiesen $b = $a; $b wird der Wert von $a zugewiesen $a = ($b = 4) + 5; $a wird 9, $b 4 zugewiesen Abkürzungen: $a += $b; $a = $a + $b $a -= $b; $a = $a - $b $a *= $b; $a = $a * $b $a /= $b; $a = $a / $b $a.= $b; $a = $a. $b

27 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Arithmetische und String-Operatoren $a + 5; Addition $b - $a; Subtraktion $a * $b; Multiplikation $a / $b; Division $a % $b; Modulus (Rest bei ganzzahliger Teilung) $b = $a++; $a wird $b zugewiesen und anschließend um eins erhöht $b = $a--; $a wird $b zugewiesen und anschließend um eins erniedrigt $b = ++$a; $a wird um eins erhöht und dieser Wert $b zugewiesen $b = --$a; $a wird um eins erniedrigt und dieser Wert $b zugewiesen $a = Hello ; $b = $a. Hof; Konkatenation von Zeichenketten

28 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Logische und Vergleichsoperatoren $a and $b; UND $a or $b; ODER $a xor $b; ENTWEDER ODER ! $a; NICHT $a && $b; SEQUENZIELLES UND $a || $b; SEQUENZIELLES ODER PHP kennt keine expliziten Konstanten für die Wahrheitswerte. Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0, der Wahrheitswert falsch durch den Zahlenwert 0 repräsentiert. $a == $b; Gleich $a != $b; Ungleich $a $b; Größer $a = $b; Größer oder gleich

29 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Bedingte Anweisungen if (vergleich) { anweisungen } [ else { anweisungen } ]; if (vergleich) { anweisungen } ( elseif (vergleich) { anweisungen } ) + [ else { anweisungen } ]; switch (ausdruck) { ( case wert: anweisungen ) + [ default: anweisungen ] };

30 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Beispiele if ($a > $b) { echo Hello World; }; if ($a > $b) { echo Hello World; } else { echo Hello Hof; }; if ($a > $b) { echo Hello World; } elseif ($a < $b) { echo Hello Bavaria; } else { echo Hello Hof; }; switch ($a) { case 2 : echo Hello World; break; case 1 : echo Hello Bavaria; break; default : echo Hello Hof; };

31 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. While-Schleife while (vergleich) { anweisungen }; $i = 1; $summe = 0; while ($i <= 100) { $summe = $summe + $i; $i++; };

32 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. For-Schleife for (ausdruck;ausdruck;ausdruck) { anweisungen }; $summe = 0; for ($i = 1 ; $i <= 100 ; $i++) { $summe = $summe + $i; };

33 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Do.. While-Schleife do { anweisungen } while (vergleich) ; $i = 1; $summe = 0; do { $summe = $summe + $i; $i++; } while ($i <= 100);

34 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Funktionen und Prozeduren function fac($n) // eine Funktion { if ($n==1) { return 1; } else { return($n * fac($n-1)); }; }; function factable($n) // eine Prozedur { echo ; for ($i=1;$i.$i..fac($i). ; } echo ; };

35 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Call By Reference function swap_wrong($a,$b) // call by value { $h=$a; $a=$b; $b=$h }; }; $x=1;$y=2; swap_wrong($x,$y); echo $x..$y; // liefert: 1 2 function swap_ok(&$a,&$b) // call by reference { $h=$a; $a=$b; $b=$h }; }; $x=1;$y=2; swap_ok($x,$y); echo $x..$y; // liefert: 2 1

36 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Globale und lokale Variablen function foo1($n) { $h = $n }; // $h ist lokale Variable function foo2($n) { global $h; // hier wird die $h = $n // globale Variable $h verwendet }; $h = 1; foo1(5); echo $h; // gibt 1 aus echo ; foo2(5); echo $h; // gibt 5 aus

37 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Übung 3 Schreiben Sie eine Funktion function Wochentag($t,$m,$j) die den Wochentag des Datums t.m.j als String Mo, Di, usw. liefert, falls t.m.j ein korrektes Datum ist. Falls dies nicht der Fall ist, so soll Ihre Funktion die Zeichenkette falsch als Ergebnis zurück liefern. Ein Datum ist korrekt, falls der Wert für $m zwischen 1 und 12 liegt, der Wert für $j>=1900 ist (frühere Datumsangaben brauchen Sie nicht berücksichtigen) und es den Tag t im Monat m des Jahres j gibt. Der war ein Montag. Ein Jahr ist ein Schaltjahr, wenn der Zahlenwert des Jahres durch 4 aber nicht durch 100 teilbar ist, oder durch 400 teilbar ist. Zerlegen Sie das Problem geeignet in mehrere Teilfunktionen. Überprüfen Sie die Korrektheit und Vollständigkeit Ihrer Lösung durch geeignete Testdaten.

38 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Datenübertragung mit GET Vorname: Geburtsjahr: ServerClient ServerClient Server Client Hallo Max, Du bist 29 Jahre alt

39 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. GET - Zusammenfassung CLIENTCLIENT SERVERSERVER Anfrage nach Antwort: get.html Anfrage nach Antwort: Ergebnis von get.php?vorname=max&jahr=1973

40 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. GET - Zusammenfassung Angabe von method=GET im einleitenden HTML-Tag Formulardaten werden in der URL übermittelt und werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert Daten sind in der Adresszeile des Browsers änderbar, ohne das Formular erneut ausfüllen zu müssen Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden Daten auf ca. 2 kB beschränkt

41 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Datenübertragung mit POST Vorname: Geburtsjahr: Server Nutzdaten im Datenpaket: vorname=Max, jahr=1973 ServerClientServer Server Client Hallo Max, Du bist 29 Jahre alt

42 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. POST - Zusammenfassung CLIENTCLIENT SERVERSERVER Anfrage nach Antwort: post.html Anfrage nach Nutzdaten: vorname=max,jahr=1973 Antwort: Ergebnis von post.php

43 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. POST - Zusammenfassung Angabe von method=GET im einleitenden HTML-Tag Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers änderbar, Optionen sind nur über das Formular möglich. Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschränkung der Datenmenge Paßwortabfragen möglich

44 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Formulare auswerten Daten ermitteln In eine HTML-Seite wird das Formular über eingebunden Über ein Attribut Action wird angegeben, welches php-Skript die Daten auswerten und weiterverarbeiten Die Eingabefelder werden mit Attribut Name als Feldname1, Feldname2, etc. bezeichnet. Die Bezeichnung ist für die Auswertung notwendig Über Standardschaltflächen Löschen und Abschicken erfolgt die Steuerung Daten auswerten Jedes übergebene Element ist durch einen Namen eindeutig gekennzeichnet. Die Daten erscheinen als Variable in PHP (z. B. $Feldname1) Sicherer Zugriff mittels $_GET[`Feldname1`] bzw. $_POST[`Feldname1`]

45 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Formulare: Texteingabe php Eingabe auf $Name als einfacher Datentyp php Eingabe auf $Name als einfacher Datentyp Textvorbelegung php Eingabe auf $Name als einfacher Datentyp

46 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Formulare: Auswahl Eintrag weiterer Eintrag vorselekt.Eintrag php Wert auf $Name als einfacher Datentyp Eintrag weiterer Eintrag vorselekt.Eintrag php Werte auf $Name als Array

47 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Formulare: Checkboxen, Radio Buttons und versteckte Felder php Wert auf $Name als einfacher Datentyp php Wert auf $Name als einfacher Datentyp php Wert auf $Name als einfacher Datentyp

48 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Formulare: Submit, Reset und Image schickt Formulardaten ab setzt Formulardaten zurück php Klickkoordinaten auf $Name_x und $Name_y

49 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Öffnen von Textdateien int fopen(string path, string mode) öffnet eine Datei und gibt eine File-ID zurück, die 0 ist, falls ein Fehler auftrat. $fp = fopen(gbuch,a+) öffnet z.B. die Datei gbuch zum Lesen und Schreiben. Falls die Datei nicht existiert, wird sie angelegt. Der Filepointer steht am Ende der Datei. Die verschiedenen Modi: r öffnet eine existierende Datei zum Lesen. Filepointe: Anfang. r+ öffnet eine ex. Datei zum Lesen und Schreiben. Filepointer: Anfang. w legt eine Datei zum Nur-Schreiben an. Falls die Datei bereits besteht, wird deren Inhalt gelöscht. Filepointer: Anfang. w+ legt eine Datei zum Lesen und Schreiben an. Sonst wie w. a öffnet oder legt eine Datei zum Nur-Schreiben an. Filepointer: Ende. a+ öffnet oder legt eine Datei zum Lesen und Schreiben an. Sonst wie a.

50 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Lesen und Schreiben von Dateien string fgets(int file_id, int length) liest eine Zeile oder max. length Zeichen ab den aktuellen Filepointer aus. array file(string path) liest eine ganze Textdatei in ein Array von Strings ein. Jedes Array-Element enthält eine Zeile der Datei. int fputs(int file_id, string s, int [ length ]) schreibt einen String oder max. length Zeichen davon an die aktuelle Filepointer-Position. int fclose(int file_id) schließt die Datei, auf die der File-Identifier verweist.

51 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Manipulation des Filepointers int feof(int fid) ist 1 falls Filepointer am Ende der Datei steht, 0 sonst. int fseek(int fid, int offset) setzt den Filepointer an die Stelle offset ab Beginn der Datei. int rewind(int fid) setzt den Filepointer an den Anfang der Datei. int ftell(int fid) gibt die aktuelle Position des Filepointers zurück. int file_exists(string path) überprüft ob die Datei unter dem angegebenen Pfad existiert. int filesize(string path) gibt die Größe der Datei unter dem angegebenen Pfad in Bytes zurück.

52 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Beispiele $fp = fopen("gbuch",r"); $dateifeld for ($i=0;$i

53 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Übung 5 Schreiben Sie eine einfache Gästebuchanwendung, wie auf Dabei sollen die Gästebucheinträge in einer Datei gbuch gespeichert bzw. von dort ausgelesen und am Browser dargestellt werden. Die Datei gbuch soll im selben Verzeichnis wie das php-Programm Ihrer Anwendung angelegt werden.

54 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Web- und Datenbankserver webserver.abc.dedbserver.xy.de Buchhaltung.db Personal.db Lagerverwaltung.db Anfrage von Web-Client anwendung.php

55 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Web- und Datenbankserver webserver.abc.dedbserver.xy.de Buchhaltung.db Personal.db Lagerverwaltung.db anwendung.php Laß mich ran!

56 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Web- und Datenbankserver webserver.abc.dedbserver.xy.de Buchhaltung.db Personal.db Lagerverwaltung.db anwendung.php Port 3306

57 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Web- und Datenbankserver webserver.abc.dedbserver.xy.de Buchhaltung.db Personal.db Lagerverwaltung.db anwendung.php Port 3306 Ich will ans Personal

58 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Web- und Datenbankserver webserver.abc.dedbserver.xy.de Buchhaltung.db Personal.db Lagerverwaltung.db anwendung.php Port 3306

59 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Web- und Datenbankserver webserver.abc.dedbserver.xy.de Buchhaltung.db Personal.db Lagerverwaltung.db anwendung.php Port 3306 select.. from.. where..

60 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Web- und Datenbankserver webserver.abc.dedbserver.xy.de Buchhaltung.db Personal.db Lagerverwaltung.db anwendung.php Port , Max 13, Sepp 14, Maria

61 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Web- und Datenbankserver webserver.abc.dedbserver.xy.de Buchhaltung.db Personal.db Lagerverwaltung.db anwendung.php Port 3306 Habe fertig!

62 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Web- und Datenbankserver webserver.abc.dedbserver.xy.de Buchhaltung.db Personal.db Lagerverwaltung.db anwendung.php Antwort an Web-Client

63 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Verbinden und Auswahl einer Datenbank int mysql_connect(string host, string user, string pass) Baut eine Verbindung zu dem unter host angegebenen DB-Server auf und versucht sich dort mit dem unter user / pass angegebenen User-/Passwortpaar anzumelden. Die Verbindung ist nicht-persistent, d.h. werden mehrere Verbindungsanforderungen an den DB-Server herangetragen, so wird pro Anforderung eine Verbindungen aufgebaut. Liefert 0 falls Verbindungsaufbau fehl schlägt, ungleich 0 sonst. int mysql_pconnect(string host, string user, string pass) Baut eine persistente Verbindung auf. Die Verbindung ist persistent, d.h. bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut, sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt. Liefert 0 falls Verbindungsaufbau fehl schlägt, ungleich 0 sonst. int mysql_select_db(string dbname) Wählt die unter dbname angegebene Datenbank aus. int mysql_close() Beendet die Verbindung zu einem Datenbankserver.

64 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Beispiel Der Zusatz or die (Fehler) bewirkt, daß das Programm sofort mit der Meldung Fehler abgebrochen wird, falls die Operation vor diesem Zusatz fehl schlug. mysql_pconnect wird analog verwendet. Da sich auf unserer Übungsmaschine phpvwi.fh-hof.de sowohl der Web- als auch der Datenbankserver befinden, muss als Hostname beim Verbinden mit dem Datenbankserver localhost verwendet werden. Als Benutzerkennung dient wwwrun mit einem leeren Passwort.

65 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Anfragen übermitteln array mysql_query(string query) Setzt die unter query angegebene Anfrage an die ausgewählte Datenbank ab. Die Funktion liefert einen Verweis auf die Ergebnisdatensätze der Anfrage, sofern diese existieren. Auf diese Datensätze kann mit bestimmten Funktionen zugegriffen werden (siehe nächste Folie). mysql_query(select DozId,Titel,Vorname,Name from dozenten) 11Dr.ChristianArbeiter 44EmilAlbrecht 33Dr.CorinnaBörner...

66 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Zugriff auf Ergebnisdatensätze int mysql_fetch_row(int result_pointer) Liefert den Datensatz, auf den der result_pointer verweist, als indiziertes Array zurück und setzt den Pointer um einen Datensatz weiter. mysql_fetch_row( ) liefert das Array und setzt den Pointer einen Datensatz weiter. 11Dr.ChristianArbeiter 44EmilAlbrecht 33Dr.CorinnaBörner Dr. 2Christian 3Arbeiter

67 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Beispiel Die while-Schleife wird hier ausgeführt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann, d.h. solange diese Funktion ein Ergebnis liefert, d.h. wiederum solange der Pointer $rp nicht auf NULL zeigt.

68 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und das zugehörige Protokoll mit folgenden Eigenschaften: SSH benutzt eine verschlüsselte Datenübertragung mittels SSL (Secure Socket Layer). Die Datenübertragung ist also sicher. SSH ermöglicht die Übertragung von Betriebssystemkommandos an einen Serverrechner, ähnlich wie der Telnet-Dienst. SSH ermöglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner, ähnlich wie FTP. SSH Communications Security Corp (www.ssh.com) bietet zwei frei erhältliche Clients an: den Telnet-artigen Secure Shell Client und den FTP-ähnlichen Secure File Transfer Client. Die Benutzungsoberfläche des File Transfer Client ähnelt der des Windows-Explorer.

69 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Übung 6 Unter finden sie eine Karte von Deutschland. Schreiben Sie eine Anwendung, die dem Anwender nach einem Klick auf die Karte die Koordinaten des angeklickten Punktes als Längen- und Breitenangaben (in Grad, Minuten und Sekunden) mitteilt. Dabei hat Düsseldorf die Koordinaten 51° 13´ 32" N und 6° 46´ 59" O, Stuttgart 48° 46´ 39" N und 9° 10´ 44" O. Die Erdkrümmung dürfen Sie vernachlässigen.

70 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Übung 4 Schreiben Sie eine Internet-Anwendung, die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt, an welchem Wochentag er/sie geboren ist.


Herunterladen ppt "DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -"

Ähnliche Präsentationen


Google-Anzeigen