Einführung in die Skriptsprache PHP

Größe: px
Ab Seite anzeigen:

Download "Einführung in die Skriptsprache PHP"

Transkript

1 Einführung in die Skriptsprache PHP Materialien zum NLI-Kurs Version:

2 In a world without fences... who needs gates? Vorwort Das Skript geht auf ein Vorlesungsskript von Alfred Wassermann, Uni Bayreuth, zurück. Es wurde für den NLI-Kurs in wesentlichen Teilen überarbeitet und erweitert. Die im Skript erwähnten Software- und Hardwarebezeichnungen sind in den meisten Fällen auch eingetragene Warenzeichen und unterliegen als solche den gesetzlichen Bestimmungen. Das Skript wurde mit L A TEX unter Verwendung des Makropackets pdfl A TEX erstellt ( ). Alle Grafiken wurden mit Dia ( alla/dia ) entwickelt. I

3 Inhaltsverzeichnis 1 Grundlagen, Variablen, Wiederholungen Skriptsprache PHP PHP-Befehle in HTML einbetten Unser erster PHP-Befehl! Variablen Arrays Skalare Arrays Assoziative Arrays Zweidimensionale Arrays Datenübernahme aus HTML-Formularen Einfache Rechenoperationen Wiederholung von Anweisungen mit der while -Schleife Aufgaben Kontrollstrukturen, Dateioperationen Weitere Befehle zur Ablaufkontrolle Fallunterscheidungen Weitere Vergleichsmöglichkeiten Nochmals HTML-Formulare Dateien hinzuladen Dateien lesen und schreiben Aufgaben zur Vorlesung Vordefinierte und benutzerdefinierte Funktionen Funktionen Vordefinierte Funktionen String-Funktionen Aufgaben zur Vorlesung II

4 INHALTSVERZEICHNIS 4 Zugriff auf Datenbanken Einführung Zugriff auf Datenbanken SQL-Grundlagen SQL-Befehle mit PHP Verteilung des Datenbankprogramms auf mehrere Skriptdateien Weitere SQL-Befehle Aufgaben zur Vorlesung Fallaufgabe Elektronikversand A NLI-Kurs 1 A.1 Rechner-Umgebung NLI-Kurs A.2 Loginparameter A.3 Entwicklungsumgebung B Zugriff auf Access-Datenbanken mit PHP 5 B.1 Vorbereitung der Datenquelle B.2 Zugriff auf Access-Datenbank mit Skript C Installation einer lokalen Entwicklungsumgebung 9 D Lösungen zu den Übungsaufgaben 10 D.1 Vorlesung D.1.1 Aufgabe D.1.2 Aufgabe D.1.3 Aufgabe D.1.4 Aufgabe D.1.5 Aufgabe D.1.6 Aufgabe D.1.7 Aufgabe D.1.8 Aufgabe D.2 Vorlesung D.2.1 Aufgabe III

5 INHALTSVERZEICHNIS D.2.2 Aufgabe D.2.3 Aufgabe D.2.4 Aufgabe D.2.5 Aufgabe D.2.6 Aufgabe D.3 Vorlesung D.3.1 Aufgabe D.3.2 Aufgabe D.3.3 Aufgabe D.3.4 Aufgabe D.3.5 Aufgabe D.3.6 Aufgabe D.4 Vorlesung D.4.1 Aufgabe D.4.2 Aufgabe D.4.3 Aufgabe D.4.4 Aufgabe IV

6 Vorlesung 1: Grundlagen, Variablen, Wiederholungen Vorlesung 1 Grundlagen, Variablen, Wiederholungen 1.1 Skriptsprache PHP PHP ist eine Skriptsprache, die mit dem Focus auf die Generierung dynamischer Webseiten entwickelt wurde. PHP-Befehle werden direkt in HTML-Seiten eingebettet, d. h. der Autor schreibt PHP-Befehle zusammen mit HTML-Befehlen in eine PHP-Datei. Wird diese Datei von einem Betrachter angefordert, so werden die PHP-Befehle von einer Zusatzsoftware des Webservers Schritt für Schritt ausgeführt und die Ergebnisse als reines HTML-Dokument an den Betrachter weitergeleitet (siehe Abbildung 1.1). Abbildung 1.1: Dynamische Webseite mit PHP 2) 1) PHP-Dateien 3) Webserver 8) 7) HTML 6) PHP- Preprocessor 4) 5) Datenbank Achtung: Der Webserver muß PHP -fähig sein. Standardmäßig funktionieren diese Befehle nicht. Inzwischen bieten nahezu alle Provider Hosting-Pakete an, die die Benutzung von PHP zulassen. Mit Lycos ( ) stellt auch ein zuverlässiger deutscher Gratisanbieter Accounts mit PHP- Unterstützung zur Verfügung. Je nach Installation interpretiert die PHP-Zusatzsoftware nur Dateien mit der Endung.php, häufig aber auch Dateien mit der Endung.php3,.php4,.phtml. Es ist (bei entsprechender Konfiguration des Webservers) auch möglich, PHP-Befehle in Dateien mit den Vorlesung 1-1

7 Vorlesung 1: Grundlagen, Variablen, Wiederholungen Endungen.html oder.htm einzubetten. Damit wird der Generierungsprozess vor dem Endnutzer verborgen. PHP wird seit etwa 1994 entwickelt und erfreut sich seitdem stetig wachsender Beliebtheit. Eine der besonderen Stärken der Skriptsprache PHP ist die problemlose Anbindung an verschiedene Datenbanken. Die Sprache ist in ihrer Syntax an C, Java und Perl angelehnt. 1.2 PHP-Befehle in HTML einbetten PHP-Befehle werden in HTML-Dokumente eingebettet, indem für sie besondere Skriptbereiche abgegrenzt werden. Hierfür ein erstes Beispiel: 1 2 <!doctype html public //W3C / / DTD HTML 4. 0 / / EN > 3 <html> 4 <head> 5 <title>php-beispiel</title> 6 </head> 7 <body> 8 9 <?php 10 echo Hallo Welt ; 11?> </body> 14 </html> Es gibt vier alternative Möglichkeiten, PHP-Skriptbereiche in einem HTML-Dokument abzugrenzen. 1. <?...?> 2. <?php...?> 3. <script language="php">... </script> 4. <%... %>... steht hier für beliebige PHP-Befehle. Es wird allgemein empfohlen, die Form <?php...?> zu benutzen, da diese XML-konform und damit wohl dauerhaft Unterstützung erfahren wird. 1.3 Unser erster PHP-Befehl! Der echo -Befehl gibt Texte (sogenannte Strings) aus: <?php echo Hallo ;?> Vorlesung 1-2

8 Vorlesung 1: Grundlagen, Variablen, Wiederholungen Alternativ ist auch die folgende Syntax zulässig: <?php echo( Hallo );?> Das gleiche Ausgaberesultat erzielen Sie im Übrigen auch mit der print -Funktion, die Bestandteil der mehrere hundert vordefinierte Funktionen umfassenden PHP-Standardbibliothek ist. <?php print( Hallo );?> Merke: Alle PHP-Anweisungen werden mit einem Semikolon ( ; ) abgeschlossen. Es gibt eine Reihe von Sonderzeichen, die Sie in Strings verwenden können. Wichtigstes Sonderzeichen: \n = Zeilenumbruch. echo Hallo \n ; echo Hallo \n ; Man beachte dabei den Unterschied zu echo Hallo<BR> ; echo Hallo<BR> ; Im ersten Fall wird lediglich im vom Webserver ausgelieferten HTML-Quelltext ein Zeilenumbruch durchgeführt. Im zweiten Fall enthält der HTML-Quelltext den HTML-Befehl zum Zeilenumbruch, der im Ausgabefenster des Browsers umgesetzt wird. Wenn Sie Anführungszeichen innerhalb eines Strings verwenden wollen, müssen Sie das Sonderzeichen \" verwenden. Beispiel: echo Er s e t z t e s i c h, wie ihm b e f o h l e n, a u f e i n e Wolke und begann zu f r o h l o c k e n : \ H a l l e l u j a H a h l e l u j a H a h l e l u j a Hahlee l u j a... \ ; 1.4 Variablen Um sinnvolle Anwendungen erstellen zu können, benötigen wir Speicherbereiche, in denen Daten vorübergehend abgelegt werden können. Dazu können in PHP Variablen deklariert werden. Merke : Alle Variablennamen beginnen in PHP mit dem Dollarzeichen ( $ ). 1 $text = I c h b i n e i n S t r i n g! ; 2 3 echo $text; 4 5 echo $text..$text..$text; 6 7 $l = l a n g e r ; 8 $k = k u r z e r ; 9 10 echo I c h b i n e i n.$l.$l.$l.$l.$l.$l. T e x t! ; 11 Vorlesung 1-3

9 Vorlesung 1: Grundlagen, Variablen, Wiederholungen 12 echo I c h b i n e i n.$k. T e x t! ; $i = 10; 15 $j = 5; 16 echo $i. +.$j. =.($i+$j); Der Typ der Variablen (ganze Zahl, Gleitpunktzahl, String, Boolsche Werte) wird je nach situativer Verwendung von PHP automatisch bestimmt. Der Benutzer braucht sich darum nur in Spezialfällen kümmern. 1.5 Arrays In vielen Anwendungsfällen ist es von Vorteil, Daten nicht in Einzelvariablen abzulegen, sondern sie in zusammengehörigen Datenfeldern - sogenannten Arrays - zu speichern. PHP unterstützt von Haus aus skalare und assoziative Arrays Skalare Arrays Beispiel für einen skalaren Array: 1 / D e k l a r a t i o n e i n e s s k a l a r e n Arrays / 2 $text[0] = Dies i s t d i e e r s t e Z e i l e. ; 3 $text[1] = Dies i s t d i e z w e i t e Z e i l e. ; 4 $text[2] = Dies i s t d i e d r i t t e Z e i l e. ; 5 6 / Ausgabe / 7 echo $text[0]. <br >\n ; 8 echo $text[1]. <br >\n ; 9 echo $text[2]. <br >\n ; Alternative Deklarationen ohne explizite Indexierung der Datenfelder: 1 / D e k l a r a t i o n e i n e s s k a l a r e n Arrays ohne e x p l i z i t e I n d e x i e r u n g / 2 $text[] = Dies i s t d i e e r s t e Z e i l e. ; 3 $text[] = Dies i s t d i e z w e i t e Z e i l e. ; 4 $text[] = Dies i s t d i e d r i t t e Z e i l e. ; 5 6 / Ausgabe / 7 echo $text[0]. <br >\n ; 8 echo $text[1]. <br >\n ; 9 echo $text[2]. <br >\n ; Möglich ist auch die Erzeugung eines Arrays mit Hilfe der array -Funktion: 1 / D e k l a r a t i o n e i n e s s k a l a r e n Arrays m i t der array F u n k t i o n / 2 $text = array( Dies i s t d i e e r s t e Z e i l e., 3 Dies i s t d i e z w e i t e Z e i l e., 4 Dies i s t d i e d r i t t e Z e i l e. 5 ); 6 7 / Ausgabe / 8 echo $text[0]. <br >\n ; 9 echo $text[1]. <br >\n ; 10 echo $text[2]. <br >\n ; Vorlesung 1-4

10 Vorlesung 1: Grundlagen, Variablen, Wiederholungen In vielen Anwendungen ist es zweckmäßig die Inhalte eines Arrays durch ein Schleifenkonstrukt auszuwerten. Sehr häufig findet man die foreach -Schleife in PHP-Skripts (siehe Abbildung 1.2). Beispiel: 1 / D e k l a r a t i o n e i n e s s k a l a r e n Arrays m i t der array F u n k t i o n / 2 $text = array( Dies i s t d i e e r s t e Z e i l e., 3 Dies i s t d i e z w e i t e Z e i l e., 4 Dies i s t d i e d r i t t e Z e i l e. 5 ); 6 7 / Ausgabe m i t S c h l e i f e n k o n s t r u k t / 8 foreach( $text as $zeile ) { 9 echo $zeile. <br >\n ; 10 } Abbildung 1.2: Funktionsweise einer foreach -Schleife Arrayzeiger auf Anfang setzen Arrayzeiger vorruecken Textausgabe Variable Array-Element vorhanden? ja Array-Element -> Variable nein Assoziative Arrays Beispiel für einen assoziativen Array: 1 / D e k l a r a t i o n e i n e s a s s o z i a t i v e n A rrays / 2 $text[ Z e i l e A ] = Dies i s t d i e e r s t e Z e i l e. ; 3 $text[ Z e i l e B ] = Dies i s t d i e z w e i t e Z e i l e. ; 4 $text[ Z e i l e C ] = Dies i s t d i e d r i t t e Z e i l e. ; 5 Vorlesung 1-5

