DV-Anwendungen in der Verwaltung I- Aufbau eines LAMP - Systems
- Dynamische Webseiten mit PHP4 -
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ihre Vorkenntnisse Grundlagen der Programmierung beherrschen
dh uumlber Kenntnisse in wenigstens einer Programmiersprache
Einfache Grundkenntnisse in HTML verfuumlgen dh einfachste Webseiten in HTML schreiben koumlnnen
Grundlagen relationaler Datenbanken und der DB-Abfragesprache SQL kennen
Netzwerk- und Unix-Kenntnisse
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Lernziele und InhaltLernziele Faumlhigkeit zum Aufbau eines einfachen LAMP (Linux
Apache MySQl PHP) ndashSystems mit netzwerkfaumlhiger Datenbank auf einem Datenbankserver
Entwicklung einer einfachen Webapplikation mit PHP und MySQL
Nutzung von PHP-AnwendungenInhalte Aufbau eines LAMP (Linux Apache MySQl PHP) ndash
Systems SAMBA Installation Windows-Zugriff auf LINUX-Dateisystem mittels
SAMBA Aufbau von Websites (WiederholungSteilkurs) Datenbanksystem MySQL Einfuumlhrung in die Skriptsprache PHP Installation und Nutzung von PHP-Anwendungen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ihre Arbeitsumgebung
Srv0862fhvr-aivde
APACHEPHP
SAMBA
home20041001home20041002
home20041031
pcXYfhvr-aivde
Micro$oft WinXYPUTTY (SSH-Client)
EditorBrowser
Zugriff uumlber SAMBA
Login per SSH
To do gt ssh srvfhvr-aivde
gt Kennung und Homeverzeichnis
gt smbpasswd
gt Zugriff mittels SAMBA
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ihr Homeverzeichnis auf srv0862
home200400xy
htdocs
hellophp
To do httpsrv0862fhvr-aivde
Editor starten
hellophp editieren
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
hellophp
lthtmlgt ltheadgtltheadgt
ltbodygt
lt for ($i=1 $ilt=6 $i++) echo lth$igt Hello Hof lth$igt endfor gt
ltbodygtlthtmlgt
lth1gt Hello Hof lth1gtlth2gt Hello Hof lth2gtlth3gt Hello Hof lth3gtlth4gt Hello Hof lth4gtlth5gt Hello Hof lth5gtlth6gt Hello Hof lth6gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Was ist und was kann PHP4
bullPHP4 ist eine in HTML eingebettete Skriptsprache zur serverseitigen Erzeugung von dynamischen Webseiten
bullDateinamenserweiterung php statt html
bullDie festen Anteile einer Webseite werden durch bekannte HTML-Befehle erzeugt die variablen Anteile werden durch Sprachelemente der PHP-Skriptsprache erzeugt
bullKennzeichnung der PHP-Skriptelemente durch besondere Tags
bullPHP4 kann mit einer Vielzahl von Datenbanken kommunizieren (z B Informix Oracle MySQL und ODBC-Datenbanken
bullMit PHP4 koumlnnen Datenbankinhalte graphisch als Websites aufbereitet und dargestellt aber auch uumlber webbasierte Oberflaumlchen modifiziert und upgedatet werden
PHP4 ist ein ideales Werkzeug zur professionellen Entwicklung von dynamischen Websites
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Die Einbettung in HTML
1 ltbrgt Reines HTML lt echo Thatlsquos PHP4 mittels SGML-konformer Einbettung gt ltbrgt Aber den Strichpunkt nicht vergessen
2 ltbrgt Reines HTML
ltPHP echo Thatlsquos PHP4 mittels XML-konformer
Einbettung gt
ltbrgt Aber den Strichpunkt nicht vergessen
3 ltbrgt Reines HTML ltscript language=phpgt echo Thatlsquos PHP4 mittels Script-Tag ltscriptgt ltbrgt Aber den Strichpunkt nicht vergessen
SGML-konforme Einbettung (erfordert Konfigurationseinstellung short_open_tag)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Aufgabe 1 HTML - Wiederholung
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Erstes PHP - Skript
lthtmlgtltheadgt
lttitlegtBeispiellttitlegtltheadgtltbodygtltphp
echo Hallo ich bin ein PHP-Skriptgtltbodygt
lthtmlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ausfuumlhrung 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 uumlbergibt
Der PHP-Interpreter verarbeitet die PHP-Dateien indem er den eingebetteten PHP-Code ausfuumlhrt 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 zB durch den Befehl echo
Diese HTML-Seite wird an den Webserver uumlbergeben der diese dann an den Internetbrowser zur Anzeige uumlbertraumlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ihre Vorkenntnisse Grundlagen der Programmierung beherrschen
dh uumlber Kenntnisse in wenigstens einer Programmiersprache
Einfache Grundkenntnisse in HTML verfuumlgen dh einfachste Webseiten in HTML schreiben koumlnnen
Grundlagen relationaler Datenbanken und der DB-Abfragesprache SQL kennen
Netzwerk- und Unix-Kenntnisse
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Lernziele und InhaltLernziele Faumlhigkeit zum Aufbau eines einfachen LAMP (Linux
Apache MySQl PHP) ndashSystems mit netzwerkfaumlhiger Datenbank auf einem Datenbankserver
Entwicklung einer einfachen Webapplikation mit PHP und MySQL
Nutzung von PHP-AnwendungenInhalte Aufbau eines LAMP (Linux Apache MySQl PHP) ndash
Systems SAMBA Installation Windows-Zugriff auf LINUX-Dateisystem mittels
SAMBA Aufbau von Websites (WiederholungSteilkurs) Datenbanksystem MySQL Einfuumlhrung in die Skriptsprache PHP Installation und Nutzung von PHP-Anwendungen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ihre Arbeitsumgebung
Srv0862fhvr-aivde
APACHEPHP
SAMBA
home20041001home20041002
home20041031
pcXYfhvr-aivde
Micro$oft WinXYPUTTY (SSH-Client)
EditorBrowser
Zugriff uumlber SAMBA
Login per SSH
To do gt ssh srvfhvr-aivde
gt Kennung und Homeverzeichnis
gt smbpasswd
gt Zugriff mittels SAMBA
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ihr Homeverzeichnis auf srv0862
home200400xy
htdocs
hellophp
To do httpsrv0862fhvr-aivde
Editor starten
hellophp editieren
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
hellophp
lthtmlgt ltheadgtltheadgt
ltbodygt
lt for ($i=1 $ilt=6 $i++) echo lth$igt Hello Hof lth$igt endfor gt
ltbodygtlthtmlgt
lth1gt Hello Hof lth1gtlth2gt Hello Hof lth2gtlth3gt Hello Hof lth3gtlth4gt Hello Hof lth4gtlth5gt Hello Hof lth5gtlth6gt Hello Hof lth6gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Was ist und was kann PHP4
bullPHP4 ist eine in HTML eingebettete Skriptsprache zur serverseitigen Erzeugung von dynamischen Webseiten
bullDateinamenserweiterung php statt html
bullDie festen Anteile einer Webseite werden durch bekannte HTML-Befehle erzeugt die variablen Anteile werden durch Sprachelemente der PHP-Skriptsprache erzeugt
bullKennzeichnung der PHP-Skriptelemente durch besondere Tags
bullPHP4 kann mit einer Vielzahl von Datenbanken kommunizieren (z B Informix Oracle MySQL und ODBC-Datenbanken
bullMit PHP4 koumlnnen Datenbankinhalte graphisch als Websites aufbereitet und dargestellt aber auch uumlber webbasierte Oberflaumlchen modifiziert und upgedatet werden
PHP4 ist ein ideales Werkzeug zur professionellen Entwicklung von dynamischen Websites
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Die Einbettung in HTML
1 ltbrgt Reines HTML lt echo Thatlsquos PHP4 mittels SGML-konformer Einbettung gt ltbrgt Aber den Strichpunkt nicht vergessen
2 ltbrgt Reines HTML
ltPHP echo Thatlsquos PHP4 mittels XML-konformer
Einbettung gt
ltbrgt Aber den Strichpunkt nicht vergessen
3 ltbrgt Reines HTML ltscript language=phpgt echo Thatlsquos PHP4 mittels Script-Tag ltscriptgt ltbrgt Aber den Strichpunkt nicht vergessen
SGML-konforme Einbettung (erfordert Konfigurationseinstellung short_open_tag)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Aufgabe 1 HTML - Wiederholung
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Erstes PHP - Skript
lthtmlgtltheadgt
lttitlegtBeispiellttitlegtltheadgtltbodygtltphp
echo Hallo ich bin ein PHP-Skriptgtltbodygt
lthtmlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ausfuumlhrung 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 uumlbergibt
Der PHP-Interpreter verarbeitet die PHP-Dateien indem er den eingebetteten PHP-Code ausfuumlhrt 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 zB durch den Befehl echo
Diese HTML-Seite wird an den Webserver uumlbergeben der diese dann an den Internetbrowser zur Anzeige uumlbertraumlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Lernziele und InhaltLernziele Faumlhigkeit zum Aufbau eines einfachen LAMP (Linux
Apache MySQl PHP) ndashSystems mit netzwerkfaumlhiger Datenbank auf einem Datenbankserver
Entwicklung einer einfachen Webapplikation mit PHP und MySQL
Nutzung von PHP-AnwendungenInhalte Aufbau eines LAMP (Linux Apache MySQl PHP) ndash
Systems SAMBA Installation Windows-Zugriff auf LINUX-Dateisystem mittels
SAMBA Aufbau von Websites (WiederholungSteilkurs) Datenbanksystem MySQL Einfuumlhrung in die Skriptsprache PHP Installation und Nutzung von PHP-Anwendungen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ihre Arbeitsumgebung
Srv0862fhvr-aivde
APACHEPHP
SAMBA
home20041001home20041002
home20041031
pcXYfhvr-aivde
Micro$oft WinXYPUTTY (SSH-Client)
EditorBrowser
Zugriff uumlber SAMBA
Login per SSH
To do gt ssh srvfhvr-aivde
gt Kennung und Homeverzeichnis
gt smbpasswd
gt Zugriff mittels SAMBA
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ihr Homeverzeichnis auf srv0862
home200400xy
htdocs
hellophp
To do httpsrv0862fhvr-aivde
Editor starten
hellophp editieren
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
hellophp
lthtmlgt ltheadgtltheadgt
ltbodygt
lt for ($i=1 $ilt=6 $i++) echo lth$igt Hello Hof lth$igt endfor gt
ltbodygtlthtmlgt
lth1gt Hello Hof lth1gtlth2gt Hello Hof lth2gtlth3gt Hello Hof lth3gtlth4gt Hello Hof lth4gtlth5gt Hello Hof lth5gtlth6gt Hello Hof lth6gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Was ist und was kann PHP4
bullPHP4 ist eine in HTML eingebettete Skriptsprache zur serverseitigen Erzeugung von dynamischen Webseiten
bullDateinamenserweiterung php statt html
bullDie festen Anteile einer Webseite werden durch bekannte HTML-Befehle erzeugt die variablen Anteile werden durch Sprachelemente der PHP-Skriptsprache erzeugt
bullKennzeichnung der PHP-Skriptelemente durch besondere Tags
bullPHP4 kann mit einer Vielzahl von Datenbanken kommunizieren (z B Informix Oracle MySQL und ODBC-Datenbanken
bullMit PHP4 koumlnnen Datenbankinhalte graphisch als Websites aufbereitet und dargestellt aber auch uumlber webbasierte Oberflaumlchen modifiziert und upgedatet werden
PHP4 ist ein ideales Werkzeug zur professionellen Entwicklung von dynamischen Websites
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Die Einbettung in HTML
1 ltbrgt Reines HTML lt echo Thatlsquos PHP4 mittels SGML-konformer Einbettung gt ltbrgt Aber den Strichpunkt nicht vergessen
2 ltbrgt Reines HTML
ltPHP echo Thatlsquos PHP4 mittels XML-konformer
Einbettung gt
ltbrgt Aber den Strichpunkt nicht vergessen
3 ltbrgt Reines HTML ltscript language=phpgt echo Thatlsquos PHP4 mittels Script-Tag ltscriptgt ltbrgt Aber den Strichpunkt nicht vergessen
SGML-konforme Einbettung (erfordert Konfigurationseinstellung short_open_tag)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Aufgabe 1 HTML - Wiederholung
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Erstes PHP - Skript
lthtmlgtltheadgt
lttitlegtBeispiellttitlegtltheadgtltbodygtltphp
echo Hallo ich bin ein PHP-Skriptgtltbodygt
lthtmlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ausfuumlhrung 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 uumlbergibt
Der PHP-Interpreter verarbeitet die PHP-Dateien indem er den eingebetteten PHP-Code ausfuumlhrt 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 zB durch den Befehl echo
Diese HTML-Seite wird an den Webserver uumlbergeben der diese dann an den Internetbrowser zur Anzeige uumlbertraumlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ihre Arbeitsumgebung
Srv0862fhvr-aivde
APACHEPHP
SAMBA
home20041001home20041002
home20041031
pcXYfhvr-aivde
Micro$oft WinXYPUTTY (SSH-Client)
EditorBrowser
Zugriff uumlber SAMBA
Login per SSH
To do gt ssh srvfhvr-aivde
gt Kennung und Homeverzeichnis
gt smbpasswd
gt Zugriff mittels SAMBA
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ihr Homeverzeichnis auf srv0862
home200400xy
htdocs
hellophp
To do httpsrv0862fhvr-aivde
Editor starten
hellophp editieren
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
hellophp
lthtmlgt ltheadgtltheadgt
ltbodygt
lt for ($i=1 $ilt=6 $i++) echo lth$igt Hello Hof lth$igt endfor gt
ltbodygtlthtmlgt
lth1gt Hello Hof lth1gtlth2gt Hello Hof lth2gtlth3gt Hello Hof lth3gtlth4gt Hello Hof lth4gtlth5gt Hello Hof lth5gtlth6gt Hello Hof lth6gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Was ist und was kann PHP4
bullPHP4 ist eine in HTML eingebettete Skriptsprache zur serverseitigen Erzeugung von dynamischen Webseiten
bullDateinamenserweiterung php statt html
bullDie festen Anteile einer Webseite werden durch bekannte HTML-Befehle erzeugt die variablen Anteile werden durch Sprachelemente der PHP-Skriptsprache erzeugt
bullKennzeichnung der PHP-Skriptelemente durch besondere Tags
bullPHP4 kann mit einer Vielzahl von Datenbanken kommunizieren (z B Informix Oracle MySQL und ODBC-Datenbanken
bullMit PHP4 koumlnnen Datenbankinhalte graphisch als Websites aufbereitet und dargestellt aber auch uumlber webbasierte Oberflaumlchen modifiziert und upgedatet werden
PHP4 ist ein ideales Werkzeug zur professionellen Entwicklung von dynamischen Websites
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Die Einbettung in HTML
1 ltbrgt Reines HTML lt echo Thatlsquos PHP4 mittels SGML-konformer Einbettung gt ltbrgt Aber den Strichpunkt nicht vergessen
2 ltbrgt Reines HTML
ltPHP echo Thatlsquos PHP4 mittels XML-konformer
Einbettung gt
ltbrgt Aber den Strichpunkt nicht vergessen
3 ltbrgt Reines HTML ltscript language=phpgt echo Thatlsquos PHP4 mittels Script-Tag ltscriptgt ltbrgt Aber den Strichpunkt nicht vergessen
SGML-konforme Einbettung (erfordert Konfigurationseinstellung short_open_tag)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Aufgabe 1 HTML - Wiederholung
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Erstes PHP - Skript
lthtmlgtltheadgt
lttitlegtBeispiellttitlegtltheadgtltbodygtltphp
echo Hallo ich bin ein PHP-Skriptgtltbodygt
lthtmlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ausfuumlhrung 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 uumlbergibt
Der PHP-Interpreter verarbeitet die PHP-Dateien indem er den eingebetteten PHP-Code ausfuumlhrt 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 zB durch den Befehl echo
Diese HTML-Seite wird an den Webserver uumlbergeben der diese dann an den Internetbrowser zur Anzeige uumlbertraumlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ihr Homeverzeichnis auf srv0862
home200400xy
htdocs
hellophp
To do httpsrv0862fhvr-aivde
Editor starten
hellophp editieren
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
hellophp
lthtmlgt ltheadgtltheadgt
ltbodygt
lt for ($i=1 $ilt=6 $i++) echo lth$igt Hello Hof lth$igt endfor gt
ltbodygtlthtmlgt
lth1gt Hello Hof lth1gtlth2gt Hello Hof lth2gtlth3gt Hello Hof lth3gtlth4gt Hello Hof lth4gtlth5gt Hello Hof lth5gtlth6gt Hello Hof lth6gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Was ist und was kann PHP4
bullPHP4 ist eine in HTML eingebettete Skriptsprache zur serverseitigen Erzeugung von dynamischen Webseiten
bullDateinamenserweiterung php statt html
bullDie festen Anteile einer Webseite werden durch bekannte HTML-Befehle erzeugt die variablen Anteile werden durch Sprachelemente der PHP-Skriptsprache erzeugt
bullKennzeichnung der PHP-Skriptelemente durch besondere Tags
bullPHP4 kann mit einer Vielzahl von Datenbanken kommunizieren (z B Informix Oracle MySQL und ODBC-Datenbanken
bullMit PHP4 koumlnnen Datenbankinhalte graphisch als Websites aufbereitet und dargestellt aber auch uumlber webbasierte Oberflaumlchen modifiziert und upgedatet werden
PHP4 ist ein ideales Werkzeug zur professionellen Entwicklung von dynamischen Websites
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Die Einbettung in HTML
1 ltbrgt Reines HTML lt echo Thatlsquos PHP4 mittels SGML-konformer Einbettung gt ltbrgt Aber den Strichpunkt nicht vergessen
2 ltbrgt Reines HTML
ltPHP echo Thatlsquos PHP4 mittels XML-konformer
Einbettung gt
ltbrgt Aber den Strichpunkt nicht vergessen
3 ltbrgt Reines HTML ltscript language=phpgt echo Thatlsquos PHP4 mittels Script-Tag ltscriptgt ltbrgt Aber den Strichpunkt nicht vergessen
SGML-konforme Einbettung (erfordert Konfigurationseinstellung short_open_tag)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Aufgabe 1 HTML - Wiederholung
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Erstes PHP - Skript
lthtmlgtltheadgt
lttitlegtBeispiellttitlegtltheadgtltbodygtltphp
echo Hallo ich bin ein PHP-Skriptgtltbodygt
lthtmlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ausfuumlhrung 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 uumlbergibt
Der PHP-Interpreter verarbeitet die PHP-Dateien indem er den eingebetteten PHP-Code ausfuumlhrt 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 zB durch den Befehl echo
Diese HTML-Seite wird an den Webserver uumlbergeben der diese dann an den Internetbrowser zur Anzeige uumlbertraumlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
hellophp
lthtmlgt ltheadgtltheadgt
ltbodygt
lt for ($i=1 $ilt=6 $i++) echo lth$igt Hello Hof lth$igt endfor gt
ltbodygtlthtmlgt
lth1gt Hello Hof lth1gtlth2gt Hello Hof lth2gtlth3gt Hello Hof lth3gtlth4gt Hello Hof lth4gtlth5gt Hello Hof lth5gtlth6gt Hello Hof lth6gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Was ist und was kann PHP4
bullPHP4 ist eine in HTML eingebettete Skriptsprache zur serverseitigen Erzeugung von dynamischen Webseiten
bullDateinamenserweiterung php statt html
bullDie festen Anteile einer Webseite werden durch bekannte HTML-Befehle erzeugt die variablen Anteile werden durch Sprachelemente der PHP-Skriptsprache erzeugt
bullKennzeichnung der PHP-Skriptelemente durch besondere Tags
bullPHP4 kann mit einer Vielzahl von Datenbanken kommunizieren (z B Informix Oracle MySQL und ODBC-Datenbanken
bullMit PHP4 koumlnnen Datenbankinhalte graphisch als Websites aufbereitet und dargestellt aber auch uumlber webbasierte Oberflaumlchen modifiziert und upgedatet werden
PHP4 ist ein ideales Werkzeug zur professionellen Entwicklung von dynamischen Websites
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Die Einbettung in HTML
1 ltbrgt Reines HTML lt echo Thatlsquos PHP4 mittels SGML-konformer Einbettung gt ltbrgt Aber den Strichpunkt nicht vergessen
2 ltbrgt Reines HTML
ltPHP echo Thatlsquos PHP4 mittels XML-konformer
Einbettung gt
ltbrgt Aber den Strichpunkt nicht vergessen
3 ltbrgt Reines HTML ltscript language=phpgt echo Thatlsquos PHP4 mittels Script-Tag ltscriptgt ltbrgt Aber den Strichpunkt nicht vergessen
SGML-konforme Einbettung (erfordert Konfigurationseinstellung short_open_tag)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Aufgabe 1 HTML - Wiederholung
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Erstes PHP - Skript
lthtmlgtltheadgt
lttitlegtBeispiellttitlegtltheadgtltbodygtltphp
echo Hallo ich bin ein PHP-Skriptgtltbodygt
lthtmlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ausfuumlhrung 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 uumlbergibt
Der PHP-Interpreter verarbeitet die PHP-Dateien indem er den eingebetteten PHP-Code ausfuumlhrt 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 zB durch den Befehl echo
Diese HTML-Seite wird an den Webserver uumlbergeben der diese dann an den Internetbrowser zur Anzeige uumlbertraumlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Was ist und was kann PHP4
bullPHP4 ist eine in HTML eingebettete Skriptsprache zur serverseitigen Erzeugung von dynamischen Webseiten
bullDateinamenserweiterung php statt html
bullDie festen Anteile einer Webseite werden durch bekannte HTML-Befehle erzeugt die variablen Anteile werden durch Sprachelemente der PHP-Skriptsprache erzeugt
bullKennzeichnung der PHP-Skriptelemente durch besondere Tags
bullPHP4 kann mit einer Vielzahl von Datenbanken kommunizieren (z B Informix Oracle MySQL und ODBC-Datenbanken
bullMit PHP4 koumlnnen Datenbankinhalte graphisch als Websites aufbereitet und dargestellt aber auch uumlber webbasierte Oberflaumlchen modifiziert und upgedatet werden
PHP4 ist ein ideales Werkzeug zur professionellen Entwicklung von dynamischen Websites
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Die Einbettung in HTML
1 ltbrgt Reines HTML lt echo Thatlsquos PHP4 mittels SGML-konformer Einbettung gt ltbrgt Aber den Strichpunkt nicht vergessen
2 ltbrgt Reines HTML
ltPHP echo Thatlsquos PHP4 mittels XML-konformer
Einbettung gt
ltbrgt Aber den Strichpunkt nicht vergessen
3 ltbrgt Reines HTML ltscript language=phpgt echo Thatlsquos PHP4 mittels Script-Tag ltscriptgt ltbrgt Aber den Strichpunkt nicht vergessen
SGML-konforme Einbettung (erfordert Konfigurationseinstellung short_open_tag)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Aufgabe 1 HTML - Wiederholung
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Erstes PHP - Skript
lthtmlgtltheadgt
lttitlegtBeispiellttitlegtltheadgtltbodygtltphp
echo Hallo ich bin ein PHP-Skriptgtltbodygt
lthtmlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ausfuumlhrung 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 uumlbergibt
Der PHP-Interpreter verarbeitet die PHP-Dateien indem er den eingebetteten PHP-Code ausfuumlhrt 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 zB durch den Befehl echo
Diese HTML-Seite wird an den Webserver uumlbergeben der diese dann an den Internetbrowser zur Anzeige uumlbertraumlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Die Einbettung in HTML
1 ltbrgt Reines HTML lt echo Thatlsquos PHP4 mittels SGML-konformer Einbettung gt ltbrgt Aber den Strichpunkt nicht vergessen
2 ltbrgt Reines HTML
ltPHP echo Thatlsquos PHP4 mittels XML-konformer
Einbettung gt
ltbrgt Aber den Strichpunkt nicht vergessen
3 ltbrgt Reines HTML ltscript language=phpgt echo Thatlsquos PHP4 mittels Script-Tag ltscriptgt ltbrgt Aber den Strichpunkt nicht vergessen
SGML-konforme Einbettung (erfordert Konfigurationseinstellung short_open_tag)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Aufgabe 1 HTML - Wiederholung
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Erstes PHP - Skript
lthtmlgtltheadgt
lttitlegtBeispiellttitlegtltheadgtltbodygtltphp
echo Hallo ich bin ein PHP-Skriptgtltbodygt
lthtmlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ausfuumlhrung 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 uumlbergibt
Der PHP-Interpreter verarbeitet die PHP-Dateien indem er den eingebetteten PHP-Code ausfuumlhrt 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 zB durch den Befehl echo
Diese HTML-Seite wird an den Webserver uumlbergeben der diese dann an den Internetbrowser zur Anzeige uumlbertraumlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Aufgabe 1 HTML - Wiederholung
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Erstes PHP - Skript
lthtmlgtltheadgt
lttitlegtBeispiellttitlegtltheadgtltbodygtltphp
echo Hallo ich bin ein PHP-Skriptgtltbodygt
lthtmlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ausfuumlhrung 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 uumlbergibt
Der PHP-Interpreter verarbeitet die PHP-Dateien indem er den eingebetteten PHP-Code ausfuumlhrt 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 zB durch den Befehl echo
Diese HTML-Seite wird an den Webserver uumlbergeben der diese dann an den Internetbrowser zur Anzeige uumlbertraumlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Erstes PHP - Skript
lthtmlgtltheadgt
lttitlegtBeispiellttitlegtltheadgtltbodygtltphp
echo Hallo ich bin ein PHP-Skriptgtltbodygt
lthtmlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ausfuumlhrung 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 uumlbergibt
Der PHP-Interpreter verarbeitet die PHP-Dateien indem er den eingebetteten PHP-Code ausfuumlhrt 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 zB durch den Befehl echo
Diese HTML-Seite wird an den Webserver uumlbergeben der diese dann an den Internetbrowser zur Anzeige uumlbertraumlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ausfuumlhrung 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 uumlbergibt
Der PHP-Interpreter verarbeitet die PHP-Dateien indem er den eingebetteten PHP-Code ausfuumlhrt 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 zB durch den Befehl echo
Diese HTML-Seite wird an den Webserver uumlbergeben der diese dann an den Internetbrowser zur Anzeige uumlbertraumlgt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Ein Ausdruck ist eine Aneinanderreihung von Zeichen unter Beachtung einer vorgegebenen Syntax Sie koumlnnen ganz unterschiedlich aufgebaut seinAlles was einen Wert hat kann als Aufdruck aufgefasst werden
Jede in sich abgeschlossene Anweisung wird in PHP durch ein Semikolon beendet Dies ist aumlhnlich der Sprachen C Perl oder JavaScript
Ausdruumlcke und Anweisungen
Beispiele1000$zahl = 1000$b = $afunction ausdr_beisp()
return 1000
Beispieleltphpphpinfo()gt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Textausgabe mit echo Der Text der ausgegeben werden soll muss in Anfuumlhrungsstrichen
stehen da der Server sonst versucht ihn als PHP-Befehl zu interpretieren Dieses Vorgehen wird Quoten oder Quoting genannt
Bei den Anfuumlhrungsstrichen gibt es zwei verschiedene einmal das einfache `` und das doppelte `` Es gibt einen Unterschied zwischen den beiden
Bei den doppelten Anfuumlhrungsstrichen versucht der Server den Text zu interpretieren bei den einfachen hingegen behandelt er ihn nicht speziell sondern gibt ihn zB direkt aus
$var = 123echo Die Variable $var hat den Wert 123necho Die Variable $var hat den Wert 123n
Das erste echo gibt Die Variable $var hat den Wert 123n`` 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 muumlssen doppelte Anfuumlhrungsstriche die ausgegeben werden sollen besonders gekennzeichnet werden Dieses Vorgehen nennt man Escapen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 duumlrfen print kann nur genau ein Argument haben
Alle folgenden Anweisungen sind zulaumlssig und geben dasselbe aus
$var1 = Hallo$var2 = Weltecho $var1 $var2echo $var1 $var2print ($var1 $var2)$res = print ($var1 $var2)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Kommentare Fuumlr Kommentare gibt es zwei Moumlglichkeiten der
Schreibweise echo Noch kein Kommentar Dies ist ein Kommentarder 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 52$hinweis = Der Strichpunkt trennt Statements
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Globale Variablen
bull Globale Variablen spielen eine Rolle bei der Verwendung von Funktionen
bull Soll innerhalb einer Funkton auf eine Variable zugegriffen werden die auszligerhalb der Funktion definiert ist (oder umgekehrt) muss diese globalisiert werden um sie fuumlr die Funktion zugaumlnglich zu machen
bull Die Globalisierung erfolgt durch das Schluumlsselwort bdquogloballdquo
bull Beispielglobal $TestVariable
bull Uumlbung Schreiben Sie ein PHP-Skript welches die Verwendung von lokalen und globalen Variablen verdeutlicht
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Konstanten Konstanten enthalten waumlhrend der
Programmausfuumlhrung immer denselben Wert der nicht geaumlndert werden kann
Nach Definition kann keine weitere Wertzuweisung vorgenommen werden
Jede im Skript verwendete Konstante muss vorher definiert werden
Die Festlegung erfolgt uumlber das Schluumlsselwort bdquodefine()ldquo
Beispieldefine(bdquoNameldquoldquoWertldquo)define(bdquopildquo3141592)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Indizierte Arrays
PHP kennt indizierte dynamische Arrays dh Arrays die uumlber natuumlrlichen Zahlen beginnend mit der Null indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf drei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Index zugegriffen
Beispiel Initialisierung
1 $namen[] = Max $namen[] = Sepp
2 $namen[0] = Max $namen[1] = Sepp
3 $namen = array(MaxSepp)
Beispiel Zugriff
echo $namen[1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Assoziative Arrays
PHP kennt assoziative dynamische Arrays dh Arrays die uumlber atomaren Schluumlsseln indiziert sind und keine Obergrenze haben Solche Arrays koumlnnen auf zwei verschiedene voumlllig gleichwertige Arten initialisiert werden Auf den Inhalt eines Arrays wird uumlber den Schluumlssel zugegriffen
Beispiel Initialisierung
1 $vornamen[Huber] = Max $vornamen[Meier] = Sepp
2 $vornamen = array(Huber =gt Max Meier =gt Sepp)
Beispiel Zugriff
echo $vornamen[Meier]
Weitere Beispiele$monat[1][Name] = Januar $monat[1][Tage] = 31$monat[2][Name] = Februar $monat[2][Tage] = 28
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 1
Vergewissern Sie sich durch ein geeignetes Testprogramm daszlig die verschiedenen Arten zur Initialisierung von indizierten und dynamischen Arrays tatsaumlchlich voumlllig gleichwertig sind dh daszlig sie zu denselben Ergebnissen fuumlhren
Finden Sie durch ein geeignetes Testprogramm heraus wie PHP4 indizierte und assoziative Arrays mit demselben Namen behandelt Oder anders ausgedruumlckt Was bewirkt die Statements
$test[Huber] = Assoziativer Max$test[0] = Indizierter Max
Finden Sie durch ein geeignetes Testprogramm heraus ob PHP4 bdquogemischteldquo Arrays erlaubt dh Arrays deren einzelne Werte zu den verschiedenen Indizes bzw Schluumlsseln verschiedene Datentypen haben
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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(KarlOtto)
3 $vornamen = array(Bayer =gt Sepp Preiss =gt
array(KarlOtto))
Beispiel Zugriff
echo $vornamen[Preiss][1]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck also integer double string array oder unknown type
int is_integer(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem integer-Wert belegt ist
int is_double(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem double-Wert belegt ist
int is_string(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem string-Wert belegt ist
int is_array(variable) gibt 0 bzw 1 zuruumlck falls die Variable mit keinem bzw einem array-Wert belegt ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Typen festlegen und aumlndern Datentypen festlegen
$variable = (double)200
Datentypen nachtraumlglich aumlndernsettype(Variable bdquoDatentypldquo)Datentypen integer double string array
v2=intval($v1)v2=doubleval($v1)v2=strval($v1)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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
bdquoAbkuumlrzungenldquo
$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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 anschlieszligend um eins erhoumlht $b = $a-- $a wird $b zugewiesen und anschlieszligend um eins erniedrigt $b = ++$a $a wird um eins erhoumlht und dieser Wert $b zugewiesen$b = --$a $a wird um eins erniedrigt und dieser Wert $b zugewiesen
$a = ldquoHello ldquo$b = $a ldquoHofldquo Konkatenation von Zeichenketten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ampamp $b SEQUENZIELLES UND$a || $b SEQUENZIELLES ODER
PHP kennt keine expliziten Konstanten fuumlr die Wahrheitswerte Syntaktisch wird der Wahrheitswert wahr durch einen Zahlenwert verschieden von 0 der Wahrheitswert falsch durch den Zahlenwert 0 repraumlsentiert
$a == $b Gleich $a = $b Ungleich$a lt $b Kleiner $a gt $b Groumlszliger$a lt= $b Kleiner oder gleich$a gt= $b Groumlszliger oder gleich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
if ($a gt $b) echo ldquoHello Worldldquo
if ($a gt $b) echo ldquoHello Worldldquo else echo ldquoHello Hofldquo
if ($a gt $b) echo ldquoHello Worldldquo elseif ($a lt $b) echo ldquoHello Bavarialdquo else echo ldquoHello Hofldquo
switch ($a) case 2 echo ldquoHello Worldldquo break case 1 echo ldquoHello Bavarialdquo break default echo ldquoHello Hofldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
While-Schleife
while (vergleich) anweisungen
$i = 1$summe = 0while ($i lt= 100) $summe = $summe + $i $i++
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
For-Schleife
for (ausdruckausdruckausdruck) anweisungen
$summe = 0for ($i = 1 $i lt= 100 $i++) $summe = $summe + $i
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Do While-Schleife
do anweisungen while (vergleich)
$i = 1$summe = 0do $summe = $summe + $i $i++ while ($i lt= 100)
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 ldquoltTABLE BORDERgtldquo for ($i=1$ilt=$n$i++) echo bdquoltTRgtltTDgtldquo$ildquoltTDgtltTDgtldquofac($i)ldquoltTDgtltTRgtldquo echo ldquoltTABLEgtldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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=2swap_wrong($x$y)echo $xldquo ldquo$y liefert 1 2
function swap_ok(amp$aamp$b) call by reference $h=$a $a=$b $b=$h $x=1$y=2swap_ok($x$y)echo $xldquo ldquo$y liefert 2 1
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 = 1foo1(5)echo $h gibt 1 ausecho ldquoltPgtldquofoo2(5)echo $h gibt 5 aus
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 3
Schreiben Sie eine Funktion
function Wochentag($t$m$j)
die den Wochentag des Datums tmj als String bdquoMoldquo bdquoDildquo usw liefert falls tmj ein korrektes Datum ist Falls dies nicht der Fall ist so soll Ihre Funktion die Zeichenkette bdquofalschldquo als Ergebnis zuruumlck liefern Ein Datum ist korrekt falls der Wert fuumlr $m zwischen 1 und 12 liegt der Wert fuumlr $jgt=1900 ist (fruumlhere Datumsangaben brauchen Sie nicht beruumlcksichtigen) und es den Tag t im Monat m des Jahres j gibt
Der 111900 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 Uumlberpruumlfen Sie die Korrektheit und Vollstaumlndigkeit Ihrer Loumlsung durch geeignete Testdaten
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit GET
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=GET ACTION=httpwwwblabladegetphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
ServerClient
httpwwwblabladegetphpvorname=Maxampjahr=1973
ServerClient
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladegethtml
Antwort gethtml
Anfrage nach httpwwwblabladegetphpvorname=maxampjahr=1973
Antwort Ergebnis von getphpvorname=maxampjahr=1973
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
GET - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden in der URL uumlbermittelt und
werden durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert
Daten sind in der Adresszeile des Browsers aumlnderbar ohne das Formular erneut ausfuumlllen zu muumlssen
Aufrauf kann mit Angabe der Daten als Favorit abgelegt werden
Daten auf ca 2 kB beschraumlnkt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Datenuumlbertragung mit POST
ltHTMLgtltHEADgtltHEADgtltBODYgt
ltFORM METHOD=ldquoPOST ACTION=httpwwwblabladepostphpgt ltbgtVorname ltbgt ltINPUT TYPE=text NAME=vornamegtltBRgt ltbgtGeburtsjahr ltbgt ltINPUT TYPE=text NAME=jahrgtltBRgt ltINPUT TYPE=submit VALUE=OKgt ltFORMgt
ltBODYgtltHTMLgt
Server
httpwwwblabladepostphp
Nutzdaten im Datenpaketvorname=Max jahr=1973
ServerClient Server
ltHTMLgtltHEADgtltHEADgtltBODYgt
lt $alter = 2002 - $jahr echo ldquoHallo $vorname Du bist $alter Jahre altldquogt
ltBODYgtltHTMLgt
ServerClient
Hallo Max Du bist 29 Jahre alt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung
CLIENT
SERVER
Anfrage nach httpwwwblabladeposthtml
Antwort posthtml
Anfrage nach httpwwwblabladepostphp
Nutzdaten vorname=maxjahr=1973
Antwort Ergebnis von postphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
POST - Zusammenfassung Angabe von method=bdquoGETldquo im einleitenden HTML-Tag
ltformgt Formulardaten werden direkt an die Webadresse versendet Daten sind nicht in der Adresszeile des Browsers aumlnderbar
Optionen sind nur uumlber das Formular moumlglich Daten werden nicht im Logfile des Servers gespeichert Formulardaten sind nicht im Verlauf des Browsers sichtbar Aufruf kann nicht als Favorit abgelegt werden Keine Beschraumlnkung der Datenmenge Paszligwortabfragen moumlglich
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare auswerten Daten ermitteln
In eine HTML-Seite wird das Formular uumlber ltformgt eingebunden
Uumlber 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 fuumlr die Auswertung notwendig
Uumlber Standardschaltflaumlchen Loumlschen und Abschicken erfolgt die Steuerung
Daten auswerten Jedes uumlbergebene 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`]
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Texteingabe
ltinput type=text size=Laumlnge value=Wert maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
ltinput type=password size=Laumlnge maxlength=MaxLaumlnge
name=Namegt php Eingabe auf $Name als einfacher Datentyp
lttextarea cols=Spalten rows=Reihen name=NamegtTextvorbelegunglttextareagt php Eingabe auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Auswahl
ltselect size=Houmlhe name=Namegt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Wert auf $Name als einfacher Datentyp
ltselect multiple size=Houmlhe name=Name[]ldquogt ltoption value=Wertgt Eintrag ltoptiongt ltoption value=Wertgt weiterer Eintragltoptiongt ltoption selected value=Wertgt vorselektEintragltoptiongt
ltselectgt php Werte auf $Name als Array
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Checkboxen Radio Buttons und versteckte Felder
ltinput type=radio name=Name value=Wertgtltinput type=radio checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=checkbox name=Name value=Wertgtltinput type=checkbox checked name=Name value=Wertgt
php Wert auf $Name als einfacher Datentyp
ltinput type=hidden name=Name value=Wertgt php Wert auf $Name als
einfacher Datentyp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Formulare Submit Reset und Image
ltinput type=sumit value=Beschriftunggt schickt Formulardaten ab
ltinput type=reset value=Beschriftunggt setzt Formulardaten
zuruumlck
ltinput type=image name=Name src=URIgtphp Klickkoordinaten auf
$Name_x und $Name_y
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Oumlffnen von Textdateien
int fopen(string path string mode)oumlffnet eine Datei und gibt eine File-ID zuruumlck die 0 ist falls ein Fehler auftrat
$fp = fopen(ldquogbuchldquoldquoa+ldquo)oumlffnet zB 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
ldquorldquo oumlffnet eine existierende Datei zum Lesen Filepointe Anfangldquor+ldquo oumlffnet eine ex Datei zum Lesen und Schreiben Filepointer Anfangldquowldquo legt eine Datei zum Nur-Schreiben an Falls die Datei bereits besteht wird deren Inhalt geloumlscht Filepointer Anfangldquow+ldquo legt eine Datei zum Lesen und Schreiben an Sonst wie ldquowldquoldquoaldquo oumlffnet oder legt eine Datei zum Nur-Schreiben an Filepointer Endeldquoa+ldquo oumlffnet oder legt eine Datei zum Lesen und Schreiben an
Sonst wie ldquoaldquo
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 enthaumllt 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)schlieszligt die Datei auf die der File-Identifier verweist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 zuruumlck
int file_exists(string path)uumlberpruumlft ob die Datei unter dem angegebenen Pfad existiert
int filesize(string path)gibt die Groumlszlige der Datei unter dem angegebenen Pfad in Bytes zuruumlck
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiele
$fp = fopen(gbuchldquor)$dateifeld = file(gbuch)for ($i=0$iltcount($dateifeld)$i++) echo chop($dateifeld[$i])ltBRgt
stellt den Inhalt der Datei gbuch zeilenweise im Browser dar
$fp = fopen(gbucha+)fputs($fp$Eintragn)fclose($fp)
schreibt den String $Eintrag mit einen Zeilenumbruch an das Ende der Datei gbuch
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 5
Schreiben Sie eine einfache Gaumlstebuchanwendung wie auf
Dabei sollen die Gaumlstebucheintraumlge 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
Anfrage von
Web-Client
anwendungphp
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Laszlig mich
ran
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Ich willans
Personal
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
select from where
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
12 Max13 Sepp 14 Maria
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Port 3306
Habefertig
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Web- und Datenbankserver
webserverabcde dbserverxyde
ltHTMLgtltHEADgtltHEADgt
ltBODYgt
ltphp db_connect(dbserverxyde user pass) select_db(personal) db_query(select from ) db_close() gt
ltBODYgtltHTMLgt
Buchhaltungdb
Personaldb
Lagerverwaltungdb
anwendungphp
Antwort an
Web-Client
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung 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 userpass angegebenen User-Passwortpaar anzumelden Die Verbindung ist nicht-persistent dh werden mehrere Verbindungsanforderungen an den DB-Server herangetragen so wird pro Anforderung eine Verbindungen aufgebaut Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_pconnect(string host string user string pass)Baut eine persistente Verbindung auf Die Verbindung ist persistent dh bei weiteren Verbindungsanfragen werden keine neuen Verbindungen aufgebaut sondern es wird die bereits bestehende persistente Verbindung zur Kommunikation genutzt Liefert 0 falls Verbindungsaufbau fehl schlaumlgt ungleich 0 sonst
int mysql_select_db(string dbname)Waumlhlt die unter dbname angegebene Datenbank aus
int mysql_close()Beendet die Verbindung zu einem Datenbankserver
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo) mysql_close() or die(ldquoFehlerldquo)gt
Der Zusatz or die (bdquoFehlerldquo) bewirkt daszlig 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 Uumlbungsmaschine phpvwifh-hofde 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
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Anfragen uumlbermitteln
array mysql_query(string query)Setzt die unter query angegebene Anfrage an die ausgewaumlhlte Datenbank ab Die Funktion liefert einen Verweis auf die Ergebnisdatensaumltze der Anfrage sofern diese existieren Auf diese Datensaumltze kann mit bestimmten Funktionen zugegriffen werden (siehe naumlchste Folie)
mysql_query(ldquoselect DozIdTitelVornameName from dozentenldquo)
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Zugriff auf Ergebnisdatensaumltze
int mysql_fetch_row(int result_pointer)Liefert den Datensatz auf den der result_pointer verweist als indiziertes Array zuruumlck und setzt den Pointer um einen Datensatz weiter
mysql_fetch_row( ) liefert das Array
und setzt den Pointer einen Datensatz weiter
11 Dr Christian Arbeiter
44 Emil Albrecht
33 Dr Corinna Boumlrner
0 11
1 Dr
2 Christian
3 Arbeiter
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Beispiel
ltphp mysql_connect(ldquolocalhostldquoldquowwwrunldquoldquoldquo) or die(ldquoFehlerldquo) mysql_select_db(ldquoDB1004ldquo) or die(ldquoFehlerldquo)
$query = ldquoselect Name from dozentenldquo $rp = mysql_query($query) or die(ldquoFehlerldquo) while ($datensatz = mysql_fetch_array($rp)) echo $datensatz[0]ldquoltBRgtldquo
mysql_close()gt
Die while-Schleife wird hier ausgefuumlhrt solange der Variablen $datensatz ein Ergebnis von mysql_fetch_array($rp) zugewiesen werden kann dh solange diese Funktion ein Ergebnis liefert dh wiederum solange der Pointer $rp nicht auf NULL zeigt
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
SECURE SHELL (SSH) Secure Shell (SSH) nennt man einen Internetdienst und
das zugehoumlrige Protokoll mit folgenden Eigenschaften 1048698 SSH benutzt eine verschluumlsselte Datenuumlbertragung
mittels SSL (Secure Socket Layer) Die Datenuumlbertragung ist also sicher 1048698 SSH ermoumlglicht die Uumlbertragung von Betriebssystemkommandos an einen Serverrechner aumlhnlich wie der Telnet-Dienst 1048698 SSH ermoumlglicht den Austausch von Dateien zwischen einem Client- und einem Serverrechner aumlhnlich wie FTP 1048698 SSH Communications Security Corp (wwwsshcom)
bietet zwei frei erhaumlltliche Clients an den Telnet-artigen Secure Shell Client und den FTP-aumlhnlichen Secure File Transfer Client Die Benutzungsoberflaumlche des File Transfer Client aumlhnelt der des Windows-Explorer
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 6
Unter
httpphpvwinffh-hofde~mueckDeutschlandgif
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 Laumlngen- und Breitenangaben (in Grad Minuten und Sekunden) mitteilt
Dabei hat Duumlsseldorf die Koordinaten 51deg 13acute 32 N und 6deg 46acute 59 O Stuttgart 48deg 46acute 39 N und 9deg 10acute 44 O Die Erdkruumlmmung duumlrfen Sie vernachlaumlssigen
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist
copy Dr Andy Muumlck Guumlnter Simon Alle Rechte vorbehalten einschlieszliglich der Vervielfaumlltigung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen
Uumlbung 4
Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist