+ All Categories
Home > Documents > DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -

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

Date post: 05-Apr-2015
Category:
Upload: oda-bogle
View: 106 times
Download: 3 times
Share this document with a friend
70
DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
Transcript
Page 1: DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 2: 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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 3: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 4: 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 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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 5: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 6: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 7: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 8: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 9: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 10: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 11: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 12: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 13: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 14: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 15: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 16: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 17: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 18: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 19: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 20: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 21: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 22: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 23: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 24: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 25: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 26: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 27: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 28: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 29: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 30: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 31: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 32: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 33: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 34: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 35: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 36: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 37: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 38: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 39: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 40: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 41: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 42: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 43: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 44: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 45: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 46: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 47: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 48: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 49: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 50: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 51: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 52: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 53: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 54: 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

Web- und Datenbankserver

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 55: 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

Web- und Datenbankserver

webserverabcde 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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 56: 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

Web- und Datenbankserver

webserverabcde dbserverxyde

ltHTMLgtltHEADgtltHEADgt

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 57: 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

Web- und Datenbankserver

webserverabcde dbserverxyde

ltHTMLgtltHEADgtltHEADgt

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 58: 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

Web- und Datenbankserver

webserverabcde dbserverxyde

ltHTMLgtltHEADgtltHEADgt

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 59: 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

Web- und Datenbankserver

webserverabcde dbserverxyde

ltHTMLgtltHEADgtltHEADgt

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 60: 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

Web- und Datenbankserver

webserverabcde dbserverxyde

ltHTMLgtltHEADgtltHEADgt

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 61: 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

Web- und Datenbankserver

webserverabcde dbserverxyde

ltHTMLgtltHEADgtltHEADgt

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 62: 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

Web- und Datenbankserver

webserverabcde 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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 63: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 64: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 65: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 66: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 67: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 68: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 69: 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

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

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4
Page 70: 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

Uumlbung 4

Schreiben Sie eine Internet-Anwendung die dem Benutzer aufgrund seines einzugebenden Geburtsdatums mitteilt an welchem Wochentag ersie geboren ist

  • DV-Anwendungen in der Verwaltung I - Aufbau eines LAMP - Systems - Dynamische Webseiten mit PHP4 -
  • Ihre Vorkenntnisse
  • Lernziele und Inhalt
  • Ihre Arbeitsumgebung
  • Ihr Homeverzeichnis auf srv0862
  • hellophp
  • Was ist und was kann PHP4
  • Die Einbettung in HTML
  • Aufgabe 1 HTML - Wiederholung
  • Erstes PHP - Skript
  • Ausfuumlhrung von PHP-Skripts
  • Ausdruumlcke und Anweisungen
  • Textausgabe mit echo
  • Textausgabe mit print
  • Kommentare
  • Variablen
  • Globale Variablen
  • Globale und lokale Variablen
  • Konstanten
  • Indizierte Arrays
  • Assoziative Arrays
  • Uumlbung 1
  • Mehrdimensionale Arrays
  • Typbestimmung
  • Typen festlegen und aumlndern
  • Zuweisungsoperatoren
  • Arithmetische und String-Operatoren
  • Logische und Vergleichsoperatoren
  • Bedingte Anweisungen
  • Beispiele
  • While-Schleife
  • For-Schleife
  • Do While-Schleife
  • Funktionen und Prozeduren
  • Call By Reference
  • Slide 36
  • Uumlbung 3
  • Datenuumlbertragung mit GET
  • GET - Zusammenfassung
  • Slide 40
  • Datenuumlbertragung mit POST
  • POST - Zusammenfassung
  • Slide 43
  • Formulare auswerten
  • Formulare Texteingabe
  • Formulare Auswahl
  • Formulare Checkboxen Radio Buttons und versteckte Felder
  • Formulare Submit Reset und Image
  • Oumlffnen von Textdateien
  • Lesen und Schreiben von Dateien
  • Manipulation des Filepointers
  • Slide 52
  • Uumlbung 5
  • Web- und Datenbankserver
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Verbinden und Auswahl einer Datenbank
  • Beispiel
  • Anfragen uumlbermitteln
  • Zugriff auf Ergebnisdatensaumltze
  • Slide 67
  • Folie 68
  • Uumlbung 6
  • Uumlbung 4

Recommended