44
I N F O R M A T I K Dynamische Webseiten mit PHP [und Python] Thomas Mohr

INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

Embed Size (px)

Citation preview

Page 1: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

I N F O R M A T I K

Dynamische Webseiten mit PHP [und Python]

Thomas Mohr

Page 2: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

2

IN

FO

RM

AT

IK

Beschränkung (X)HTML

• (X)HTML ist rein „statisch“, d.h. bei jedem Aufruf wird die gleiche Seite angezeigt. es kann nicht auf Benutzereingaben eingegangen werden. es gibt keine Abhängigkeit von der Aufrufumgebung

(Uhrzeit, Sprache, Währung, etc.).

• Zur Erinnerung der Ablauf: Der Benutzer schickt eine http-Anfrage über seinen Browser

an einen Webserver. Der Webserver sucht die entsprechende HTML-Datei lokal bei

sich auf dem Dateisystem. Die HTML-Datei wird unverändert an den Browser

zurückgegeben und dargestellt.

• eine Lösung:Skriptsprachen (PHP, Python, ASP, …) auf dem Server

Page 3: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

3

IN

FO

RM

AT

IKAbruf von Webseiten

WebserverWeb-Clientmit Browser

Webanfragehttp://server.com/Datei.html

Datei.html

HTML

Internet

Datei.html

HTML

HTML-Dateiim Dateisystem

Page 4: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

4

IN

FO

RM

AT

IK

Wie kommt die Seite auf den Server?

WebserverFtp-Server

Internet

PC

HTM

L

„Programmieren“der HTML-Datei

HTM

L Übertragen der

Datei mit ftp

Web-Client

Web-Client

Web-Client

Abrufen der Seiteüber http

Page 5: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

5

IN

FO

RM

AT

IK

… und auf den Übungsrechnern?

Webserver

„Programmieren“der HTML-Datei

HTM

L

Abrufen der Seiteüber http

Browser

Page 6: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

6

IN

FO

RM

AT

IK

Verzeichnisstruktur Apache-Webserver

• In der Standard-Installation von xampp liegen die HTML-Dateien im Unterverzeichnis htdocs. Weitere (virtuelle) Web-Verzeichnisse können in der

Konfigurationsdatei angelegt werden.

xampplite

apache

htdocs

bin

conf

logs

mysql

wb

Basisverzeichnis des Webservers

(Webserver-Programm)php.ini, um Einstellungen für PHP zu ändern

Konfiguration des Webservers in httpd.conf(z.B. Anlegen weiterer Verzeichnisse)

Logdateien des Webservers (Zugriffe / Fehler)

Standardverzeichnis für HTML-Dateien

Bitte Anlegen, um eigene HTML-Dateien abzulegen.

Verzeichnis der MySQL-Datenbank(auch der Datenbanken selbst)

Page 7: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

7

IN

FO

RM

AT

IK

Was ist PHP?

• PHP (rekursives Akronym für „PHP: Hypertext Preprocessor“) ursprünglich „Personal Home Page Tools“

• PHP ist eine Skriptsprache,

• d.h. man braucht ein spezielles Programm (Interpreter), um das PHP-Programm auszuführen (Bestandteil des XAMPP-Paketes).

dient hauptsächlich zur Erstellung „dynamischer“ Webseiten,• d.h. die Webseite kann sich bei jedem Aufruf verändern.

ist „Open-Source“-Software, d.h. • die Software ist kostenlos .• die Software darf von jedem weiter entwickelt werden und unter

der gleichen Lizenz weitergegeben werden.

Page 8: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

8

IN

FO

RM

AT

IKPHP erweitert HTML

• Mit PHP kann HTML so erweitert werden, dass Anteile der HTML-Seite erst beim Aufruf eingefügt werden.

• z.B. das aktuelle Datum oder die Uhrzeit auf Benutzereingaben reagiert wird. Inhalte von Datenbanken abgerufen werden können. …

• PHP wird in der HTML-Datei „programmiert“. Der Webserver besitzt ein besonderes Programm, den PHP-

Interpreter, der das PHP-Programm im HTML ausführt. Die Ausgabe des PHP-Programms wird in die HTML-Datei

eingefügt.

Page 9: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

9

IN

FO

RM

AT

IKPHP erweitert HTML