11 Vorlesung 1: Grundlagen, Variablen, Wiederholungen 6 / Ausgabe / 7 echo $text[ Z e i l e A ]. <br>\n ; 8 echo $text[ Z e i l e B ]. <br>\n ; 9 echo $text[ Z e i l e C ]. <br>\n ; Auch in diesem Fall ist eine Deklaration mit der array -Funktion möglich: 1 / D e k l a r a t i o n e i n e s a s s o z i a t i v e n Arrays m i t der array F u n k t i o n / 2 $text = array( X => Dies i s t d i e e r s t e Z e i l e., 3 A => Dies i s t d i e z w e i t e Z e i l e., 4 H => Dies i s t d i e d r i t t e Z e i l e. 5 ); 6 7 / Ausgabe / 8 echo $text[ H ]. <br>\n ; 9 echo $text[ A ]. <br>\n ; 10 echo $text[ X ]. <br>\n ; Auch ein assoziativer Array kann komfortabel mit einer foreach -Schleife ausgelesen werden. 1 / D e k l a r a t i o n e i n e s s k a l a r e n Arrays m i t der array F u n k t i o n / 2 $text = array( X => Dies i s t d i e e r s t e Z e i l e., 3 A => Dies i s t d i e z w e i t e Z e i l e., 4 H => Dies i s t d i e d r i t t e Z e i l e. 5 ); 6 7 / Ausgabe m i t S c h l e i f e n k o n s t r u k t / 8 foreach( $text as $zeile ) { 9 echo $zeile. <br >\n ; 10 } / Ausgabe m i t S c h l e i f e n k o n s t r u k t / 13 foreach( $text as $schluessel => $wert ) { 14 echo $schluessel..$wert. <br >\n ; 15 } Zweidimensionale Arrays Im weiteren Verlauf dieses Grundkurses werden uns Daten begegnen, die in mehreren Zeilen und mehreren Spalten verwaltet werden. Beispiel: ID Name Art Note Kommentar 1 Herzogkeller Biergarten 1 Sehr schöner Baumbestand 2 Glenk Biergarten 1 Gute Bratwürste 3 Bei Norbert Diskokneipe 4 Höllisch laut Auch diese Struktur kann mit Hilfe von Arrays problemlos in PHP abgebildet werden. 1 $set1 = array ( ID => 1, 2 Name => H e r z o g k e l l e r, 3 A r t => B i e r g a r t e n, 4 Note => 1, 5 Kommentar => Sehr s c h ö n e r Baumbestand 6 ); 7 Vorlesung 1-6

12 Vorlesung 1: Grundlagen, Variablen, Wiederholungen 8 $set2 = array ( ID => 2, 9 Name => Glenk, 10 A r t => B i e r g a r t e n, 11 Note => 1, 12 Kommentar => Gute B r a t w ü r s t e 13 ); $set3 = array ( ID => 3, 16 Name => Bei N o r b e r t, 17 A r t => D i s k o k n e i p e, 18 Note => 4, 19 Kommentar => H ö l l i s c h l a u t 20 ); $all = array ( $set1, $set2, $set3 ); / / Ausgabe a l l e r Kneipennamen 25 foreach( $all as $dataset ) { 26 echo $dataset[ Name ]. <br >\n ; 27 } 1.6 Datenübernahme aus HTML-Formularen Da PHP speziell zur Erzeugung von dynamischen Webseiten entwickelt wurde, ist es sehr leicht, Eingaben, die aus HTML-Formularen stammen, zu bearbeiten. Ein Beispiel: Die Formulardatei formular.htm enthalte: 1 <!doctype html public //W3C / / DTD HTML 4. 0 / / EN > 2 <html> 3 <head> 4 <title>formular</title> 5 </head> 6 <body> 7 <FORM ACTION= tuwas. php METHOD=POST> 8 <INPUT NAME= b e l i e b i g e r n a m e > 9 <INPUT TYPE= s u b m i t VALUE= OK > 10 </FORM> 11 </body> 12 </html> Der HTML-Formular-Kenner sieht sofort: Beim Klicken auf den Submit-Button wird also die Datei tuwas.php aufgerufen. Diese Datei könnte dann so aussehen: 1 <!doctype html public //W3C / / DTD HTML 4. 0 / / EN > 2 <html> 3 <head> 4 <title>php-skript</title> 5 </head> 6 <body> 7 <?php 8 echo S i e haben.$_request[ b e l i e b i g e r n a m e ]. e i n g e g e b e n. ; 9?> 10 </body> 11 </html> Vorlesung 1-7

13 Vorlesung 1: Grundlagen, Variablen, Wiederholungen Achtung: Ab der PHP-Version 4.1 werden Daten aus den HTML-Formularen im assoziativen Array $ REQUEST bereitgestellt. Alternativ kann auf die Formulardaten in Abhängigkeit der benutzten Action- Methode auch über die Arrays $ POST bzw. $ GET zugegriffen werden. Beispiel: <?php echo S i e haben.$_post[ b e l i e b i g e r n a m e ]. e i n g e g e b e n. ;?> In älteren PHP-Versionen war ein Zugriff auf Formulardaten über automatische vordefinierte Variablen nach dem folgenden Muster möglich: <?php echo S i e haben.$beliebigername. e i n g e g e b e n. ;?> Dieser bequeme Weg sollte nicht mehr benutzt werden. Aus Sicherheitsgründen wird empfohlen zukünftig die neuen Superarrays ($ REQUEST, $ POST, $ GET ) zu benutzen. Die alte Zugriffsmethode kann in den neueren PHP-Versionen bei Bedarf aber noch in der Datei php.ini freigeschaltet werden. GET-Aktionen können im Übrigen auch durch den direkten Aufruf eines PHP-Skripts mit Parameterübergabe ausgelöst werden. Beispielsweise bewirkt der Skript-Aufruf Leute über das Adressfeld eines Browsers bei Auswertung im PHP-Skript als GET-Aktion ein den obigen Beispielen entsprechendes Ergebnis. 1.7 Einfache Rechenoperationen Folgende Rechenoperationen stehen in PHP zur Verfügung: Operator Beschreibung Beispiel Erläuterung + : Addition $erg=$i+$j - : Subtraktion $erg=$i-$j * : Multiplikation $erg=$i*$j / : Division $erg=$i/$j % : Reste-Bildung $erg=$i%$j z. B. 23%17 ergibt 6, da 23 geteilt durch 17 gleich 1 Rest 6 ist.. : Verknüpft zwei Zeichenketten (Strings) Dazu kommen noch ein paar Abkürzungen, um dem Programmierer das Leben zu erleichtern: $i++ erhöht $i um 1. ++$i erhöht $i ebenfalls um 1. $i-- erniedrigt $i um 1. --$i erniedrigt $i ebenfalls um 1. Der Unterschied zwischen $i++ und ++$i ist: $i=0; echo $i++; Vorlesung 1-8

14 Vorlesung 1: Grundlagen, Variablen, Wiederholungen gibt 0 aus, anschließend wird $i auf den Wert 1 erhöht. $i=0; echo ++$i; erhöht zuerst $i auf 1 und gibt den Wert 1 aus. 1.8 Wiederholung von Anweisungen mit der while-schleife Mit der foreach -Schleife haben wir bereits eine Möglichkeit vorgestellt, um dieselbe Anweisung mehrfach abzuarbeiten. Gleich noch ein Beispiel: $t = I c h s o l l meine Uebungsaufgaben s e l b s t e r s t e l l e n!<br>\n ; $i = 0; / / I n i t i a l i s i e r u n g while ($i < 10) { echo $t; $i++; } Hier wird 10-mal der Text in der Variablen $t mit Hilfe einer while -Schleife ausgegeben. Zu Beginn wird $i dazu auf 0 gesetzt. $i wird in jedem Schleifendurchlauf um 1 erhöht, bis $i den Wert 10 erreicht. Dann ist die Bedingung ($i < 10) nicht mehr wahr und die Schleife bricht ab. 1.9 Aufgaben 1. Schreiben Sie ein Dokument, das einen PHP-Befehl enthält, der den Text: Romanes eunt domus ausgibt. 2. Erstellen Sie eine PHP-Datei, welche die nachfolgend angegebene Adresse in einem skalaren Array speichert und anschließend in einer HTML-Tabelle auf dem Bildschirm ausgibt. Name: Meier Vorname: Wolfgang Anschrift: Waldweg 13 PLZ: Ort: Testburg 3. Weisen Sie die o. g. Adressdaten mit Hilfe der array -Funktion einem assoziativen Array zu. Geben Sie die Adresse anschließend in einer HTML-Tabelle auf dem Bildschirm aus. 4. Erweitern Sie das Beispiel aus dem Kapitel so, dass die gesamte Datenstruktur in einer HTML- Tabelle im Browserfenster ausgegeben wird. 5. Schreiben Sie eine HTML-Seite, auf der 1000-mal Romanes eunt domus richtig geschrieben steht. 6. Schreiben Sie ein HTML-Formular, in das man eine Zahl eingeben kann. Klickt man auf Abschicken, wird so oft der Text Romanes eunt domus ausgegeben, wie diese Zahl angibt. 7. Schreiben Sie ein Formular, in das zwei Zahlen eingegeben werden können. Klickt man auf Abschicken, so sollen diese Zahlen miteinander multipliziert und das Ergebnis auf einer Webseite ausgegeben werden. Vorlesung 1-9

15 Vorlesung 1: Grundlagen, Variablen, Wiederholungen 8. Lassen Sie alle Schlüssel und Werte des in PHP automatisch vordefinierten assoziativen Arrays $ SERVER als HTML-Seite mit Hilfe der foreach -Schleife ausgeben. Vorlesung 1-10

16 Vorlesung 2: Kontrollstrukturen, Dateioperationen Vorlesung 2 Kontrollstrukturen, Dateioperationen 2.1 Weitere Befehle zur Ablaufkontrolle Im vorherigen Kapitel haben wir mit der foreach - und der while -Schleife zwei Möglichkeiten kennengelernt, eine Wiederholung von Anweisungen mit Hilfe eines Schleifenkonstrukts zu erzeugen. Statt $t = I c h s o l l meine Uebungsaufgaben s e l b s t e r s t e l l e n!<br>\n ; $i = 0; while ( $i < 10 ) { echo $t; $i++; } kann man aber in PHP auch schreiben: $t = I c h s o l l meine Uebungsaufgaben s e l b s t e r s t e l l e n!<br>\n ; $i = 0; do { echo $t; $i++; } while ( $i < 10 ); Wo liegt der Unterschied zwischen diesen beiden Schleifenkonstrukten? Man bemerkt den Unterschied, wenn z. B. statt $i=0; zu Beginn $i=10; gesetzt wird. Im ersten Fall ist die Bedingung ($i < 10) nicht wahr und die Befehle innerhalb der geschweiften Klammern werden nicht ausgeführt. Im zweiten Fall werden zuerst die Befehle innerhalb der geschweiften Klammern ausgeführt, danach wird getestet, ob die Bedingung ($i<10) erfüllt ist. Dies ist nicht der Fall, also wird abgebrochen. D. h. aber, die Schleife wird mindestens einmal durchlaufen. Eine weitere Möglichkeit, eine Schleife zu programmieren, ist der for -Befehl. Gleich ein Beispiel: $t = I c h s o l l meine Uebungsaufgaben s e l b s t e r s t e l l e n!<br>\n ; for ( $i=0; $i < 10; $i++ ) { echo $t; } Der for -Befehl besteht aus drei Ausdrücken. for ( ausdruck1; ausdruck2; ausdruck3) {... } Mit ausdruck1 wird die Schleife initialisiert, d. h. normalerweise wird die Variable, die die Schleifendurchläufe zählt, auf den Anfangswert gesetzt. ausdruck2 gibt die Abbruchbedingung für die Schleife an. In ausdruck3 wird die Variable, die die Schleifendurchläufe zählt, erhöht bzw. erniedrigt. Der for -Befehl hat den Vorteil, dass alle zur Kontrolle der Schleife nötigen Befehle in einer Zeile stehen. Vorlesung 2-1

