Dynamische Webseiten-Generierung

Slides:



Advertisements
Ähnliche Präsentationen
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Advertisements

Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
Kurze Einführung in ASP
Markus Tank, Wie arbeitet man mit dem Rich Text Editor?
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
Simon Georg Pinkel Alice Server Pages Funktionale Programmierung und das Web.
Schleifen-beobachtung
Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)
Dynamische Webseiten mit PHP
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Schiller-Gymnasium Hof Manuel Friedrich OStR, PHP – Variablen und Formulardaten speichern! © 2010 Manuel Friedrich - Wie.
Batch-Programmierung Grundlagen
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Einführung MySQL mit PHP
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Jetzt lernen wir.
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Das Wurzelzeichen √ und seine Bedeutung
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
Erste Schritte mit PHP 5 von Max Brandt, 22. September 2006.
Wir bauen uns eine Webapplikation!
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
Hyperlinks und Anker Links notieren
Gegenstand EDV Thema: Informative Webseiten
Formulare definieren Formular einleiten mit <form>
JavaScript.
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Client-Server Systeme
Das Client/Server – Modell und die XAMPP-Distribution
PHP und MYSQL am Organisatorisches Speichern von Bildern in der Datenbank // Zwei Methoden BLOB-Felder in der Datenbank Einlesen von Dateien.
Wo finde ich Meta-Tags…? Was sind Metatags…? Welche Meta-Tags sind am beliebtesten…? Sprachen von Meta-Tags…? Was ist eine Profildatei…? VTAB-09 Fenster.
FORTRAN 77.
Internet und SMS Internet und SMS Daniel Rickenbacher Jeremy Deuel.
CGI (Common Gateway Interface)
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
Einführung in PHP.
Einführung in PHP 5.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
3. Lineare Befehle 3.1 Die Ausgabefunktion
PHP: Operatoren und Kontrollstrukturen
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
____________________________________________________________________________________________________________________________________________ Arbeit, Bildung.
Vortrag: Frames & Javascript.
se_10_regulaere_ausdruecke.ppt1 Softwareengineering Reguläre Ausdrücke (regular expressions) Prof. Dr.-Ing. Axel Benz, Berlin School of Economics.
PHP PHP ( „PHP Hypertext Preprocessor") ist eine Skriptsprache
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
HTML Hypertext Markup Language
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
Blockseminar Allgemeine Technologien II Dozent: P. Sahle März 2009 PHP in HTML Referentin: Angela Brinck.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
TUDWCMS Wie kann der Autor eines Dokumentes geändert werden ?
PHP:: Hypertext Preprocessor Einführung Praxis. PHP:: Hypertext Preprocessor Jetzt mal von der anderen Seite © All rights reversed2 PHP:: Hypertext Preprocessor.
Anführungszeichen?! echo 'Apfel$atf'; // ergibt: Apfel$aft
JavaScript Geschichte : Netscape entwickelt LiveScript (Syntax angelehnt an Java) - Umbenennung von Live Script in JavaScript - Mircrosoft.
TypoScript.
(Syntax, Strings/Zahlen, Variablen, Arrays)
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Formulare Maya Kindler 6c. Allgemein Vom client zum Server form tag eröffnet ein Formular Input tag eröffnet ein Formularfeld.
Das Internet Ein Netzwerk, das viele Rechner miteinander verbindet
Imperia 9 an der FernUni Aufbau und Struktur, Webseiten ändern und erzeugen, Besonderheiten Zentrum für Medien und IT … zmi.
 Präsentation transkript:

Dynamische Webseiten-Generierung PHP Einführung Dynamische Webseiten-Generierung Jürgen Mangler

Dynamische Webseiten-Generierung PHP ist eine Skriptsprache, die direkt in HTML-Seiten eingebettet wird, d.h. der Autor schreibt PHP-Befehle zusammen mit HTML-Befehlen in eine Datei. Wird diese Datei von einem Betrachter angefordert, so werden diese PHP-Befehle von einer "Zusatzsoftware" des Webservers Schritt für Schritt ausgeführt und die Ergebnisse an den Betrachter weitergeleitet. Achtung: Der Webserver muß "PHP"-fähig sein. Standardmäßig funktionieren diese Befehle nicht. PHP wird seit etwa 1994 entwickelt und erfreut sich stetig wachsender Beliebtheit. Ein besonderer Schwerpunkt liegt auf der Einbindung verschiedener Datenbanken. Die Sprache ist an C, Java und Perl angelehnt. Eine ausführliche Beschreibung finden Sie unter http://at.php.net/manual/de/

PHP Befehle in HTML einbauen Dazu gibt es 4 Möglichkeiten: <? ... ?> <?php ... ?> <script language="php"> ... </script> <% ... %> "..." steht für beliebige PHP-Befehle.

Unser erster PHP-Befehl! Der echo-Befehl gibt Texte (sogenannte Strings) aus: <? echo "Hallo"; ?> Merke: Alle PHP-Befehle werden mit ";" abgeschlossen. Es gibt eine Reihe von Sonderzeichen. Wichtigstes Sonderzeichen: "\n": Neue Zeile.C- oder Perl-Kennern sind diese Zeichen natürlich vertraut. echo "Hallo\n"; Man beachte dabei den Unterschied zu echo "Hallo<BR>"; Im ersten Fall wird lediglich im vom Webserver ausgelieferten HTML-Text ein Zeilumbruch durchgeführt. Im zweiten Fall enthält der HTML-Text den HTML-Befehl zum Zeilenumbruch.

Vordefinierte Variablen Da PHP speziell zur Erzeugung von dynamischen Webseiten geschaffen wurde, ist es ein Kinderspiel, Eingaben, die aus HTML-Formularen stammen, zu bearbeiten. Ein Beispiel. Die Formulardatei enthalte: <form action="tuwas.php" method="post"> <input name="var"> <input type="submit"> </form> Der HTML-Formular-Kenner sieht sofort: Beim Klicken auf den Submit-Button wird also die Datei tuwas.php aufgerufen.

Vordefinierte Variablen Diese Datei könnte dann so aussehen: <? print "Sie haben ${HTTP_POST_VARS["var"]} eingegeben. "; ?> Kurz gesagt: der Text, der in das Formularfeld “var” eingegeben wurde, ist dann in der PHP-Variablen ${HTTP_POST_VARS["var"]} enthalten. Achtung: Anfänger sollten immer method="post" beim Formular angeben, bei "get" sind die Variablen analog in $HTTP_GET_VARS enhalten! Achtung: Wenn Sie <input type="file"> verwenden müssen Sie unbedingt enctype="multipart/form-data" zusätzlich angeben und $HTTP_POST_FILES verwenden.

Einfache Rechenoperationen Folgende Rechenoperationen stehen in PHP zur Verfügung: "+": Addition, $i+$j, "-": Subtraktion, $i-$j "*": Multiplikation, $i*$j "/": Division, $i/$j "%": Reste-Bildung, $i%$j: z.B. 23%17 ergibt 6, da 23 geteilt durch 17 gleich 1 Rest 6 ist. ".": Verknüpft Strings: $l = "langer"; $k = "kurzer"; print $l.$k; ergibt "langerkurzer"

Erste Schleifen Gleich ein Beispiel: $t = "Ich soll meine Uebungsaufgaben selbst erstellen!<BR>\n"; $i = 0; while ($i<10) { print $t; $i++; } Hier wird 10-mal der Text in der Variablen $t ausgegeben. Zu Beginn wird $i 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.

Weitere Befehle zur Ablaufkontrolle Alternativ dazu möglich: $t = "Ich soll meine Uebungsaufgaben selbst erstellen!<BR>\n"; $i = 0; do { print $t; $i++; } while ($i<10); Was ist der Unterschied? 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.

Weitere Befehle zur Ablaufkontrolle Eine weitere Möglichkeit, eine Schleife zu programmieren, ist der for-Befehl. Gleich ein Beispiel: $t = "Ich soll meine Uebungsaufgaben selbst erstellen!<BR>\n"; for ($i=0;$i<10;$i++) { print $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 an. In ausdruck3 steht ein beliebiger Ausdruck. Zumeist wird eine in der Abbruchbedingung enthaltene Variable verändert (z.B. Die Laufvariable wird erhöht bzw. erniedrigt).

Weitere Befehle zur Ablaufkontrolle Zur Fallunterscheidung gibt es den if-Befehl: if ($i<0) { echo "$i ist kleiner als Null\n"; } else if ($i>0) { echo "$i ist groesser als Null\n"; } else { echo "$i ist Null\n"; } Hat man mehrere Tests der gleichen Variable, so kann man mit dem switch-Befehl evtl. Arbeit einsparen: switch ($name) { case "Jürgen": echo "Ich bin der kluge Jürgen"; break; default: echo "Wir sind der Rest";

Weitere Vergleichsmöglichkeiten Bisher konnten wir testen, ob $i<10 oder $i>10 gilt. Es gibt aber noch mehr Möglichkeiten: $i == 10: Ist $i gleich 10? $i != 10: Ist $i ungleich 10? $i >= 10: Ist $i größer oder gleich 10? $i <= 10: Ist $i kleiner oder gleich 10? Man kann auch kombinieren: ($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?

Nochmals vordefinierte Variablen Wir haben gelernt, daß in einer PHP-Datei, die aus einem Formular gestartet wird, die Namen der Formular-Elemente als Variablen zur Verfügung stehen. Dies kann man nützen, um Formular und Befehle, die das Formular behandeln, in eine einzige Datei zu schreiben: Angenommen die Formulardatei "einformular.php" enthält: <form action="einformular.php" method="post"> <input name="var"> <input type="submit"> </form> Dann ruft sich beim Klicken auf submit die Datei selbst auf. Allerdings ist dann die Variable "var" gesetzt.

Nochmals vordefinierte Variablen Dies können wir folgendermaßen ausnützen: <? if (isset($HTTP_POST_VARS["var"])) { print "Sie haben ${HTTP_POST_VARS["var"]} eingegeben. "; exit; } ?> <form action="einformular.php" method="post"> <input type="text" name="var"> <input type="submit"> </form> Wird die Datei zum ersten Mal aufgerufen, d.h. ohne daß man auf den submit-Button klickt, so ist die Variable $HTTP_POST_VARS["var"] nicht gesetzt.

Nochmals vordefinierte Variablen Füllt man das Formular dann aus und klickt auf submit, so ist die Variable gesetzt, isset ($HTTP_POST_VARS["var"]) ist wahr es wird "Sie haben test eingegeben\n" ausgegeben. Eine weiter Möglichkeit wäre exit; wegzulassen und stattdessen folgendes zu verwenden. <input type="text" name="var" value="<?= $HTTP_POST_VARS["var"] ?>"> Dadurch erscheint das Formular im vorausgefüllten Zustand.

Nochmals vordefinierte Variablen Füllt man das Formular dann aus und klickt auf submit, so ist die Variable gesetzt, isset ($HTTP_POST_VARS["var"]) ist wahr es wird "Sie haben test eingegeben\n" ausgegeben. Eine weiter Möglichkeit wäre exit; wegzulassen und stattdessen folgendes zu verwenden. <input type="text" name="var" value="<?= $HTTP_POST_VARS["var"] ?>"> Dadurch erscheint das Formular im vorausgefüllten Zustand.

Funktionen Ein wichtiger Bestandteil einer jeden Programmiersprache ist die Fähigkeit, mehrere Befehle zu einem einzigen Befehl zusammenzufassen, d.h. neue Funktionen zu definieren. PHP hat diese Fähigkeit selbstverständlich auch. Ein Beispiel: Wir wollen für eine Anzahl von Tagen berechnen, wieviele Sekunden diese Tage zusammen haben: function tag ($anzahl) { $sekunden = 3600 * 24 * $anzahl; return $sekunden; } $x = tag(7); print "7 Tage bestehen aus ${x} Sekunden !";

SQL Grundlagen SQL-Datenbanken bestehen aus 1 oder mehreren sogenannten Tabellen. Jeder Datensatz der Datenbank ist genau eine Zeile in einer Tabelle. Beispiel: Ein Mensaführer für Wien. Die Tabelle mensen: Man kann nun auf eine dieser Tabellen zugreifen, aber auch Tabellen verküpfen. Es gibt im wesentlichen vier Abfragemöglichkeiten: Auslesen: SELECT Einfügen: INSERT Überschreiben: UPDATE Löschen: DELETE … Schlecht angezogene Gäste 4 WU-Mensa 2 Gutes Essen 1 Katholische Mensa Kommentar Note Name ID

SQL Grundlagen Will man z.B. alle mensennamen, die sich in der Datenbank befinden, auslesen, gibt man folgenden den SQL-Befehl ein: SELECT Name FROM mensen; Will man Name und Note der Mensa auslesen: SELECT Name,Note FROM kneipen; Die Datensätze können noch weiter spezifiziert werden: SELECT * FROM kneipen WHERE Note=1 order by Name; Neue Datensätze werden folgendermaßen hinzugefügt: INSERT mensen (ID,Name,Note,Kommentar) VALUES (1,'TU','1','Super!'); Vorhandene Datensätze können mit UPDATE mensen SET Note='5',Kommentar='Wäh!' WHERE ID=3;

SQL mit Oracle und PHP Wie greifen wir nun konkret auf unsere Datenbank zu? Zuerst müssen wir eine Verbindung zum Oracle SQL Server aufbauen: $connection = OCILogon("a6666666", "test1234"); wobei a6666666 dar Benutzername ist, und test1234 das Passwort. Wir bekommen dann einen connection zurückgeliefert, die wir in der Variable $connection speichern. Mit $stmt = OCIParse($connection, "SELECT * FROM mensen"); OCIExecute($stmt); führen wir den SQL Befehl "SELECT * FROM mensen" für die Verbindung $connection aus, das Ergebnis wird in $stmt gespeichert.

SQL mit Oracle und PHP while(OCIFetch($stmt)) { Nun müssen wir nur noch die einzelnen Zeilen des Ergenisses ausgeben while(OCIFetch($stmt)) { print OCIResult($stmt, "ID") . " "; print OCIResult($stmt, "NAME") . " "; print OCIResult($stmt, "NOTE") . " "; print OCIResult($stmt, "KOMMENTAR") . "<br>"; } Mit OCIFetch werden die einzelnen Zeilen abgerufen, mit OCIResult wird auf die Spalten einer Zeile zugegriffen. Wichtig: am Ende $stmt abschliessen und Verbindung schliessen: OCIFreeStatement($stmt); OCILogoff($connection);

SQL mit Oracle und PHP Tips: $stmt immer leeren $connection immer schliessen Bei OCIResult müssen die Spaltennamen in Grossbuchstaben angegeben werden Das hier besprochene Beispiel finden Sie unter http://almighty.pri.univie.ac.at/~a6666666/db.php