WebserverWeb-Clientmit Browser

Datei.php

HTML

Webanfragehttp://server.com/Datei.php

Datei.php

HTML

PHP-Interpreter

Internet

Datei.php

HTML &

PHP PHP-Datei imDateisystem

Page 10: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

10

IN

FO

RM

AT

IK

Trennung HTML - PHP

• PHP-Bereiche im HTML werden durch eine bestimmte Schreibweise (Syntax) vom eigentlichen HTML-Code getrennt.<h1>Aktuelles Datum</h1><p><?php echo 'Datum:' . date("d. M Y");?></p>

PHP-Bereich innerhalb einer HTML-Datei.

Vom PHP-Bereich auf dem Server erzeugte Ausgabe (reiner HTML-Code).

<h1>Aktuelles Datum</h1><p>Datum: 14. Nov 2008 </p>

PHP-Interpreter

Browser(HTML-Interpreter)

Im Browser angezeigte HTML-Seite.

Page 11: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

11

IN

FO

RM

AT

IK

Anweisungen abgrenzen

• PHP-Programme bestehen in der Regel aus mehreren Anweisungen für den Interpreter Die Anweisungen werden nacheinander (sequentiell)

ausgeführt. Ein Semikolon schließt jede Anweisung ab.

• In der Regel sollte nur eine Anweisung in einer Zeile stehen.

<h1>Ein PHP-Beispiel</h1><?php echo "<h2>Mein erstes PHP-Programm</h2>"; echo "<p>...mit zwei Anweisungen</p>";?>

Zwei PHP-Anweisungenzur Ausgabe eines Textes

<h1>Ein PHP-Beispiel</h1><h2>Mein erstes PHP-Programm</h2><p>...mit zwei Anweisungen</p>

PHP-Interpreter

Hier wurden auch HTML-Tags durch PHP erzeugt.

Page 12: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

12

IN

FO

RM

AT

IK

„Dynamische“ Inhalte

• Welche Uhrzeit wird am Client angezeigt?

WebserverWeb-Clientmit Browser

Webanfragehttp://server.com/Datei.php

Datei.php

HTMLDatei.php

HTML &

PHP

Standort: Atlanta USAUhrzeit: 2:20 am

Standort: SpeyerUhrzeit: 9:20 Uhr

Da die PHP-Datei in Atlanta umgewandelt wird, wird auch die Zeit des Webservers eingesetzt, also 2:20 am.

Page 13: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

13

IN

FO

RM

AT

IK

Variablen

• Variablen können Werte zugewiesen werden.

ausgelesen werden.

<h1>Variablen in PHP</h1><p>Text: Hallo Welt!</p><p>Zahl: 4711.0815</p>

PHP-Interpreter

<h2>Variablen in PHP</h2><?php $MeinText = 'Hallo Welt!'; $Zahl = 4711.0815;?>

Namen von Variablen beginnen immer mit einem $-Zeichen.

<?php echo "<p>Text: $MeinText</p>"; echo '<p>Zahl: ' . $Zahl . '</p>';?>

Zwei Varianten zur Ausgabe

Page 14: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

14

IN

FO

RM

AT

IK

Bedingte Ausführung – Struktogramm

• Abhängig von der Uhrzeit soll die Homepage „Vormittag“ oder „Nachmittag“ anzeigen. Den Ablauf des Programms kann man sich im

Struktogramm klarmachen.

$Zeit : = aktuelle Uhrzeit

$Stunde : = Stundenanteil(Zeit)

Wenn ($Stunde < 12)

Ja Nein

Ausgabe: „Vormittag“ Ausgabe: „Nachmittag“

Page 15: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

15

IN

FO

RM

AT

IK

Bedingte Ausführung – If-Anweisung

• Sollen Programmteile nur unter bestimmten Bedingungen ausgeführt werden, so kommt die if-Anweisung zum Einsatz:

<?php $Zeit = getdate(); $Stunde = $Zeit["hours"]; if ($Stunde<12) { echo "Vormittag!"; } else { echo "Nachmittag!"; }?>

Anweisungsblock, falls Bedingung erfüllt(falls es vor 12 Uhr ist).

Anweisungsblock, falls Bedingung nicht erfüllt (falls es nach 12 Uhr ist). kann auch entfallen