17 Vorlesung 2: Kontrollstrukturen, Dateioperationen Ein weiteres Beispiel, diesmal wird heruntergezählt. $t = I c h s o l l meine Uebungsaufgaben s e l b s t e r s t e l l e n!<br>\n ; for ( $i=10; $i > 0; $i-- ) { echo $t; } 2.2 Fallunterscheidungen Zur Fallunterscheidung (= bedingte Verzweigung) gibt es in PHP den if -Befehl: 1 if ($i < 0) { 2 echo $i i s t k l e i n e r a l s N u l l \n ; 3 } oder auch 1 if ($i < 0) { 2 echo $i i s t k l e i n e r a l s N u l l \n ; 3 } else { 4 echo $i i s t n i c h t k l e i n e r a l s N u l l \n ; 5 } Man kann diesen Befehl auch nach dem folgenden Muster schachteln: 1 if ( $i < 0 ) { 2 echo $i i s t k l e i n e r a l s N u l l \n ; 3 } elseif ( $i > 0 ) { 4 echo $i i s t g r o e s s e r a l s N u l l \n ; 5 } else { 6 echo $i i s t N u l l \n ; 7 } Hat man mehrere Tests der gleichen Variablen vorzunehmen, so läßt sich mit dem switch -Befehl evtl. Arbeit einsparen: switch ($name) { case H e i n r i c h : echo I c h b i n der k l u g e H e i n r i c h ; break; case Hans : echo I c h b i n der dumme Hans ; break; case Agathe : echo I c h b i n d i e Agathe und k l ü g e r a l s H e i n r i c h und Hans ; break; default: echo Wir s i n d der R e s t ; } Falls die Variable $name den Wert Hans hat, wird als nächster Befehl echo I c h b i n der dumme Hans ; ausgeführt. Normalerweise würden dann alle nachfolgenden Befehle ausgeführt werden, u. a. echo I c h b i n d i e Agathe und k l ü g e r a l s H e i n r i c h und Hans ; Vorlesung 2-2

18 Vorlesung 2: Kontrollstrukturen, Dateioperationen Dies ist meist nicht erwünscht, man springt deshalb mit der Anweisung break aus dem switch -Befehl heraus. 2.3 Weitere Vergleichsmöglichkeiten Bisher konnten wir testen, ob $i < 10 oder $i > 10 gilt. Es gibt in PHP aber natürlich noch mehr Vergleichsmöglichkeiten, die nachfolgend in einer Übersicht zusammengestellt sind: Beispiel Name Ergebnis $a == $b Gleich Gibt TRUE zurück, wenn $a gleich $b ist. $a === $b Identisch Gibt TRUE zurück wenn $a gleich $b ist und beide vom gleichen Typ sind(nur ab PHP 4). $a!= $b Ungleich Gibt TRUE zurück, wenn $a nicht gleich $b ist. $a <> $b Ungleich Gibt TRUE zurück, wenn $a nicht gleich $b ist. $a!== $b Nicht identisch Gibt TRUE zurück, wenn $a nicht gleich $b ist, oder wenn beide nicht vom gleichen Typ sind (nur PHP 4). $a < $b Kleiner Als Gibt TRUE zurück, wenn $a kleiner als $b ist. $a > $b Größer Als Gibt TRUE zurück, wenn $a größer als $b ist. $a <= $b Kleiner Gleich Gibt TRUE zurück, wenn $a kleiner oder gleich $b ist. $a >= $b Größer Gleich Gibt TRUE zurück, wenn $a größer oder gleich $b ist. Ein weiterer Vergleichs-Operator ist der?: - oder Trinitäts-Operator. Er arbeitet genauso wie in C und vielen anderen Programmier-Sprachen. (ausdr1)? (ausdr2) : (ausdr3); Dieser Ausdruck gibt ausdr2 zurück, wenn ausdr1 TRUE zurückgibt und ausdr3, wenn ausdr1 FAL- SE zurückgibt. Man kann auch Bedingungsprüfungen durch den Einsatz von Logik-Operatoren (Boolsche Logik) beliebig kombinieren: Beispiel: ($i == 10) && ($j > 0) : Ist $i gleich 10 und $j größer als 0? ($i == 10) ($j == 0) : Ist $i gleich 10 oder $j gleich 0? Hier in einer Übersicht die möglichen Logik-Operatoren: Beispiel Name Ergebnis $a and $b Und TRUE wenn sowohl $a als auch $b TRUE ist. $a or $b Oder TRUE wenn $a oder $b TRUE ist. $a xor $b Entweder Oder TRUE wenn entweder $a oder $b TRUE ist, aber nicht beide.! $a Nicht TRUE wenn $a nicht TRUE ist. $a && $b Und TRUE wenn sowohl $a als auch $b TRUE ist. $a $b Oder TRUE wenn $a oder $b TRUE ist. Vorlesung 2-3

