Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Ihre Vorkenntnisse Grundlagen der Programmierung beherrschen, d.h. über Kenntnisse in wenigstens einer Programmiersprache Einfache Grundkenntnisse in HTML.

Ähnliche Präsentationen


Präsentation zum Thema: "Ihre Vorkenntnisse Grundlagen der Programmierung beherrschen, d.h. über Kenntnisse in wenigstens einer Programmiersprache Einfache Grundkenntnisse in HTML."—  Präsentation transkript:

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

2 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 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

3 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 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

4 PUTTY (SSH-Client) Editor
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 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

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

6 hello.php <html> <head></head> <body>
<? for ($i=1; $i<=6; $i++): echo "<h$i> Hello Hof </h$i>"; endfor; ?> </body> </html> <h1> Hello Hof </h1> <h2> Hello Hof </h2> <h3> Hello Hof </h3> <h4> Hello Hof </h4> <h5> Hello Hof </h5> <h6> Hello Hof </h6> © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

7 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 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

8 Die Einbettung in HTML 1. <br> Reines HTML <? echo "That‘s PHP4 mittels SGML-konformer Einbettung"; ?> <br> Aber den Strichpunkt nicht vergessen 2. <br> Reines HTML <?PHP echo "That‘s PHP4 mittels XML-konformer Einbettung"; ?> <br> Aber den Strichpunkt nicht vergessen 3. <br> Reines HTML <script language="php"> echo "That‘s PHP4 mittels Script-Tag"; </script> <br> Aber den Strichpunkt nicht vergessen SGML-konforme Einbettung (erfordert Konfigurationseinstellung short_open_tag) © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

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

10 Erstes PHP - Skript <html> <head>
<title>Beispiel</title> </head> <body> <?php echo "Hallo, ich bin ein PHP-Skript!"; ?> </body> </html> © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

11 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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

12 Ausdrücke und Anweisungen
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. Beispiele: 1000 $zahl = 1000; $b = $a; function ausdr_beisp() {return 1000;} Beispiele: <?php phpinfo(); ?> © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

13 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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

14 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); © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

15 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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

16 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"; © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

17 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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

18 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 “<P>“; foo2(5); echo $h; // gibt 5 aus © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

19 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); © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

20 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]; © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

21 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; © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

22 Übung 1 $test["Huber"] = "Assoziativer Max";
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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

23 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]; © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

24 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 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

25 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); © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

26 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 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

27 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 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

28 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; Kleiner $a > $b; Größer $a <= $b; Kleiner oder gleich $a >= $b; Größer oder gleich © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

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

30 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“; }; © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

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

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

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

34 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 “<TABLE BORDER>“; for ($i=1;$i<=$n;$i++) { echo „<TR><TD>“.$i.“</TD><TD>“.fac($i).“</TD></TR>“; } echo “</TABLE>“; }; © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

35 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: 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 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

36 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 “<P>“; foo2(5); echo $h; // gibt 5 aus © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

37 function Wochentag($t,$m,$j)
Ü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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

38 Datenübertragung mit GET
Client Hallo Max, Du bist 29 Jahre alt Server Client <HTML><HEAD></HEAD><BODY> <? $alter = $jahr; echo “Hallo $vorname, Du bist $alter Jahre alt“; ?> </BODY></HTML> Server <HTML><HEAD></HEAD><BODY> <FORM METHOD="GET" ACTION=" <b>Vorname: </b> <INPUT TYPE="text" NAME="vorname"><BR> <b>Geburtsjahr: </b> <INPUT TYPE="text" NAME="jahr"><BR> <INPUT TYPE="submit" VALUE="OK"> </FORM> </BODY></HTML> Server Client © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

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

40 GET - Zusammenfassung Angabe von method=„GET“ im einleitenden HTML-Tag <form> 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 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