if (Bedingung) {Anweisungen} else {Anweisungen}

Page 16: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

19

IN

FO

RM

AT

IK

Kommentare

• Wie in HTML können / sollen Kommentare benutzt werden, um die Funktionsweise eines PHP-Programms zu beschreiben: Einzeilige Kommentare

Es können auch ganze Bereiche als mehrzeilige Kommentare markiert werden.

• z.B. um ein Stück PHP-Programm zeitweise „außer Betrieb zu setzen“.

<?php // ich bin ein Kommentar echo "Hallo Welt!";?>

<?php   echo "Vor dem Kommentarbereich";   /* Dies ist ein Kommentar      mit mehreren Zeilen */   echo "Nach dem Kommentarbereich";?>

Page 17: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

20

IN

FO

RM

AT

IK

Kommentare

• Wie wird die HTML-Datei im Browser aussehen?

<h1>Viele Kommentare</h1><!--<p>Auf dieser Seite gibt es viele Kommentare.</p>--><?php// echo "Kommentare sind wichtig, um ein Programm zu verstehen."/*echo "Besser eingerückt könnte man das noch leichter lesen.";*/?><p>... sind wichtig!</p>

Viele Kommentare

… sind wichtig!

Page 18: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

24

IN

FO

RM

AT

IK

Veränderung der Zählvariable

Name und Anfangswert

der Zählvariable

Bedingung, ob die

Schleife wiederholt

wird.$i=1;$Summe=0;

while ($i<=20){ $Summe=$Summe+$i; $i=$i+1;}

PHP – Schleifen

• Soll ein Block von Anweisungen mehrfach ausgeführt werden, so werden sog. Iterationen (Schleifen) verwendet. Eine „Zählvariable“ zählt dabei die Anzahl der

Schleifendurchläufe. Beispiel – while-Schleife:

Schleifenrumpfmehrfach ausgeführt

$Summe=$Summe+$i;

Solange $i<=20

$Summe = 0

$i=$i+1

$i = 1

Page 19: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

25

IN

FO

RM

AT

IK

Schleifen

• Programmablauf Die Zählvariable $i wird mit 1 begonnen („initialisiert“) Bei jedem Durchlauf wird $i um eins erhöht. Nach dem 20. Durchlauf wird $i wieder um eins erhöht.

• Damit ist $i nun 21 und die Bedingung ist nicht mehr erfüllt.Die Schleife bricht ab und das Programm läuft nach der Schleife

weiter.

$i=1;$Summe=0;

while ($i<=20){ $Summe=$Summe+$i; $i=$i+1;}

$i:1

$i=$i +

1

$i:2

$i=

$i +

1

$i:2

0

$i=

$i +

1

...

$i:2

1

Page 20: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

26

IN

FO

RM

AT

IK

Schleifen

• Soll ein Block von Anweisungen mehrfach ausgeführt werden, so werden sog. Iterationen (Schleifen) verwendet. Eine „Zählvariable“ zählt dabei die Anzahl der

Schleifendurchläufe. Beispiel – for-Schleife:

Beispiel:$Summe=0;for ($i=1; $i<=20; $i=$i+1){ $Summe = $Summe + $i; echo "<p>$i: $Summe</p>";}

Schleifenrumpf, der mehrfach ausgeführt wird.

for ($i=1; $i<=20; $i=$i+1)

Name und Anfangswert

der Zählvariable

Bedingung, ob die

Schleife wiederholt

wird.

Veränderung der Zählvariable nach einem Durchlauf

Page 21: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

28

IN

FO

RM

AT

IK

Funktionen

Solange $x<=10

$x = 0

$x=$x+0.5$y=f($x)

Name der Funktion

Wert(e), der an die Funktion übergeben

wird.

Aufrufendes Programm

Funktion(Unterprogramm)

Wert, der zurückgegeben wird

function f($eingabe){ $rueckgabe= $eingabe*$eingabe; return $rueckgabe;}

$x=0;while ($x<=10){ $y=f($x); echo "$y <br />"; $x= $x+1;}

Page 22: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

29

IN

FO

RM

AT

IK

Übungen

Endlich – Sie sind dran!

Page 23: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

30

IN

FO

RM

AT

IK

Eingaben?? - Formulare in HTML