19 Vorlesung 2: Kontrollstrukturen, Dateioperationen 2.4 Nochmals HTML-Formulare Wir haben gelernt, dass in einer PHP-Datei, die aus einem Formular gestartet wird, die Namen der Formular-Elemente als assoziative Indices in den Arrays $ REQUEST, $ POST und $ GET zur Verfügung stehen. Dies kann man nutzen, um Formular und Befehle, die das Formular behandeln, in einer einzigen PHP-Datei zusammenzufassen: Angenommen die Datei form.php enthält folgendes Formular: <FORM ACTION= form. php METHOD=POST> <INPUT NAME= b e l i e b i g e r n a m e > <INPUT TYPE= s u b m i t > </FORM> Dann ruft sich beim Klicken auf den Schaltknopf submit die Datei selbst auf. Allerdings ist beim zweiten Aufruf innerhalb des Arrays $ REQUEST der assoziative Index beliebigername Name gesetzt. Dies können wir folgendermaßen ausnützen, um Anfrage und Antwort in einem Skript abzuwickeln: <?php if( isset( $_REQUEST[ b e l i e b i g e r n a m e ] ) ) { echo S i e haben.$_request[ b e l i e b i g e r n a m e ]. e i n g e g e b e n \n ; }?> <P> <FORM ACTION= form. php METHOD=POST> <INPUT NAME= b e l i e b i g e r n a m e > <INPUT TYPE= s u b m i t > </FORM> Wird die Datei zum ersten Mal aufgerufen, d. h. ohne dass man auf den Submit- Button klickt, so ist $ REQUEST["beliebigername"] nicht gesetzt, der Ausdruck isset($ REQUEST["beliebigername"] ist also nicht wahr. Füllt man das Formular dann aus und klickt auf submit, so ist die Variable gesetzt, Die Bedingung isset($ REQUEST["beliebigername"] ist wahr und es wird Sie haben Text eingegeben ausgegeben. Will man danach die Skriptauswertung abbrechen, so sollte der Befehl exit; verwendet werden. 2.5 Dateien hinzuladen Der Befehl include_once( dateiname ); liest den Inhalt der Datei dateiname so, als ob er an dieser Stelle im Skript stehen würde. Damit kann z. B. sehr leicht ein einheitliches Layout bei einer größeren Anzahl von Dateien erreicht werden. Beispiel: 1 <?php 2 $kopf= v o r l a g e n / k o p f b e r e i c h. t p l ; Vorlesung 2-4

20 Vorlesung 2: Kontrollstrukturen, Dateioperationen 3 $fuss= v o r l a g e n / f u s s b e r e i c h. t p l ; 4?> 5 6 <!doctype html public //W3C / / DTD HTML 4. 0 / / EN > 7 <html> 8 <head> 9 <title>titel hier</title> 10 </head> 11 <body> <?php 14 if( file_exists( $kopf ) ){ 15 include_once( $kopf ); 16 } 17?> <p> 20 Hier steht nun der Hauptteil des Dokuments. 21 </p> <?php 24 if( file_exists( $fuss ) ){ 25 include_once( $fuss ); 26 } 27?> </body> 30 </html> 2.6 Dateien lesen und schreiben Wir wollen nun von Dateien, die auf dem Server liegen, lesen bzw. in diese Dateien etwas hineinschreiben. Dies ist nützlich, um z. B. Zähler oder Gästebücher zu erzeugen. Wichtig: Aus Sicherheitsgründen ist der Webserver auf Systemen, die von mehreren Usern genutzt werden, i. d. R. einem besonderen Benutzer auf dem Server-Computer zugeordnet, der sehr wenig Rechte hat. U. a. darf er nicht einfach in eine Datei in einem User-Verzeichnis schreiben. Genausowenig darf er eine Datei in einem User-Verzeichnis erzeugen. Um eine für Schreibaktionen durch den Webserver freigegebene Datei xxx zu erzeugen, müssen Sie auf Serversystemen folgendermaßen vorgehen: Verwenden Sie z. B. das Programm ws ftp unter Windows, so kann man im ftp-programm die Datei anwählen, auf die rechte Maustaste klicken und dann den Befehl chmod verwenden. Steht der Befehl chmod nicht per Mausklick zur Verfügung, so kann man die Rechte dennoch mit einem ftp-befehl eingeben: Der Befehl lautet site chmod xyz DATEINAME x, y, z sind 3 Ziffern, die die Rechte für den Datei-Eigentümer, die Benutzergruppe des Datei-Eigentümers (das sind üblicherweise alle anderen Benutzer auf dem Computer) und den Rest der Welt bestimmen. Dabei gilt: Jede der 3 Ziffern liegt zwischen 0 und 7. Vorlesung 2-5

21 Vorlesung 2: Kontrollstrukturen, Dateioperationen 0 bedeutet: keinerlei Zugriffsrecht. 1 bedeutet: Ausführrecht (wichtig bei Programmen und Verzeichnissen). 2 bedeutet: Schreibrecht (was gleichzeitig auch Löschrechtïst). 4 bedeutet: Leserecht. Der Clou an der Sache ist, dass die Zahlen addiert werden können: Will man einer Datei Lese- und Schreibrecht zuordnen, so ist die Zahl 2+4=6 anzugeben. Beispiele: site chmod 777 DATEINAME gibt jedem das Recht, alles mit der Datei DATEINAME anzustellen. site chmod 754 DATEINAME bedeutet, der Eigentümer darf alles mit der Datei anstellen, die Gruppe des Eigentümers darf die Datei ausführen und lesen, der Rest darf die Datei nur lesen. Achtung: Der Webserver läuft normalerweise unter dem User nobody, ist also weder der Eigentümer noch gehört er zur Gruppe des Eigentümers. OK. Gehen wir davon aus, dass wir nun eine Datei mit dem Namen xxx haben, deren Inhalt wir lesen wollen. Ein kurzes Dateilese- -Programm kann folgendes Aussehen haben: 1 $datei = fopen( xxx, r ); 2 3 while (!feof($datei)) { 4 $zeile = fgets($datei,1000); 5 echo $zeile; 6 } 7 8 fclose($datei); Erläuterungen: Zuerst müssen wir die Datei öffnen, dabei muß angegeben werden, was mit der Datei geschehen soll: Wollen wir lesen, schreiben, anhängen,... Der PHP-Befehl lautet $datei = fopen( xxx, r ); Das heißt, wir öffnen die Datei mit dem Namen xxx und wollen darin lesen ("r" ). Die technischen Details lassen wir dabei von der Variablen $datei regeln, d. h. wenn wir später aus der Datei lesen wollen, so benützen wir die Variable $datei. Nun lesen wir zeilenweise den Inhalt der Datei, und zwar so lange, bis wir ans Ende der Datei gelangt sind: while (!feof($datei)) { $zeile = fgets($datei,1000); echo $zeile; } feof($datei) ist wahr, sobald wir an das Datei-Ende gelangt sind. $zeile = fgets($datei,1000); liest maximal die nächsten 1000 Zeichen, hört aber auf, sobald eine neue Zeile beginnt, oder das Ende der Datei erreicht ist. echo $zeile; gibt einfach das Gelesene wieder aus. Schließlich muß die Datei noch geschlossen werden: Vorlesung 2-6

22 Vorlesung 2: Kontrollstrukturen, Dateioperationen fclose($datei); Folgende Möglichkeiten gibt es, eine Datei zu öffnen: "r" : nur lesen, begonnen wird am Dateianfang. "r+" : lesen und schreiben, begonnen wird am Dateianfang. "w" : nur schreiben. Existiert die Datei bereits, wird der bisherige Inhalt gelöscht. Existiert sie nicht, wird versucht, sie zu erzeugen. "w+" : lesen und schreiben. Ansonsten wie "w". "a" : nur schreiben. Begonnen wird am Ende der Datei (a wie append, anhängen). Existiert sie nicht, wird versucht. sie zu erzeugen. "a+" : lesen und schreiben. Ansonsten wie "a". Achtung: Es wird beim Lesen natürlich auch am Ende der Datei begonnen (dort steht natürlich nichts mehr...) Mit dem Befehl fwrite($datei, Ein T e x t ); kann der String Ein Text in die Datei geschrieben werden. 2.7 Aufgaben zur Vorlesung 1. Geben Sie auf im Browserfenster das Kleine 1 x 1 aus. 2. Schreiben Sie einen einfachen Rechner, der mit Hilfe der bedingten Verzweigung (if-else bzw. switch ) die vier arithmetischen Grundrechenarten Addition, Subtraktion, Multiplikation und Division für zwei in ein Formular einzugebende Zahlen umsetzt. 3. Lassen Sie im Browserfenster ein HTML-Formular ausgeben, in das man eine Zahl eingeben kann. Klickt man auf Abschicken, wird so oft der Text Romanes eunt domus ausgegeben, wie diese Zahl angibt. Formulareingabe und -auswertung sollen in einem PHP-Skript vereinigt werden. 4. Schreiben Sie ein Gästebuch. D. h. der Benutzer kann in einem Formular einen Text eingeben. Dieser Text wird dann an eine Datei angehängt, die anschließend ausgegeben wird. 5. Schreiben Sie mit PHP einen Zähler (Counter) für eine Seite. Lösungshilfe: Beim Aufruf der Seite wird eine Datei geöffnet. Die darin enthaltene Zahl wird nun gelesen, ausgegeben, um 1 erhöht und wieder in die Datei zurückgeschrieben. 6. Schreiben Sie ein PHP-Skript, mit dem dynamisch verschiedene Inhalte geladen und in einem festen Seitenlayout dargestellt werden können. Lösungshilfe: Schreiben Sie eine HTML-Seite mit vordefiniertem Kopf- und Fussteil. Laden Sie durch Übergabe im Array $ GET (siehe Abbildung 2.1) dynamisch die Inhalte aus anderen Dateien unter Benutzung der include-funktion in den Mittelteil der Ausgabe. Vorlesung 2-7

23 Vorlesung 2: Kontrollstrukturen, Dateioperationen Abbildung 2.1: Seitenaufruf mit Übergabeparameter Vorlesung 2-8

24 Vorlesung 3: Vordefinierte und benutzerdefinierte Funktionen Vorlesung 3 Vordefinierte und benutzerdefinierte Funktionen 3.1 Funktionen Ein wichtiger Bestandteil einer jeden modernen Programmiersprache ist die Fähigkeit, mehrere Anweisungen zu einem einzigen Befehl zusammenzufassen, d. h. neue Funktionen zu definieren (benutzerdefinierte Funktionen). PHP verfügt über diese Fähigkeit selbstverständlich auch. Ein Beispiel: Wir wollen für eine bestimmte Anzahl von Tagen berechnen, wieviele Sekunden diese Tage zusammen haben. 1 <!doctype html public //W3C / / DTD HTML 4. 0 / / EN > 2 <html> 3 <head> 4 <title>title here!</title> 5 </head> 6 <body> 7 <?php 8 function tag ( $anzahl ) { 9 $sekunden = 3600 * 24 * $anzahl; 10 return $sekunden; 11 } $x = tag(7); 14 echo 7 Tage b e s t e h e n aus $x Sekunden! ; 15?> 16 </body> 17 </html> $anzahl nennt man auch Argument oder Übergabeparameter der Funktion. Eine Funktion kann mehrere Argumente oder auch kein Argument besitzen: 1 function zinseszins ($prozent,$laufzeit) { 2 $kapital = ; 3 $x = ($prozent/100.0); 4 $y = $kapital * exp( $laufzeit*log($x) ); 5 return $y; 6 } 7 8 $proz = 6; 9 $zeit = 10; 10 $x = zinseszins($proz,$zeit); 11 echo Das K a p i t a l b e t r ä g t $x Euro ; Mehr zu den hier verwendeten mathematischen Funktionen exp() und log() kann man im PHP- Handbuch nachlesen. Problematisch ist im obigen (zugegebenermaßen etwas konstruierten) Beispiel, dass die Variable $kapital in der Funktion selbst festgelegt wird. Natürlich wird man auch diesen Wert normalerweise als Argument der Funktion übergeben, also etwa: 1 function zinseszins ($prozent,$laufzeit,$kapital) {... } Vorlesung 3-1

25 Vorlesung 3: Vordefinierte und benutzerdefinierte Funktionen Wir wollen aber jetzt den Fall betrachten, dass diese Variable bereits im Vorfeld der PHP-Datei gesetzt ist und wir sie nicht als Argument übergeben wollen. Dann müssen wir für die Funktion explizit angeben, dass die Variable von außen stammt. Dies geschieht durch den Befehl global : 1 $kapital = ; 2 3 function zinseszins ($prozent,$laufzeit) { 4 global $kapital; 5 6 $x = ($prozent/100.0); 7 $y = $kapital * exp( $laufzeit*log($x) ); 8 return $y; 9 } $proz = 6; 12 $zeit = 10; 13 $x = zinseszins($proz,$zeit); 14 echo Das K a p i t a l b e t r ä g t $x Euro ; Es empfiehlt sich benutzerdefinierte Funktionen, die häufiger in verschiedenen Skripten zum Einsatz kommen sollen, in gesonderten Bibliotheks-Dateien (ggfs. in gesonderten Unterverzeichnissen) zu speichern und bei Bedarf mit dem include once -Befehl in die Skripten einzubinden. Sinnvoll kann es auch sein, die Bibliotheks-Dateien außerhalb des offen zugänglichen Webbereichs (z. B. Verzeichnis www ) auf dem Server abzulegen, um die Inhalte dem allgemeinen Zugriffs zu entziehen. account includes meinesuperfunktionen.inc www offener Bereich tageinsekunden.php 1 <?php 2 include_once(.. / i n c l u d e s / m e i n e S u p e r F u n k t i o n e n. i n c ); 3?> 4 <!doctype html public //W3C / / DTD HTML 4. 0 / / EN > 5 <html> 6 <head> 7 <title>title here!</title> 8 </head> 9 <body> 10 <?php 11 $x = tag(7); 12 echo 7 Tage b e s t e h e n aus $x Sekunden! ; Vorlesung 3-2

26 Vorlesung 3: Vordefinierte und benutzerdefinierte Funktionen 13?> 14 </body> 15 </html> 3.2 Vordefinierte Funktionen PHP verfügt über eine inzwischen umfangreiche Bibliothek von vordefinierten Funktionen, die für die meisten Problemstellungen im Zusammenhang mit der Erzeugung dynamische Webseiten optimierte Lösungen bereit stellen. Einige dieser Funktionen wurden bereits vorgestellt. Diese Funktionsbibliothek ist im Abschnitt Funktionsreferenz des PHP-Handbuchs dokumentiert, welches für jede PHP-Version veröffentlicht wird. Hier im Überblick die Referenzkapitel der PHP-Version 4: Allgemein nützliche Funktionen für die Erzeugung dynamischer Webseiten: II. IV. VI. IX. XVI. XVIII. XXIII. XXIV. XXX. XCVII. XCIX. LI. LV. LIX. LXXVIII. LXXXII. LXXIV. LXXXVII. LXXXIX. Array Funktionen Mathematische Funktionen mit beliebiger Genauigkeit Kalender-Funktionen Klassen- und Objekt-Funktionen Character type functions Datums- und Zeit-Funktionen Direkte Ein-/Ausgabe Funktionen Verzeichnis-Funktionen Funktionen des Dateisystems String-Funktionen Tokenizer functions Mathematische Funktionen Hash Funktionen Sonstige Funktionen PHP Optionen und Informationen Funktionen zur Programmausführung Funktionen zur Ausgabesteuerung Regular Expression Functions (Perl-Compatible) Reguläre Ausdrücke Funktionen (POSIX erweitert) Funktionen zur Generierung und Bearbeitung bestimmter Dateiformate: V. Bzip2 Komprimierungsfunktionen X. ClibPDF Funktionen XXV. DOM XML Funktionen XXXI. Forms Data Format Funktionen XLI. Grafik-Funktionen XCIV. Shockwave Flash Funktionen LVIII. Ming functions for Flash LXXVI. PDF Funktionen CIV. WDDX Funktionen CV. XML parser functions CVI. XML-RPC functions CVII. XSLT Funktionen CX. ZIP Funktionen (Lesezugriff) CXI. Zlib Komprimierungsfunktionen Vorlesung 3-3

27 Vorlesung 3: Vordefinierte und benutzerdefinierte Funktionen Funktionen für Netzwerk-Operationen: I. Apache-spezifische Funktionen XII. CURL, Client URL Library Functions XV. Cyrus IMAP administration functions XXXIII. FTP-Funktionen XXXVII. HTTP-Funktionen XLII. IMAP, POP3 und NNTP Funktionen XLVIII. LDAP Funktionen XLIX. Mail Funktionen L. mailparse functions LVI. Mimetype Functions XLVI. IRC Gateway Funktionen LXV. Netzwerk Funktionen XC. Semaphor und Shared Memory Funktionen LXXI. OpenSSL Funktionen XCIII. Shared Memory Funktionen (Gemeinsamer Speicher) XCV. SNMP Funktionen XCII. Session Funktionen XCVI. Socket Funktionen C. URL Funktionen CII. vpopmail functions CIX. YP/NIS Funktionen Funktionen für den Zugriff auf spezielle Datenbanken: XVII. XIX. XX. XXI. XXII. XXVIII. XXIX. XXXVIII. XXXIX. XLIII. XLIV. XLV. LVII. LXI. LXII. LXVII. LXVIII. LXX. LXXII. LXXIII. LXXX. XCI. XCVIII. dba Datenbank (dbm-style) Abstraktions-Funktionen dbase Funktionen DBM Datenbankfunktionen dbx Funktionen DB++ Functions FrontBase Funktionen filepro Funktionen Hyperwave functions Hyperwave API functions Informix Funktionen InterBase-Funktionen Ingres II Funktionen Microsoft SQL Server Funktionen msql Funktionen MySQL Funktionen Lotus Notes functions ODBC Funktionen Oracle 8 Funktionen Oracle Funktionen Ovrimos SQL functions PostgreSQL Funktionen SESAM Datenbankfunktionen Sybase functions Weitere Funktionen der Standardbibliothek XIV. III. Crédit Mutuel CyberMUT functions Aspell Funktionen [veraltet] Vorlesung 3-4

28 Vorlesung 3: Vordefinierte und benutzerdefinierte Funktionen VII. VIII. XI. XIII. XXVI. XXVII. XXXII. XXXIV. XXXV. XXXVI. XL. XLVII. LII. LIII. LIV. LX. LXIII. LXIV. LXVI. LXIX. LXXV. LXXVII. LXXIX. LXXXI. LXXXIII. LXXXIV. LXXXV. LXXXVI. LXXXVIII. CIII. CVIII. CCVS API Funktionen COM Support Funktionen für Windows Crack Funktionen Cybercash Bezahl Funktionen.NET Funktionen Error Handling and Logging Functions FriBiDi Funktionen Function Handling functions GNU Gettext GMP functions iconv Funktionen Java Funktionen Multi-Byte String Functions MCAL Funktionen Mcrypt Encryption Functions mnogosearch Funktionen Mohawk Software Session Handler Funktionen muscat functions Ncurses terminal screen control functions Object Aggregation/Composition Functions Object property and method call overloading Verisign Payflow Pro Funktionen POSIX Funktionen Process Control Functions Printer functions Pspell Funktionen GNU Readline GNU Recode Funktionen qtdom functions W32api functions YAZ functions Achtung: Nicht jedes Funktionsmodul ist bei den verschiedenen Providern auch tatsächlich aktiviert. 3.3 String-Funktionen Ein wichtiges Betätigungsfeld von PHP ist die Bearbeitung von Zeichenketten. Es gibt eine ganze Reihe von vordefinierten Funktionen um Zeichenketten zu manipulieren. Wir stellen hier nur die wichtigsten vor, der Rest kann im Handbuch unter dem Stichwort String-Funktionen nachgeschlagen werden. Die Funktion trim() entfernt Leerzeichen, Tabulatorzeichen etc. (sogenannten whitespace ) vor dem ersten und nach dem letzten echten Zeichen in der Zeichenkette. $x = I c h b i n e i n e Z e i c h e n k e t t e! ; $y = trim($x); Die Funktionen ltrim() und chop() entfernen whitespace vor bzw. nach der Zeichenkette. Für die verspielten PHP-Programmierer: strtoupper() und strtolower() wandeln alle Zeichen eines Strings in Großbuchstaben bzw. Kleinbuchstaben um. Achtung: Probleme kann es bei Umlauten geben. Die Funktion ucfirst() wandelt das erste Zeichen eines Strings in Großbuchstaben um (wenn möglich). Vorlesung 3-5

29 Vorlesung 3: Vordefinierte und benutzerdefinierte Funktionen Die Funktion ucwords() hingegen wandelt in jedem Wort eines Strings das erste Zeichen in Großbuchstaben um (wenn möglich). Die folgende Funktion ist besonders wichtig, wenn man vorhandenen Text für das WWW aufbereiten will: $x = nl2br($y); ersetzt alle Zeilenumbruch-Zeichen ( \n ) des Strings $y in die Zeichenfolge <BR>\n. Daneben gibt es noch einige wichtige Funktionen, um Strings zu vergleichen, zu ersetzen und mit HTML- Sonderzeichen umzugehen. 3.4 Aufgaben zur Vorlesung 1. Erstellen Sie eine Funktion flaeche(), welche als Übergabeparameter zwei Zahlen erhält (eine Längen- und ein Breitenangabe) und die entsprechende Fläche zurück liefert. Testen Sie die Funktion in einer PHP-Anwendung. 2. Erstellen Sie eine Funktion mitglied(), welche als Übergabeparameter eine Zahl erhält. Die Funktion soll das dieser Zahl entsprechende Mitglied namentlich zurückmelden. Erzeugen Sie dazu zunächst innerhalb der Funktion ein skalares Array nach folgendem Muster: $adresse[0] : $adresse[1] : $adresse[2] : $adresse[3] : Dieter Schulz Wolfgang Herbst Franz Lang Horst Schmidt 3. Erweitern Sie die vorhergehende Aufgabe so, dass überprüft wird, ob ein bestimmter Name Mitglied ist. D. h. als Übergabeparameter erhält die Funktion einen beliebigen Namen und liefert entweder die Nummer zurück oder aber eine Fehlermeldung. 4. Lassen Sie einen Text über ein HTML-Formular eingeben und geben Sie den Text vollständig in Großbuchstaben als Antwort zurück. Benutzen Sie dazu eine geeignete String-Funktion aus der PHP- Bibliothek. 5. Lassen Sie einen Text über ein HTML-Formular eingeben und geben Sie den Text in umgekehrter Reihenfolge aller Buchstaben als Antwort zurück. Benutzen Sie dazu eine geeignete String-Funktion aus der PHP-Bibliothek. 6. Lassen Sie einen Text über ein HTML-Formular eingeben und geben Sie den Text in umgekehrter Reihenfolge alle Wörter als Antwort zurück. Benutzen Sie dazu die Funktion explode() aus der PHP-Bibliothek. Vorlesung 3-6

30 Vorlesung 4: Zugriff auf Datenbanken Vorlesung 4 Zugriff auf Datenbanken 4.1 Einführung Eines der Haupteinsatzgebiete von PHP ist der Online-Zugriff auf Datenbanken. Was ist eine Datenbank? Vereinfacht gesagt: Eine Datenbank enthält geordnete Informationen, die Daten. Zusammengehörige Daten sind dabei in Datensätzen vereint. Mit den Daten in einer Datenbank kann unter Nutzung eines Datenbank-Management-Systems (DBMS) bedarfgerecht gearbeitet werden. Zum Beispiel können bestimmte Datensätze ausgelesen werden, neue Datensätze hinzugefügt werden, Datensätze können aktualisiert oder gelöscht werden. Diese Vorgänge erfolgen durch sogenannte Datenbank-Abfragen. Abbildung 4.1: PHP, DBMS, Datenbanken dbnli01 PHP-Skript Datenbank Management System (z.b. MySQL) dbnli02 dbnli02 Weit verbreitet sind relationale Datenbanken-Management-Systeme, die Datenbanken über mehrere Tabellen (Relationen) verteilt verwalten. Alle marktgängigen DBMS ermöglichen die Übermittlung von Anfragen an eine Datenbank mit Hilfe der Abfragesprache SQL (Structured Query Language). PHP unterstützt die Datenbankabfrage mittels SQL und kann mit den DBMS nahezu aller Hersteller direkt oder unter Vermittlung der spezifischen ODBC-Treiber kommunizieren. Im Bereich der Webprogrammierung erfreut sich das DBMS MySQL besonderer Beliebtheit. Vorteile von MySQL: es ist schnell und es ist kostenlos. Vorlesung 4-1

31 Vorlesung 4: Zugriff auf Datenbanken 4.2 Zugriff auf Datenbanken Um eine SQL-Abfrage mit PHP auszuführen, muss zuerst die Datenbank geöffnet werden (vergleichbar mit dem Zugriff auf eine Datei), dann wird die SQL-Befehlszeile an die Datenbank geschickt, die Antwort der Datenbank wird aufgenommen und schließlich wird die Datenbank-Verbindung wieder geschlossen. 4.3 SQL-Grundlagen Um mit MySQL produktiv arbeiten zu können, müssen wir uns zunächst etwas Hintergrundwissen über die Struktur von SQL-Abfragen verschaffen. SQL-Datenbanken bestehen aus einer Tabelle oder mehreren Tabellen (Relationen). Jeder Datensatz der Datenbank entspricht dabei genau einer Zeile in einer Tabelle. Beispiel: Ein Kneipenführer. Die Tabelle kneipen (zur Datenstruktur siehe Abbildung 4.2): ID Name Art Note Kommentar 1 Herzogkeller Biergarten 1 Sehr schöner Baumbestand 2 Glenk Biergarten 1 Gute Bratwürste Abbildung 4.2: Struktur der Tabelle kneipen Man kann auf die Tabellen einer Datenbank einzeln zugreifen, aber auch Tabellen verküpfen. Wir wollen uns hier der Einfachkeit halber zunächst auf eine einzige Tabelle beschränken. Es gibt im wesentlichen vier Abfragemöglichkeiten: Auslesen: Einfügen: Überschreiben: Löschen: SELECT INSERT UPDATE DELETE Will man z. B. alle Kneipennamen, die sich in der Datenbank befinden, auslesen, so gibt man den SQL- Befehl Vorlesung 4-2

32 Vorlesung 4: Zugriff auf Datenbanken SELECT Name FROM kneipen; ein. Will man Name und Art der Kneipe ausgeben, so lautet der Befehl SELECT Name,Art FROM kneipen; Soll schließlich die komplette Tabelle ausgelesen werden, so genügt der Befehl SELECT * FROM kneipen; Die auszulesenden Datensätze können nun noch weiter spezifiziert werden: SELECT * FROM kneipen WHERE NOTE=1; gibt nur die Datensätze aus, die in der Spalte Note eine 1 enthalten. Eine sortierte Ausgabe der Datensätze kann mit SELECT * FROM kneipen WHERE NOTE=1 ORDER BY Name; erzeugt werden. Neue Datensätze werden folgendermaßen hinzugefügt: INSERT kneipen (Name,Art,Note,Kommentar) VALUES ( Glenk, B i e r g a r t e n,1, Gute B r a t w ü r s t e ); Vorhandene Datensätze können mit UPDATE kneipen SET Note=2, Kommentar= Die B r a t w ü r s t e l a s s e n nach WHERE ID=2; überschrieben werden. Das soll als erster Einblick genügen. SQL ist eine sehr mächtige Abfragesprache, insbesondere für Kombinationsabfragen aus mehreren Tabellen gleichzeitig (inner joins, outer joins,...) existiert eine eigene, beinahe mathematische Theorie. 4.4 SQL-Befehle mit PHP Die vorgestellten SQL-Befehle verwenden wir nun mit PHP. Wir wollen als Beispiel alle Datensätze aus der Tabelle kneipen in der Datenbank dbnli03 ausgeben. Zuerst muß eine Verbindung von PHP zum Datenbank-Server (d. h. dem Computer, auf dem die Datenbank liegt) hergestellt werden: / / Zugangsdaten werden z u n a e c h s t i n V a r i a b l e n h i n t e r l e g t $host = db. bbs l o e n i n g e n. de ; $login = n l i 0 3 ; $password = h e u t e ; / / Verbindung zum S e r v e r h e r s t e l l e n $verbindung = mysql_connect( $host, $login, $password ); Vorlesung 4-3

33 Vorlesung 4: Zugriff auf Datenbanken Wie im Beispiel zu sehen, kann auf beliebige Datenbankserver im Internet zugegriffen werden - vorausgesetzt man besitzt die entsprechende Zugangsberechtigung. Server, Benutzername und Passwort müssen Sie natürlich an die Gegebenheiten Ihres Systems anpassen. Wir sollten im Skript auch überprüfen, ob die Verbindung zum MySQL-Server klappt: $verbindung = mysql_connect( $host, $login, $password ); if (!$verbindung) { echo Keine Verbindung möglich!\ n ; exit; } Steht die Verbindung, so können wir die erste Abfrage starten. Zur besseren Übersicht schreiben wir die geplante SQL-Abfrage vorab in eine Variable: $abfrage = SELECT Name, A r t from k n e i p e n ; Diese Abfrage wird nun an den Datenbank-Server geschickt. Das Resultat fangen wir in der Variablen $erg auf. mysql_select_db( d b n l i 0 3 ); / / DB auswaehlen $erg = mysql_query( $abfrage ); / / Anfrage s t e l l e n Die erste Anweisung wählt die Datenbank dbnli03 aus, die wir abfragen wollen. Die zweite Anweisung schickt den SQL-Befehl an die ausgewählte Datenbank und liefert als Ergebnis eine Verweis auf das Abfrageergebnis. Dieser Verweis wird in der Variablen $erg abgelegt. Nun kommt eine etwas knifflige Arbeit: Wir müssen unter Verwendung von $erg die zurückgelieferten Datensätze auslesen. Hätten wir einen INSERT, UPDATE oder DELETE Befehl verschickt, würden wir nur testen, ob $erg wahr oder falsch ist, d. h. ob die Abfrage geklappt hat oder nicht. Da wir aber den SELECT-Befehl an die Datenbank geschickt haben, wollen wir die von der Datenbank zurückgelieferten Datensätze auslesen. Wir haben pro Datensatz die beiden Spalten Name und Art angefordert. Diese lesen wir nun zeilenweise aus: $zeile = mysql_fetch_array( $erg ) ); echo $zeile[ Name ]. i s t e i n ( e ).$zeile[ A r t ]. <br>\n ; Die Variable $erg enthält nach der Abfrage Zeilen mit jeweils zwei Spalten ( Name und Art ). mysql fetch array( $erg ) gibt genau eine Zeile als Assoziativ-Array zurück. Zu Beginn steht eine Art Zeiger auf der ersten Zeile des Datenbereichs, führt man den Befehl mysql fetch array( $erg ) aus, rutscht der Zeiger zur nächsten Zeile usw. Will man alle Zeilen ausgeben, empfiehlt sich eine Schleife: while ( $zeile = mysql_fetch_array( $erg ) ) { foreach( $zeile as $wert ) { echo $zeile[ Name ]. i s t e i n ( e ).$zeile[ A r t ]. <br>\n ; } } Vorlesung 4-4

34 Vorlesung 4: Zugriff auf Datenbanken Die Ergebnisse verarbeiten wir also zeilenweise zu HTML-Text. Alternative: Etwas eleganter läßt sich das Ergebnis der Datenbankabfrage auch unter Verwendung des list -Konstrukts auswerten, mit dem ein skalarer Array in Einzelvariablen (hier $Name und $Art ) aufgeteilt werden kann. list($name,$art) = mysql_fetch_array($erg); Innerhalb einer while -Schleife: while( list( $Name,$Art ) = mysql_fetch_array( $erg ) ) { echo $Name. i s t e i n ( e ).$Art. <BR>\n ; } Am Ende empfiehlt es sich, die Verbindung zur Datenbank zu kappen: mysql_close( $verbindung ); Das grundlegende Datenbankprogramm noch einmal im Gesamtüberblick: 1 / / Zugangsdaten werden z u n a e c h s t i n V a r i a b l e n h i n t e r l e g t 2 $host = db. bbs l o e n i n g e n. de ; 3 $login = n l i 0 3 ; 4 $password = h e u t e ; 5 6 / / Verbindung zum S e r v e r h e r s t e l l e n 7 $verbindung = mysql_connect( $host, $login, $password ); 8 9 if (!$verbindung) { 10 echo Keine Verbindung möglich!\ n ; 11 exit; 12 } / / SQL Abfrage f o r m u l i e r e n 15 $abfrage = SELECT Name, A r t from k n e i p e n ; mysql_select_db( d b n l i 0 3 ); / / DB auswaehlen 18 $erg = mysql_query( $abfrage ); / / Anfrage s t e l l e n / / E r g e b n i s der Abfrage p u b l i z i e r e n 22 while ( $zeile = mysql_fetch_array( $erg ) ) { 23 foreach( $zeile as $wert ) { 24 echo $zeile[ Name ]. i s t e i n ( e ).$zeile[ A r t ]. <br>\n ; 25 } 26 } mysql_close( $verbindung ); / / Verbindung kappen Vorlesung 4-5

35 Vorlesung 4: Zugriff auf Datenbanken 4.5 Verteilung des Datenbankprogramms auf mehrere Skriptdateien Das Datenbank-Programm aus dem vorhergehenden Kapitel ist - wie der Versuch gezeigt hat - voll funktionsfähig. Trotzdem lassen sich drei bedenkenswerte Kritikpunkte an ihm festmachen: 1. Im Skript sind die Zugangsdaten zum Datenbankserver im Klartext enthalten. Wenn das Skript im öffentlichen Bereich des Serverrechners liegt, sind diese Daten schnell gehackt. 2. Eine Wiederverwendung von Codeteilen ist nicht möglich. 3. Bei einem Wechsel des Datenbank-Management-Systems (Providerwechsel, Zweitinstallation auf einem anderen Server,...) muss das gesamte Programm umgeschrieben werden. Abhilfe verspricht hier die bewährte Praxis, das Programm auf mehrere Dateien zu verteilen. Einen Strukurvorschlag zeigt die nachfolgende Grafik. Abbildung 4.3: Verteilte Datenbankskripte account etc dbdaten.inc includes dbfunktionen.inc www offener Bereich datenlesen.php Die Dateien können folgendes Aussehen haben: Datei dbdaten.inc - enthält alle Zugangsdaten 1 / / Zugangsdaten werden z u n a e c h s t i n V a r i a b l e n h i n t e r l e g t 2 $host = db. bbs l o e n i n g e n. de ; Vorlesung 4-6

36 Vorlesung 4: Zugriff auf Datenbanken 3 $login = n l i 0 3 ; 4 $password = h e u t e ; 5 $database = d b n l i 0 3 ; 6 7 $connection = FALSE; / / Globale V a i a b l e f u e r d i e Verbindung Datei dbfunktionen.inc - enthält die Logik des Datenbankzugriffs für ein spezifisches DBMS 1 2 include_once(.. / e t c / dbdaten. i n c ); / / Zugangsdaten e i n b i n d e n 3 4 / 5 6 O e f f n e t d i e Verbindung zum DBMS und s e l e k t i e r t e i n e Datenbank 7 8 Rueckgabe : TRUE b e i E r f o l g, s o n s t FALSE 9 / 10 function open_database() { 11 global $host, $login, $password, $database, $connection; $status = FALSE; $connection = mysql_connect( $host, $login, $password ); if( $connection!= FALSE ) { 18 mysql_select_db( $database ); 19 $status = TRUE; 20 } return $status; 23 } / S c h l i e s s t e i n e o f f e n e Verbindung zum DBMS Rueckgabe : k e i n e 30 / 31 function close_database() { 32 global $connection; if( $connection!= FALSE){ 35 mysql_close( $connection ); 36 $connection = FALSE; 37 } return; 40 } / S t e l l e e i n e SQL SELECT Abfrage Rueckgabe : Z w e i d i m e n s i o n a l e r Array m i t a l l e n D a t e n s ä t z e n und D a t e n f e l d e r n 47 / 48 function select( $query_string ) { 49 $result = mysql_query( $query_string ); / / Anfrage s t e l l e n / / E r g e b n i s der Abfrage i n e i n e n z w e i d i m e n s i o n a l e n Array e i n l e s e n Vorlesung 4-7

37 Vorlesung 4: Zugriff auf Datenbanken 53 $i = 0; 54 while ( $zeile = mysql_fetch_array( $erg ) ) { 55 $resultarray[ $i ] = $zeile; 56 $i++; 57 } return $resultarray; 60 } Datei datenlesen.php - enthält das eigentliche Programm 1 include_once(.. / i n c l u d e s / d b F u n k t i o n e n. i n c ); / / Einbindung F u n k t i o n e n 2 3 / / SQL Abfrage f o r m u l i e r e n 4 $abfrage = SELECT Name, A r t from k n e i p e n ; 5 6 if( open_database() == TRUE ) { 7 $daten = select( $abfrage ); / / HTML Ausgabe 10 } 11 else { 12 echo Keine Verbindung zu S e r v e r und Datenbank m o e g l i c h... ; 13 } 4.6 Weitere SQL-Befehle Nachdem wir nun ein wenig Erfahrung mit SQL-Befehlen sammeln konnten, trauen wir uns auch an den DELETE -Befehl heran. Wichtig ist für diesen Befehl, dass ganz genau (und vorsichtig) spezifiziert wird, welcher Datensatz oder welche Datensätze aus der Datenbank gelöscht werden sollen. In unserem Beispiel ist es am besten, wenn man über das Feld ID den zu löschenden Datensatz angibt, denn dieses Feld enthält für jeden Datensatz eine eindeutige Nummer (= Primärschlüssel der Tabelle). Wollen wir den Datensatz mit ID=120 löschen, so geben wir als Abfrage an: $sql = DELETE FROM k n e i p e n WHERE ID=120 ; Achtung: Vergißt man den WHERE -Teil, werden alle Datensätze der Tabelle gelöscht! Als Ersteller einer dynamischen Webseite mit PHP und einer Datenbank sollte man also immer genau darüber nachdenken, was den Betrachtern erlaubt werden soll und was nicht. Die Einrichtung einer neuen Tabelle erfolgt mit dem Befehl CREATE TABLE. Beispiel: $sql = CREATE TABLE a d r e s s e n ( ID INT ( 3 ) AUTO INCREMENT, PRIMARY KEY ( ID ), Nachname VARCHAR( 4 0 ), Vorname VARCHAR( 4 0 ), Ort VARCHAR ( 4 0 ) ) ; Eine nicht mehr benötigte Tabelle läßt sich mit dem Befehl DROP TABLE löschen. Beispiel: $sql = DROP TABLE a d r e s s e n ; Vorlesung 4-8

38 Vorlesung 4: Zugriff auf Datenbanken Neben der Tabelle kneipen existiert in der Datenbank dbnli03 auch die Tabelle noten mit den folgenden Inhalten. Num Wort 0 keine Wertung 1 sehr gut 2 gut 3 befriedigend 4 ausreichend 5 mangelhaft 6 ungenügend Wie lassen sich nun die beiden Tabellen abfragen, so dass im Ergebnis die Wertung für alle Kneipen in Worten ausgegeben wird? Hier der entsprechende SQL-Befehl: $sql = SELECT k n e i p e n. Name, n o t e n. Wort FROM kneipen, n o t e n WHERE n o t e n. Num=k n e i p e n. Note ; Wie sie erkennen können, wird in der WHERE-Klausel eine Beziehung zwischen dem Primärschlüssel der Tabelle noten und dem Datenfeld Note in der Tabelle kneipen (Fremdschlüssel) definiert, die zur korrekten Verknüpfung der beiden Tabellen in der SELECT-Abfrage genutzt wird. 4.7 Aufgaben zur Vorlesung 1. Schreiben Sie ein PHP-Programm, das aus der Tabelle kneipen in der Datenbank dbnli03 alle Datensätze ausgibt, deren Bewertung schlechter als 2 ist. 2. Schreiben Sie ein HTML-Formular, das neue Datensätze in die Tabelle kneipen in der Datenbank dbnli03 einfügt. 3. Erweitern Sie Ihr Formular zur Eingabe in die Datenbank-Tabelle kneipen : Fragen Sie mit PHP- Befehlen ab, ob alle Felder ausgefüllt sind und ob die Note im gültigen Bereich zwischen 1 und 6 liegt. 4. Schreiben Sie ein PHP-Programm zur Auswertung der Tabelle kneipen : Es soll für jede Kneipe die Art, der Kommentar und die Bewertung in Worten angezeigt werden. 4.8 Fallaufgabe Elektronikversand Ein Elektronik-Versand möchte seine Waren in Zukunft über das Internet verkaufen. Dabei sollen interessierte Kunden die Möglichkeit haben, über eine Suchmaske Artikel (hier Notebooks oder Monitore) nach bestimmten Kriterien auszuwählen. 1. Vorbereitet ist die Datenbank Artikel mit den Tabellen Notebooks und Monitore. Tabelle Notebooks: Vorlesung 4-9

39 Vorlesung 4: Zugriff auf Datenbanken Artikel-Nr Bezeichung Hersteller Preis Bestand Arbeitsspeicher Prozessor Display 1001 Notebook TPT 23 IBM Notebook ECS Top Note IPC Notebook Gericom Thinkpad IBM Vaio-PCG Sony Tabelle Monitore: Artikel-Nr Bezeichung Hersteller Preis Bestand Lochmaske Display 2001 Monitor Siemens , P76 IBM , V75 Compaq , Der Benutzer soll zunächst auswählen können, welchen Artikel er kaufen möchte (vgl. Abbildung). 3. Anschließend soll der Benutzer über Textfelder und Radiobuttons und/oder Checkboxen die Möglichkeit erhalten, eine Auswahl nach bestimmten Kriterien vorzunehmen. Dazu wurden zwei Eingabemasken nach dem folgenden Vorbild (monitore.html und notebooks.html) erstellt. 4. Stellen Sie sicher, dass wenn ein Artikel von einem Benutzer gekauft wurde, dessen Bestand in der Datenbank um 1 reduziert wird. 5. Möchte ein Kunde einen Artikel mit einem Bestand von 0 erwerben soll eine entsprechende Fehlermeldung angezeigt werden. Vorlesung 4-10

40 Anhang A NLI-Kurs A.1 Rechner-Umgebung NLI-Kurs Novell-File-/Print-Server BBSLOE User-Laufwerk H Datenbank-Server db.bbs-loeningen.de IP: Intranet-Server ins.bbs-loeningen.de IP: Internet Client-Rechner IP: x Laufwerke C, D Raum 101 A.2 Loginparameter Für die Teilnehmer/-innen des NLI-Kurses sind die Benutzernamen nli01 bis nli20 vorbereitet. Als Passwort ist für alle Accounts heute festgelegt. Dieses Passwort bitte nicht eigenmächtig ändern! Benutzername und Passwort gelten für das Novell-Login und die Anmeldung am MySQL- Datenbankserver. Auf dem Datenbankserver sind für alle Teilnehmer/innen entsprechende Datenbanken dbnli01 bis dbnli20 eingerichtet. 1

41 Anhang A: NLI-Kurs Vorinstalliert sind für jede Datenbank die Tabellen kneipen, noten, monitore und notebooks. Anhang A - 2

42 Anhang A: NLI-Kurs A.3 Entwicklungsumgebung Für jeden Kursteilnehmer/jede Kursteilnehmerin steht ein eigener Bereich auf der Serverfestplatte zur Verfügung, der auf den Clientrechner als Laufwerk H: erscheint. Auf diesem Laufwerk H: können die eigenen Dateien dauerhaft gespeichert werden. Auf dem Laufwerk H: ist die Entwicklungsumgebung für den PHP-Kurs vorinstalliert und muss nach dem Booten des Rechners über den Aufruf der entsprechenden Batchdateien aktiviert werden. Nähere Erläuterungen: Das Verzeichnis apache ist für den Betrieb des lokalen Webservers notwendig und darf nicht gelöscht werden. Hier werden Logdateien des Webservers abgelegt. Das Verzeichnis dbg enthält die Dateien des PHP-Debuggers, der bei der schrittweisen Abarbeitung von Skripten eingesetzt wird. Anhang A - 3

43 Anhang A: NLI-Kurs Das Verzeichnis Maguma Studio enthält die Dateien der Entwicklungsumgebung Maguma Studio Light. Im Verzeichnis www sollten Sie alle HTML-Dokumente und PHP-Skripten ablegen. Der lokale Webserver betrachtet dieses Verzeichnis als Root-Verzeichnis für alle verfügbaren Webdokumente (offener Bereich). Über die Verknüpfung Editor können Sie die PHP-IDE Maguma Studio starten. Über die Verknüpfung PHP wird die lokale Entwicklungsumgebung initialisiert. Dies muss einmalig nach jedem neuen Login am Novellserver erfolgen. Über die Verknüpfungen Start Webserver und Stop Webserver können Sie den lokalen Webserver aktivieren bzw. deaktivieren. Wenn der lokale Webserver aktiviert ist, kann er unter der Adresse via Browser kontaktiert werden. Von anderen Client-Rechnern kann der lokale Webserver unter der Adresse angesprochen werden, wobei x durch die Platznummer ersetzt werden muss. Webdokumente für den lokalen Webserver müssen unterhalb von H:\www abgelegt werden. Anhang A - 4

44 Anhang B: Zugriff auf Access-Datenbanken mit PHP Anhang B Zugriff auf Access-Datenbanken mit PHP B.1 Vorbereitung der Datenquelle Für diese kleine Beispielanwendung sollte eine Access-Datenbank als MDB-Datei vorhanden sein. Im Folgenden wird die Datenbank beispiel.mdb benutzt, in der eine Tabelle kneipen gemäß der folgenden Abbildung bereitgestellt ist. Um auf diese Datenquelle extern zugreifen zu können, muss ein ODBC-Treiber für die Datenbank installiert werden. Sie finden das Installationsprogramm für ODBC-Treiber auf einem Windowssystem unter Start Einstellungen Systemsteuerung (muss evtl. von der Setup-CD nachinstalliert werden). Durch Doppelklick auf dem Icon ODBC-Datenquellen wird das Installationsprogramm gestartet. Anhang B - 5

45 Anhang B: Zugriff auf Access-Datenbanken mit PHP Im ODBC-Datenquellen-Administrator wählen Sie die Option Hinzufügen.... Es öffnet sich der Dialog Neue Datenquelle erstellen. Wählen Sie hier den Microsoft Access-Treiber und drücken Sie den Button Fertigstellen. Anhang B - 6

46 Anhang B: Zugriff auf Access-Datenbanken mit PHP Im Dialog ODBC Microsoft Access Setup nehmen Sie die Einstellungen nach dem abgebildeten Muster vor. Wichtig: Sie müssen die Datenbank über einen Datei-öffen-Dialog mit dem ODBC-Treiber verbinden (Option Datenbank: Auswählen... ). Bei Rückkehr in den ODBC-Datenquellen-Administrator erkennen Sie, dass nunmehr für die ausgewählte Datenquelle ein ODBC-Treiber installiert wurde, der unter dem DSN-Namen phpaccess angesprochen werden kann. Anhang B - 7

47 Anhang B: Zugriff auf Access-Datenbanken mit PHP B.2 Zugriff auf Access-Datenbank mit Skript Es ist nun an der Zeit ein PHP-Skript zu schreiben, mit dem auf die Access-Datenbank zugegriffen werden kann. Es wird im Beispielskript eine einfache SELECT-Abfrage der Datenbank durchgeführt. 1 <!doctype html public //W3C / / DTD HTML 4. 0 / / EN > 2 <html> 3 <head> 4 <title>php-zugriff auf Access</title> 5 </head> 6 <body> 7 8 <?php 9 / / Aufbau der Verbindung, F u n k t i o n s Parameter dsn name, user, password 10 $verbindung = odbc_connect( phpaccess,, ); if(!$verbindung ){ 13 echo Keine Verbindung... < br> ; 14 exit; / / Nix wie raus, k l a p p t h e u t e n i c h t 15 } / / SQL Anfrage 18 $erg = odbc_exec($verbindung, SELECT FROM Kneipen ); / / Z e i l e n w e i s e A b f r a g e e r g e b n i s h o l e n und a u s w e r t e n 21 while( $row = odbc_fetch_row( $erg ) ){ $kname = odbc_result($erg, Name ) ; 24 $kart = odbc_result($erg, A r t ); echo $kname. i s t e i n ( e ).$kart. <br>\n ; 27 } / / Datenbank s c h l i e s s e n 30 odbc_close( $verbindung ); 31 32?> 33 </body> 34 </html> Als Ausgabe im Browser sollte das Skript eine Ergebnis wie in der nachfolgenden Abbildung erzeugen. Anhang B - 8

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9c: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans

Mehr

Einführung in PHP. NLI-Kurs BBS am Museumsdorf Cloppenburg Außenstelle Löningen

Einführung in PHP. NLI-Kurs BBS am Museumsdorf Cloppenburg Außenstelle Löningen Einführung in PHP NLI-Kurs 02.44.78 BBS am Museumsdorf Cloppenburg Außenstelle Löningen Rechner-Infrastruktur Novell-File-/Print-Server BBSLOE User-Laufwerk H Datenbank-Server db.bbs-loeningen.de IP: 172.18.100.9

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

IT-Zertifikat: Allgemeine Informationstechnologien II PHP IT-Zertifikat: Allgemeine Informationstechnologien II PHP PHP ( PHP: Hypertext Preprocessor ) ist eine serverseitige Skriptsprache: Der PHP-Code wird nicht wie bei JavaScript auf dem Clientrechner ausgeführt,

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

XI. XII. XIII. XIV. XV. XVI. XVII. XVIII.

XI. XII. XIII. XIV. XV. XVI. XVII. XVIII. XI. Ist eine Größe um eine angegebene Größe, die zu einer anderen in einem angegebenen Verhältnis steht, größer als diese und ist ihr Verhältnis zu der Größe angegeben, um die sie größer ist, dann ist

Mehr

Zugriff auf Daten der Wago 750-841 über eine Webseite

Zugriff auf Daten der Wago 750-841 über eine Webseite Zugriff auf Daten der Wago 750-841 über eine Webseite Inhaltsverzeichnis Einleitung... 3 Auslesen von Variablen... 4 Programm auf der SPS... 4 XML-Datei auf der SPS... 4 PHP-Script zum Auslesen der XML-Datei...

Mehr

Multimedia im Netz Wintersemester 2011/12

Multimedia im Netz Wintersemester 2011/12 Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung

Mehr

Adminer: Installationsanleitung

Adminer: Installationsanleitung Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann

Mehr

Einführung in die Skriptsprache PHP

Einführung in die Skriptsprache PHP Einführung in die Skriptsprache PHP 1. Erläuterungen PHP ist ein Interpreter-Programm, das auf dem Server abgelegte Dateien dynamisch, d.h. zur Zeit des Zugriffes, aufbereitet. Zusätzlich zum normalen

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken

Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken Mit Anleitung zur Erstellung einer FTP Verbindung unter Windows 7 Matthias Lange

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Datenbanken 1. Einführung und Zugänge für die eingesetzten Resourcen. ISWeb - Information Systems & Semantic Web University of Koblenz Landau, Germany

Datenbanken 1. Einführung und Zugänge für die eingesetzten Resourcen. ISWeb - Information Systems & Semantic Web University of Koblenz Landau, Germany University of Koblenz Landau, Germany Einführung und Zugänge für die eingesetzten Resourcen of 20 Überblick Eingesetzte Resourcen und ihre Zugänge WebCT FTP-Server PHP PostgreSQL

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

5. Übung: PHP-Grundlagen

5. Übung: PHP-Grundlagen 5.1. Erstes PHP-Programm 1. Schreiben Sie PHP-Programm innerhalb einer Webseite, d.h. innerhalb eines HTML-Dokument. Ihr PHP-Programm soll einen kurzen Text ausgeben und Komentare enthalten. Speichern

Mehr

Einführung in die Skriptsprache PHP

Einführung in die Skriptsprache PHP Einführung in die Skriptsprache PHP Materialien zum NLI-Kurs 02.44.78 Version: 02-10-27 In a world without fences who needs gates? Vorwort Das Skript geht auf ein Vorlesungsskript von Alfred Wassermann,

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Seit Anfang Juni 2012 hat Facebook die Static FBML Reiter deaktiviert, so wird es relativ schwierig für Firmenseiten eigene Impressumsreiter

Mehr

Durchführung der Datenübernahme nach Reisekosten 2011

Durchführung der Datenübernahme nach Reisekosten 2011 Durchführung der Datenübernahme nach Reisekosten 2011 1. Starten Sie QuickSteuer Deluxe 2010. Rufen Sie anschließend über den Menüpunkt /Extras/Reisekosten Rechner den QuickSteuer Deluxe 2010 Reisekosten-Rechner,

Mehr

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Wie richten Sie Ihr Web Paket bei Netpage24 ein Wie richten Sie Ihr Web Paket bei Netpage24 ein Eine kostenlose ebook Anleitung von Netpage24 - Webseite Information 1 E-Mail Bestätigung... 3 2 Ticketsystem... 3 3 FTP Konto anlegen... 4 4 Datenbank anlegen...

Mehr

Bedienungsanleitung für den SecureCourier

Bedienungsanleitung für den SecureCourier Bedienungsanleitung für den SecureCourier Wo kann ich den SecureCourier nach der Installation auf meinem Computer finden? Den SecureCourier finden Sie dort, wo Sie mit Dateien umgehen und arbeiten. Bei

Mehr

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011 .procmailrc HOWTO zur Mailfilterung und Verteilung Stand: 01.01.2011 Copyright 2002-2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können

Mehr

WordPress installieren mit Webhosting

WordPress installieren mit Webhosting Seite 1 von 8 webgipfel.de WordPress installieren mit Webhosting Um WordPress zu nutzen, muss man es zunächst installieren. Die Installation ist im Vergleich zu anderen Systemen sehr einfach. In dieser

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach - Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6

Mehr

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client

Mehr

INSTALLATION. Voraussetzungen

INSTALLATION. Voraussetzungen INSTALLATION Voraussetzungen Um Papoo zu installieren brauchen Sie natürlich eine aktuelle Papoo Version die Sie sich auf der Seite http://www.papoo.de herunterladen können. Papoo ist ein webbasiertes

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

TeamSpeak3 Einrichten

TeamSpeak3 Einrichten TeamSpeak3 Einrichten Version 1.0.3 24. April 2012 StreamPlus UG Es ist untersagt dieses Dokument ohne eine schriftliche Genehmigung der StreamPlus UG vollständig oder auszugsweise zu reproduzieren, vervielfältigen

Mehr

FTP-Server einrichten mit automatischem Datenupload für SolarView@Fritzbox

FTP-Server einrichten mit automatischem Datenupload für SolarView@Fritzbox FTP-Server einrichten mit automatischem Datenupload für SolarView@Fritzbox Bitte beachten: Der im folgenden beschriebene Provider "www.cwcity.de" dient lediglich als Beispiel. Cwcity.de blendet recht häufig

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Abschluss Version 1.0

Abschluss Version 1.0 Beschreibung Der Abschluss wird normalerweise nur einmal jährlich durchgeführt. Dieses Tech-Note soll helfen, diesen doch seltenen aber periodisch notwendigen Vorgang problemlos durchzuführen. Abschlussvarianten

Mehr

Betriebshandbuch. MyInTouch Import Tool

Betriebshandbuch. MyInTouch Import Tool Betriebshandbuch MyInTouch Import Tool Version 2.0.5, 17.08.2004 2 MyInTouch Installationshandbuch Inhaltsverzeichnis Inhaltsverzeichnis... 2 Bevor Sie beginnen... 3 Einleitung...3 Benötigte Daten...3

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

PHPNuke Quick & Dirty

PHPNuke Quick & Dirty PHPNuke Quick & Dirty Dieses Tutorial richtet sich an all die, die zum erstenmal an PHPNuke System aufsetzen und wirklich keine Ahnung haben wie es geht. Hier wird sehr flott, ohne grosse Umschweife dargestellt

Mehr

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart -

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart - Anleitung zur Erstellung einer Batchdatei - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart - Mögliche Anwendungen für Batchdateien: - Mit jedem Systemstart vordefinierte Netzlaufwerke

Mehr

Anleitung: Webspace-Einrichtung

Anleitung: Webspace-Einrichtung Anleitung: Webspace-Einrichtung Inhaltsverzeichnis 1 Webspace für alle Rechenzentrumsnutzer(innen) 1 2 Login 2 2.1 Im Terminalraum / Mit Putty von zu Hause aus..................... 2 2.2 Auf unixartigen

Mehr

Migration NVC 5.x auf NEM/NPro (Migration eines bestehenden, produktiven NVC Verteilservers auf NEM/NPro)

Migration NVC 5.x auf NEM/NPro (Migration eines bestehenden, produktiven NVC Verteilservers auf NEM/NPro) Migration NVC 5.x auf NEM/NPro (Migration eines bestehenden, produktiven NVC Verteilservers auf NEM/NPro) 1. Vorbereitung/Hinweise Norman Endpoint Manager und Norman Endpoint Protection (NEM/NPro) kann

Mehr

Einführung in PHP. (mit Aufgaben)

Einführung in PHP. (mit Aufgaben) Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Anleitung. Datum: 28. Oktober 2013 Version: 1.2. Bildupload per FTP. FTP-Upload / Datei-Manager FTP. Glarotech GmbH

Anleitung. Datum: 28. Oktober 2013 Version: 1.2. Bildupload per FTP. FTP-Upload / Datei-Manager FTP. Glarotech GmbH Anleitung Datum: 28. Oktober 2013 Version: 1.2 Bildupload per FTP FTP-Upload / Datei-Manager FTP Glarotech GmbH Inhaltsverzeichnis Bilder per FTP hochladen...3 1. Installation FileZilla...3 2. FileZilla

Mehr

E-Mail Adressen der BA Leipzig

E-Mail Adressen der BA Leipzig E-Mail Adressen der BA Jeder Student der BA bekommt mit Beginn des Studiums eine E-Mail Adresse zugeteilt. Diese wird zur internen Kommunikation im Kurs, von der Akademie und deren Dozenten zur Verteilung

Mehr

Inhalt: Ihre persönliche Sedcard... 1 Login... 1 Passwort vergessen... 2 Profildaten bearbeiten... 3

Inhalt: Ihre persönliche Sedcard... 1 Login... 1 Passwort vergessen... 2 Profildaten bearbeiten... 3 Inhalt: Ihre persönliche Sedcard..... 1 Login... 1 Passwort vergessen... 2 Profildaten bearbeiten... 3 Passwort ändern... 3 email ändern... 4 Sedcard-Daten bearbeiten... 4 Logout... 7 Ich kann die Sedcard

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

1. Zuerst muss der Artikel angelegt werden, damit später die Produktvarianten hinzugefügt werden können.

1. Zuerst muss der Artikel angelegt werden, damit später die Produktvarianten hinzugefügt werden können. Produktvarianten und Downloads erstellen Produktvarianten eignen sich um Artikel mit verschiedenen Optionen wie bspw. ein Herrenhemd in den Farben blau, grün und rot sowie in den Größen S, M und L zu verkaufen.

Mehr

Einfügen von Bildern innerhalb eines Beitrages

Einfügen von Bildern innerhalb eines Beitrages Version 1.2 Einfügen von Bildern innerhalb eines Beitrages Um eigene Bilder ins Forum einzufügen, gibt es zwei Möglichkeiten. 1.) Ein Bild vom eigenem PC wird auf den Webspace von Baue-die-Bismarck.de

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Summenbildung in Bauteiltabellen mit If Then Abfrage

Summenbildung in Bauteiltabellen mit If Then Abfrage Summenbildung in Bauteiltabellen mit If Then Abfrage Die in Bauteiltabellen ausgelesenen Werte lassen sich in jeder Spalte als Summe berechnen. So können selbstverständlich die Flächen der in der Tabelle

Mehr

Handbuch zum Excel Formular Editor

Handbuch zum Excel Formular Editor Handbuch zum Excel Formular Editor Mit diesem Programm können Sie die Zellen von ihrer Excel Datei automatisch befüllen lassen. Die Daten können aus der Coffee Datenbank, oder einer weiteren Excel Datendatei

Mehr

GEONET Anleitung für Web-Autoren

GEONET Anleitung für Web-Autoren GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden

Mehr

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Schiller-Gymnasium Hof 20.12.2004

Schiller-Gymnasium Hof 20.12.2004 Erstellen eines HTML-Dokumentes Zum Erstellen einer Homepage benötigen wir lediglich einen Editor. Zum Ansehen der fertigen Site benötigen wir wir natürlich auch einen Browser, z.b. Firefox oder Netscape

Mehr

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb CashPro basiert auf Accesstechnologie 2003 und ist auch unter den aktuellen Accessversionen 2007 bis 2013 einsetzbar und Mehrbenutzerfähig.

Mehr

etermin Einbindung in Outlook

etermin Einbindung in Outlook etermin Einbindung in Outlook 1. Einführung Über etermin gebuchte Termine können bei Bedarf auch mit externen Terminkalendern, wie zum Beispiel Outlook, ical oder Google synchronisiert werden. Dieses Dokument

Mehr

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012) Information zum SQL Server: Installieren und deinstallieren (Stand: September 2012) Um pulsmagic nutzen zu können, wird eine SQL-Server-Datenbank benötigt. Im Rahmen der Installation von pulsmagic wird

Mehr

Intranet E-Mail Moodle

Intranet E-Mail Moodle Intranet E-Mail Moodle Manual für Lernende V1.0 1 / 8 Inhaltsverzeichnis Übersicht... 3 1. Intranet... 3 2. Anmeldenamen... 4 3. Passwort... 4 3.1 Erste Anmeldung... 4 3.2 Passwort ändern... 5 3.3 Passwort

Mehr

Installationshilfe VisKalk V5

Installationshilfe VisKalk V5 1 Installationshilfe VisKalk V5 Updateinstallation (ältere Version vorhanden): Es ist nicht nötig das Programm für ein Update zu deinstallieren! Mit der Option Programm reparieren wird das Update über

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E S TAND N OVEMBE R 2012 HANDBUCH T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E Herausgeber Referat Informationstechnologie in der Landeskirche und im Oberkirchenrat Evangelischer Oberkirchenrat