41 Datenübertragung mit POST
Client Hallo Max, Du bist 29 Jahre alt Nutzdaten im Datenpaket: vorname=Max, jahr=1973 Server Client <HTML><HEAD></HEAD><BODY> <? $alter = $jahr; echo “Hallo $vorname, Du bist $alter Jahre alt“; ?> </BODY></HTML> Server <HTML><HEAD></HEAD><BODY> <FORM METHOD=“POST" ACTION=" <b>Vorname: </b> <INPUT TYPE="text" NAME="vorname"><BR> <b>Geburtsjahr: </b> <INPUT TYPE="text" NAME="jahr"><BR> <INPUT TYPE="submit" VALUE="OK"> </FORM> </BODY></HTML> Server © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

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

43 POST - Zusammenfassung
Angabe von method=„GET“ im einleitenden HTML-Tag <form> 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 © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

44 Formulare auswerten Daten ermitteln Daten auswerten
In eine HTML-Seite wird das Formular über <form> 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`] © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

45 Formulare: Texteingabe
<input type="text" size="Länge" value="Wert" maxlength="MaxLänge" name="Name"> php Eingabe auf $Name als einfacher Datentyp <input type="password" size="Länge" maxlength="MaxLänge" name="Name"> php Eingabe auf $Name als einfacher Datentyp <textarea cols="Spalten" rows="Reihen" name="Name"> Textvorbelegung </textarea> php Eingabe auf $Name als einfacher Datentyp © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

46 Formulare: Auswahl <select size="Höhe" name="Name">
<option value="Wert"> Eintrag </option> <option value="Wert"> weiterer Eintrag</option> <option selected value="Wert"> vorselekt.Eintrag</option> </select> php Wert auf $Name als einfacher Datentyp <select multiple size="Höhe" name="Name[]“> <option value="Wert"> Eintrag </option> <option value="Wert"> weiterer Eintrag</option> <option selected value="Wert"> vorselekt.Eintrag</option> </select> php Werte auf $Name als Array © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

47 Formulare: Checkboxen , Radio Buttons und versteckte Felder
<input type="radio" name="Name" value="Wert"> <input type="radio" checked name="Name" value="Wert"> php Wert auf $Name als einfacher Datentyp <input type="checkbox" name="Name" value="Wert"> <input type="checkbox" checked name="Name" value="Wert"> php Wert auf $Name als einfacher Datentyp <input type="hidden" name="Name" value="Wert"> © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

48 Formulare: Submit, Reset und Image
<input type="sumit" value="Beschriftung"> schickt Formulardaten ab <input type="reset" value="Beschriftung"> setzt Formulardaten zurück <input type="image" name="Name" src="URI"> php Klickkoordinaten auf $Name_x und $Name_y © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

49 Ö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“. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

50 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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

51 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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

52 Beispiele $fp = fopen("gbuch",“r"); $dateifeld = @file("gbuch");
for ($i=0;$i<count($dateifeld);$i++) { echo chop($dateifeld[$i])."<BR>";}; stellt den Inhalt der Datei gbuch zeilenweise im Browser dar. $fp = fopen("gbuch","a+"); fputs($fp,"$Eintrag\n"); fclose($fp); schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

53 Ü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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

54 Web- und Datenbankserver
webserver.abc.de dbserver.xy.de anwendung.php <HTML><HEAD></HEAD> <BODY> <?php db_connect(dbserver.xy.de, user, pass); select_db(personal); db_query(select .. from ..); db_close(); ?> </BODY> </HTML> Anfrage von Web-Client Buchhaltung.db Personal.db Lagerverwaltung.db © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

55 Web- und Datenbankserver
webserver.abc.de dbserver.xy.de anwendung.php <HTML><HEAD></HEAD> <BODY> <?php db_connect(dbserver.xy.de, user, pass); select_db(personal); db_query(select .. from ..); db_close(); ?> </BODY> </HTML> Buchhaltung.db Laß mich ran! Personal.db Lagerverwaltung.db © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

56 Web- und Datenbankserver
webserver.abc.de dbserver.xy.de anwendung.php <HTML><HEAD></HEAD> <BODY> <?php db_connect(dbserver.xy.de, user, pass); select_db(personal); db_query(select ..from ..); db_close(); ?> </BODY> </HTML> Buchhaltung.db Port 3306 Personal.db Lagerverwaltung.db © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

57 Web- und Datenbankserver
webserver.abc.de dbserver.xy.de anwendung.php <HTML><HEAD></HEAD> <BODY> <?php db_connect(dbserver.xy.de, user, pass); select_db(personal); db_query(select ..from ..); db_close(); ?> </BODY> </HTML> Buchhaltung.db Port 3306 Personal.db Ich will ans Personal Lagerverwaltung.db © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

58 Web- und Datenbankserver
webserver.abc.de dbserver.xy.de anwendung.php <HTML><HEAD></HEAD> <BODY> <?php db_connect(dbserver.xy.de, user, pass); select_db(personal); db_query(select ..from ..); db_close(); ?> </BODY> </HTML> Buchhaltung.db Port 3306 Personal.db Lagerverwaltung.db © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

59 Web- und Datenbankserver
webserver.abc.de dbserver.xy.de anwendung.php <HTML><HEAD></HEAD> <BODY> <?php db_connect(dbserver.xy.de, user, pass); select_db(personal); db_query(select ..from ..); db_close(); ?> </BODY> </HTML> Buchhaltung.db Port 3306 Personal.db select .. from .. where .. Lagerverwaltung.db © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

60 Web- und Datenbankserver
webserver.abc.de dbserver.xy.de anwendung.php <HTML><HEAD></HEAD> <BODY> <?php db_connect(dbserver.xy.de, user, pass); select_db(personal); db_query(select ..from ..); db_close(); ?> </BODY> </HTML> Buchhaltung.db Port 3306 Personal.db 12, Max 13, Sepp 14, Maria Lagerverwaltung.db © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

61 Web- und Datenbankserver
webserver.abc.de dbserver.xy.de anwendung.php <HTML><HEAD></HEAD> <BODY> <?php db_connect(dbserver.xy.de, user, pass); select_db(personal); db_query(select ..from ..); db_close(); ?> </BODY> </HTML> Buchhaltung.db Port 3306 Personal.db Habe fertig! Lagerverwaltung.db © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

62 Web- und Datenbankserver
webserver.abc.de dbserver.xy.de anwendung.php <HTML><HEAD></HEAD> <BODY> <?php db_connect(dbserver.xy.de, user, pass); select_db(personal); db_query(select .. from ..); db_close(); ?> </BODY> </HTML> Buchhaltung.db Personal.db Lagerverwaltung.db Antwort an Web-Client © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

63 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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

64 Beispiel <?php mysql_connect(“localhost“,“wwwrun“,““) or die(“Fehler“); mysql_select_db(“DB1004“) or die(“Fehler“); mysql_close() or die(“Fehler“); ?> 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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

65 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“) 11 Dr. Christian Arbeiter 44 Emil Albrecht 33 Dr. Corinna Börner ... © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

66 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. 11 1 Dr. 2 Christian 11 Dr. Christian Arbeiter 3 Arbeiter 44 Emil Albrecht 33 Dr. Corinna Börner ... © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

67 Beispiel <?php mysql_connect(“localhost“,“wwwrun“,““) or die(“Fehler“); mysql_select_db(“DB1004“) or die(“Fehler“); $query = “select Name from dozenten“; $rp = mysql_query($query) or die(“Fehler“); while ($datensatz = mysql_fetch_array($rp)) { echo $datensatz[0].“<BR>“; }; mysql_close(); ?> 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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

68 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 ( 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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

69 Übung 6 Unter http://phpvwinf.fh-hof.de/~mueck/Deutschland.gif
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. © Dr. Andy Mück, Günter Simon Alle Rechte vorbehalten einschließlich der Vervielfältigung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

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


Herunterladen ppt "Ihre Vorkenntnisse Grundlagen der Programmierung beherrschen, d.h. über Kenntnisse in wenigstens einer Programmiersprache Einfache Grundkenntnisse in HTML."

Ähnliche Präsentationen


Google-Anzeigen