• Die Eingabe von Werten durch einen Benutzer ist mit den bisherigen Mitteln in HTML nicht möglich. Dazu dienen sog. Formulare in HTML, deren Werte dann in

PHP ausgelesen werden können. Der Ablauf ist vergleichbar z.B. dem Beantragen eines

Bibliotheksausweises:• Man bekommt ein Formular ausgehändigt.• Das Formular wird vom neuen Bibliotheksbenutzer ausgefüllt.• Der Benutzer gibt das Formular zurück.• Das Formular wird ausgewertet und das Ergebnis (der Ausweis)

wird an den Benutzer ausgegeben.

Page 24: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

31

IN

FO

RM

AT

IK

Exkurs – Formulare in der „realen“ Welt

Formulare

Formular

Frage nach Formular

Harry Potter

Ausgabe des Ausweises

Ausf

ülle

nvon D

ate

n

Ausw

ert

en

der

Date

n

Bibliothek Benutzer

Gib ausgefülltes Formular zurück

VerarbeitungHerr Potter!

Bibliotheksausweis

Ausweis #4711

Page 25: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

32

IN

FO

RM

AT

IK

Formulare in HTML

Formular.html

HTML

Verarbeitung.php

HTML &

PHP

Webserver Web-Client

Formular.html

Rufe Eingabe-Seite auf

Rufe Verarbeitungsseite auf

und übergebe Eingabedaten

Harry Potter

Harry Potter

Ergebnis der Verarbeitung

Verarbeitung.php

Ein

gabe

von D

ate

n

Ausw

ert

en

der

Date

n

Herr Potter!

Kunde #4711

Page 26: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

33

IN

FO

RM

AT

IK

Formulare in HTML

• Das Formular erfordert spezielle HTML-Tags (PHP ist für das Eingabeformular nicht notwendig).

• Bsp.:

<form action="Verarbeitung.php" method="post">... <input type="text" name="Benutzer" />

... <input type="submit" value="abschicken" />

</form>

Verarbeitungsseite

Form

ula

rblo

ckText-Eingabefeldmit Namen „Benutzer“

Button zum Aufruf

Verarbeitungsseite

Page 27: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

34

IN

FO

RM

AT

IK

Formulare in HTML

• Die eingegebenen Daten können in der Verarbeitungsseite im PHP-Interpreter ausgewertet werden: Für jedes Eingabefeld ist der eingegebene Wert in einer

Variablen mit dem Namen des Eingabefeldes gespeichert.<form action="Verarbeitung.php" method="post"> <input type="text" name="Benutzer" /> <input type="text" name="Alter" /></form>

<?php echo "Name: " . $Benutzer; echo "Alter: " . $Alter;?>

Formular.html

Verarbeitung.php

Page 28: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

35

IN

FO

RM

AT

IK

Übungen

Learning by doing…

Page 29: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

36

IN

FO

RM

AT

IK

Vernetzung des Themas

• Dynamische Webseiten (z.B. mit PHP) bieten sich ideal an, Themen zu vernetzen: Darstellung von Informationen mit XHTML und CSS. Algorithmisches Problemlösen. In Teilen: Kommunikation in Rechnernetzen (Protokolle, …)

… und nicht zuletzt: Datenbanken

Datenbanken sind gut geeignet, um für dynamische Webseiten als Datenbasis genutzt zu werden.

Page 30: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

37

IN

FO

RM

AT

IK

Zugriff auf MySQL über PHP

• Grundlegende Schritte jedes Datenbankzugriffs in PHP:

1. Verbindung mit dem Datenbanksystem aufbauen

Ergebnis der Verbindung ist eine Variable (Handle), mit der auf die Verbindung zugegriffen werden kann.

Fehler sollten (gerade hier) abgefangen (PHP-Konstrukt „or die“) und ausgegeben werden.

2. Datenbank auswählen

$link = mysql_connect($Host, $Benutzer, $Passwort) or die("DB-Verbindung unmöglich: " . mysql_error());

mysql_select_db($Datenbank) or die("Auswahl Datenbank unmöglich: " . mysql_error());

Page 31: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

38

IN

FO

RM

AT

IK

Zugriff auf MySQL über PHP

3. Abfrage ausführen

Ergebnis ist eine Variable (Handle), mit der auf das Resultat der Anfrage zugegriffen werden kann.

4. Ergebnisse ausgeben Grundlegendes Problem

• Programmiersprachen sind iterativ• relationale Datenbanken (und damit SQL) sind

mengenorientiert Speicherung und „Durchlaufen“ der Ergebnisse notwendig

Für das Abrufen der Ergebnisse gibt es drei wesentliche Varianten:i. Arrayii. Assoziatives Arrayiii. Objektorientiert

5. Freigabe der Handles (kann entfallen)

$result = mysql_query($SQLText) or die("Anfrage fehlgeschlagen: " . mysql_error());

mysql_free_result($result);mysql_close($link);

Page 32: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

39

IN

FO

RM

AT

IK

Zugriff auf eine Spalte der Ergebniszeile

Auslesen und Speichern einerErgebniszeile als Array

Zugriff auf MySQL über PHP

• Ausgabe der Ergebnisse als Array mysql_fetch_array liefert eine komplette Zeile des

Ergebnisses als Array (Alternative: mysql_fetch_row) Nach der letzten Zeile wird FALSE zurückgegeben

while ($arrRow = mysql_fetch_array($result)){ echo "$arrRow[0] : $arrRow[1]";}

Schleife über alle Zeilen

des Ergebnisses

Page 33: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

40

IN

FO

RM

AT

IK

Zugriff auf eine Spalte der Ergebniszeile

Auslesen und Speichern einerErgebniszeile als Array

Schleife über alle Zeilen

des Ergebnisses

Zugriff auf MySQL über PHP

• Ausgabe der Ergebnisse als assoziatives Array mysql_fetch_array liefert auch ein assoziatives Array, d.h.

es kann über die Spaltennamen zugegriffen werden. Problem: Spaltennamen müssen eindeutig sein

while ($arrRow = mysql_fetch_array($result)){ echo "$arrRow[Land] : $arrRow[Sprache]";}

Page 34: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

41

IN

FO

RM

AT

IK

Zugriff auf eine Spalte der Ergebniszeile

Auslesen und Speichern einer

Ergebniszeile als objekt

Zugriff auf MySQL über PHP

• Ausgabe der Ergebnisse als Objekt mysql_fetch_object liefert eine komplette Zeile des

Ergebnisses als Objekt Nach der letzten Zeile wird FALSE zurückgegeben

while ($oRow = mysql_fetch_object($result)){ echo "$oRow->Land : $oRow->Sprache";}

Schleife über alle Zeilen

des Ergebnisses

Page 35: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

42

IN

FO

RM

AT

IK

Zugriff auf MySQL über PHP

• Weitere interessante Funktionen: mysql_num_rows($result)

• Gibt die Anzahl der Zeilen (Datensätze) im Ergebnis aus. mysql_num_fields($result)

• Gibt die Anzahl der Spalten im Ergebnis aus. mysql_field_name($result, 0)

• Name eines Feldes im Ergebnis. mysql_affected_rows()

• Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation wie z.B. DELETE, UPDATE

• Vereinfachung: Herstellen der Verbindung / Datenbankauswahl in einer

separaten Include-Datei, die immer wieder verwendet werden kann.• include "_DBVerbindung.inc";

Page 36: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

43

IN

FO

RM

AT

IK

Vernetzung des Themas - Grenzen von SQL

• Problem: „Verfolgen eines Flusslaufes“ von der Quelle zum Meer

z.B. Spree

• Hier werden iterative Strukturenbenötigt, die SQL (als mengen-orientierte Sprache) im Standard nicht bietet.

Anknüpfung an Programmierung PHP, Delphi, Java

Rhein

Mosel

Main

NeckarDonau

Isar

Inn

FuldaWerra

Weser

Elbe

HavelSpreeAller

Elbe

HavelSpree

Nordsee

Page 37: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

44

IN

FO

RM

AT

IK

Vernetzung des Themas - Grenzen von SQL

• Problem: „Verfolgen eines Flusslaufes“ vom Meer zu den Zuflüssen

z.B. Nordsee

Beispiel für eine (elegante?)rekursive Programmierung

Rhein

Mosel

Main

NeckarDonau

Isar

Inn

FuldaWerra

Weser

Elbe

HavelSpreeAller

Nordsee

Rhein

Mosel

Main

Neckar

FuldaWerra

Weser

Aller

Elbe

HavelSpree

Nordsee

Page 38: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

45

IN

FO

RM

AT

IK

PHP und Datenbanken – Aufgaben

1. Erstellen Sie php-Anzeigeseiten für die Datenbank miniterra.Verwenden Sie dazu Abfragen aus dem SQL-Teil.

2. Erstellen Sie eine Abfrage, bei der der Kontinent eingegeben werden kann (HTML-Formular). Es werden dann alle Länder des Kontinents ausgegeben.

3. Geben Sie die Länder mit ihren Kontinenten aus.Es sollen Links in jeder Spalte sein, die eine Sortierung erlauben.

4. Geben Sie den Verlauf eines Flusses bis zur Mündung aus.(Achtung: evtl. Rekursion!)

Page 39: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

46

IN

FO

RM

AT

IKWas kann PHP noch?

• Alle wichtigen Konstrukte sind vorhanden Verschiedene Schleifenformen (auch für assoziative Arrays) Prozeduren / Funktionen Klassen Exceptions etc.

• Strukturierung eines Projekts includes

Exceptions.txt

Klassen.txt

Includes.txt

Aus der PHP-Dokumentation

Page 40: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

47

IN

FO

RM

AT

IK

Vorteile / Nachteile von PHP

• PHP ist eine Skriptsprache Einfachere Erlernbarkeit (?) Keine Notwendigkeit der Variablendefinitionen, etc. ( oder

?) Dennoch auch komplexere Programmierkonzepte

(z.B. Klassen, Exceptions) möglich

• PHP kann einfach in HTML eingebunden werden. Da HTML bekannt ist, muss die Ausgabe (Grafik, etc.) nicht

behandelt werden. Ergebnisse sind schnell sichtbar. Es muss kein weiteres Programm (IDE) erlernt werden. Schüler sind leicht zu motivieren, da außenwirksame

(Homepage) Projekte eingebracht werden. Es existiert kaum eine gute Möglichkeit des Debuggings. Umfangreichere Projekte werden leicht unübersichtlich. Vermischung von zwei Sprachen (HTML / PHP) erschwert den

Zugang. (Alternative: PHP zur Shell-Programmierung)

Page 41: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

48

IN

FO

RM

AT

IK

Vorteile / Nachteile von PHP

• PHP ist Open-Source-Software In vielen Webpaketen der Provider verfügbar und damit für

die Schüler auch außerhalb der Schule leicht verfügbar. Kein finanzielles Problem bei Anschaffung an der Schule. Ängste bei „etablierten“ Kollegen bzgl. der Wartbarkeit und

Weiterentwicklung einer nicht-kommerziellen Software.

• …

Page 42: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

49

IN

FO

RM

AT

IKInternet-Referenzen

• Installation Apache / PHP / mySQL als Paket (XAMPP) http://www.apachefriends.org/en/xampp.html

• PHP-Dokumentation: http://www.php.net/manual/de/

• Weitere PHP-Quellen PHP für Einsteiger

http://informatik.asn-graz.ac.at/phptutorial/index.html WikiBook http://de.wikibooks.org/wiki/Websiteentwicklung:_PHP PHP für dich (Einsteiger) http://www.schattenbaum.net/php/ …

Page 43: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

50

IN

FO

RM

AT

IK

Geht es auch mit Python?

• Eine Möglichkeit, der Einbindung von PHP sehr ähnlich: Erweiterung für Apache: Spyce

(http://spyce.sourceforge.net/) Python-Zugriff auf MySQL: MySQL-Python Bibliothek

(http://sourceforge.net/projects/mysql-python/)

Rudimentäre Installationsanleitung / Beispiele in den Unterlagen<h1>Kugeluhr</h1>

[[\from time import *lt = localtime()Stunde = lt[3]Minute = lt[4]print "<p>Es ist %02i:%02i Uhr.<p>" % (Stunde, Minute)i=1while i<=Stunde: if (i%10)==0: print "<img src='kreisvoll10.gif' alt='' />" else: print "<img src='kreisvoll.gif' alt='' />" i=i+1]]

Page 44: INFORMATIK Dynamische Webseiten mit PHP [und Python] Thomas Mohr

I N F O R M A T I K

Dynamische Webseiten mit PHP [und Python]

Thomas Mohr