Mehr

www.flatbooster.com FILEZILLA HANDBUCH

www.flatbooster.com FILEZILLA HANDBUCH www.flatbooster.com FILEZILLA HANDBUCH deutsche Auflage Datum: 12.03.2011 Version: 1.0.2 Download: http://flatbooster.com/support Inhaltsverzeichnis 1 Filezilla FTP Programm 1 1.1 Filezilla installieren.................................

Mehr

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

Mehr

ESB - Elektronischer Service Bericht

ESB - Elektronischer Service Bericht Desk Software & Consulting GmbH ESB - Elektronischer Service Bericht Dokumentation des elektronischen Serviceberichts Matthias Hoffmann 25.04.2012 DESK Software und Consulting GmbH Im Heerfeld 2-4 35713

Mehr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

SQL-Injection. Seite 1 / 16

SQL-Injection. Seite 1 / 16 SQL-Injection Seite 1 / 16 Allgemein: SQL (Structured Query Language) Datenbanksprache zur Definition von Datenstrukturen in Datenbanken Bearbeiten und Abfragen von Datensätzen Definition: SQL-Injection

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Computeria Solothurn

Computeria Solothurn Computeria Solothurn Seniorinnen und Senioren entdecken den Computer und das Internet Sich mit «TeamViewer» von einem Supporter helfen lassen Diese Anleitung und die Illustrationen wurden unter Mac OS

Mehr

Weiterverarbeitung Leseranfragen

Weiterverarbeitung Leseranfragen Weiterverarbeitung Leseranfragen Schulungsunterlage Inhaltsverzeichnis Thema Seite 1. Einführung 2 2. Weiterverarbeitung Vorbereitungen 2 3. Weiterverarbeitung Excel-Datei mit dem Seriendokument verbinden

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3 Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer Inhalt Erste Anmeldung. Schritt 1: Anmeldung..2 Schritt 2: Passwort setzen 3 Schritt 3: Nachträgliches Ändern des Passworts..4 Schreiben

Mehr

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten AVM GmbH Alt-Moabit 95 D-10559 Berlin Faxversand mit dem FRITZ! LAN Assistenten Mit dem FRITZ! LAN Assistenten können Sie einen Computer als FRITZ!fax Server einrichten, über den dann Faxe von anderen

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54 PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten

Mehr

Lernwerkstatt 9 privat- Freischaltung

Lernwerkstatt 9 privat- Freischaltung Was tun, wenn mein Rechner immer wieder die Freischaltung der Lernwerkstatt 9 privat verliert und ich die Ursache dafür nicht finden kann? Normalerweise genügt es, genau eine einzige online-freischaltung

Mehr

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications Windows 8 Systemsteuerung > Programme > Windows Features aktivieren / deaktivieren > Im Verzeichnisbaum

Mehr

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten! Anmeldung über SSH Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten! Besitzer der Homepage Advanced und Homepage Professional haben die Möglichkeit, direkt

Mehr

Autoresponder Unlimited 2.0

Autoresponder Unlimited 2.0 Anleitung zur Installation und Anwendung Autoresponder Unlimited 2.0 Anleitung zur Installation und Anwendung Wie Ihr Autoresponder Unlimited 2.0 funktioniert Den Autoresponder Unlimited 2.0 installieren

Mehr

kreativgeschoss.de Webhosting Accounts verwalten

kreativgeschoss.de Webhosting Accounts verwalten kreativgeschoss.de Webhosting Accounts verwalten Version 1.2 Dies ist eine kurze Anleitung zum Einrichten und Verwalten Ihres neuen Kunden Accounts im kreativgeschoss.de, dem Webhosting Bereich der Firma

Mehr

Anleitungen zum Publizieren Ihrer Homepage

Anleitungen zum Publizieren Ihrer Homepage Anleitungen zum Publizieren Ihrer Homepage Einrichtung und Konfiguration zum Veröffentlichen Ihrer Homepage mit einem Programm Ihrer Wahl Stand Februar 2015 Die Anleitungen gelten für die Homepage-Produkte:

Mehr

Die Downloadarea ist nur noch bedingt mit den bestehenden Dingen befüllt, wird aber nicht mehr aktualisiert.

Die Downloadarea ist nur noch bedingt mit den bestehenden Dingen befüllt, wird aber nicht mehr aktualisiert. Das Marketingtool. Bedienungsanleitung. Das Marketingtool, das Sie bereits seit einiger Zeit kennen, wurde nun auf eine aktuelle Version angeglichen. Die Funktionen bleiben alle dieselben, lediglich wurde

Mehr

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...

Mehr

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch Einfache und effiziente Zusammenarbeit in der Cloud EASY-PM Office Add-Ins Handbuch Inhaltsverzeichnis 1. Einführung... 3 2. Ribbonmenü... 4 3. Dokument... 5 3.1 Öffnen... 5 3.2 Speichern... 6 3.3 Speichern

Mehr

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer Kommunikation I (Internet) Übung 4 PHP SS 2004 Inhaltsverzeichnis 1. PHP die serverseitige Programmiersprache...1 1.1. PHP - Bereiche in HTML definieren...1

Mehr

Musterlösung für Schulen in Baden-Württemberg. Windows 2003. Basiskurs Windows-Musterlösung. Version 3. Stand: 19.12.06

Musterlösung für Schulen in Baden-Württemberg. Windows 2003. Basiskurs Windows-Musterlösung. Version 3. Stand: 19.12.06 Musterlösung für Schulen in Baden-Württemberg Windows 2003 Basiskurs Windows-Musterlösung Version 3 Stand: 19.12.06 Impressum Herausgeber Zentrale Planungsgruppe Netze (ZPN) am Kultusministerium Baden-Württemberg

Mehr

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt. Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten

Mehr

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen Menü Macro WinIBW2-Macros unter Windows7?... 1 Macros aufnehmen... 1 Menübefehle und Schaltflächen in Macros verwenden... 4 Macros bearbeiten... 4 Macros löschen... 5 Macro-Dateien... 5 Macros importieren...

Mehr