Einführung der Programmierung mit PHP by pptfiles

VIEWS: 0 PAGES: 44

									Dynamische Webseiten mit PHP [und Python]


            Thomas Mohr




I   N   F   O   R   M   A   T   I   K
                                                    Beschränkung (X)HTML

        • (X)HTML ist rein „statisch“, d.h.
K




             bei jedem Aufruf wird die gleiche Seite angezeigt.
I




             es kann nicht auf Benutzereingaben eingegangen werden.
             es gibt keine Abhängigkeit von der Aufrufumgebung
T




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




        • Zur Erinnerung der Ablauf:
M




             Der Benutzer schickt eine http-Anfrage über seinen Browser an einen
R




              Webserver.
             Der Webserver sucht die entsprechende HTML-Datei lokal bei sich auf
O




              dem Dateisystem.
F




             Die HTML-Datei wird unverändert an den Browser zurückgegeben
              und dargestellt.
N




        • eine Lösung:
I




          Skriptsprachen (PHP, Python, ASP, …) auf dem Server

    2
K
I
T                                                             Abruf von Webseiten




                                                   Webanfrage
A




                      HTML-Datei            http://server.com/Datei.html
                    im Dateisystem
                                     HTML
M




                                                       HTML
                                                                           Web-Client
                               Datei.html
R




        Webserver                                                          mit Browser

                                                    Datei.html
O
F
N
I




                                                     Internet

    3
K                           Wie kommt die Seite auf den Server?


                                      „Programmieren“
                                       der HTML-Datei
I




                                                        HTML
                                                                  PC
T
A




                     HTML
M
R




        Webserver
        Ftp-Server
O




                              Abrufen der Seite
                                  über http
F




                                                               Web-Client
N
I




                                                               Web-Client



    4
                                  Internet                     Web-Client
K
I                                           … und auf den Übungsrechnern?




                    „Programmieren“
T




                     der HTML-Datei
A




                              HTML
M
R




        Webserver
O




                        Abrufen der Seite
                            über http
F




         Browser
N
I




    5
                                           Verzeichnisstruktur Apache-Webserver

        • In der Standard-Installation von xampp liegen die HTML-Dateien
K




          im Unterverzeichnis htdocs.
I




            Weitere (virtuelle) Web-Verzeichnisse können in der
             Konfigurationsdatei angelegt werden.
T




              xampplite
A
M




                 apache          Basisverzeichnis des Webservers

                                 (Webserver-Programm)
R




                          bin    php.ini, um Einstellungen für PHP zu ändern
                                 Konfiguration des Webservers in httpd.conf
O




                          conf
                                 (z.B. Anlegen weiterer Verzeichnisse)
F




                          logs   Logdateien des Webservers (Zugriffe / Fehler)
N




                 htdocs          Standardverzeichnis für HTML-Dateien
I




                          wb     Bitte Anlegen, um eigene HTML-Dateien abzulegen.

                 mysql           Verzeichnis der MySQL-Datenbank
                                 (auch der Datenbanken selbst)
    6
                                                                        Was ist PHP?

        • PHP (rekursives Akronym für „PHP: Hypertext Preprocessor“)
K




            ursprünglich „Personal Home Page Tools“
I




        • PHP
T




            ist eine Skriptsprache,
A




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




            dient hauptsächlich zur Erstellung „dynamischer“ Webseiten,
R




                • d.h. die Webseite kann sich bei jedem Aufruf verändern.
            ist „Open-Source“-Software, d.h.
O




                • die Software ist kostenlos .
F




                • die Software darf von jedem weiter entwickelt werden und unter der
                  gleichen Lizenz weitergegeben werden.
N
I




    7
                                                            PHP erweitert HTML

        • Mit PHP kann HTML so erweitert werden, dass
K




            Anteile der HTML-Seite erst beim Aufruf eingefügt werden.
I




               • z.B. das aktuelle Datum oder die Uhrzeit
            auf Benutzereingaben reagiert wird.
T




            Inhalte von Datenbanken abgerufen werden können.
A




            …
M




        • PHP wird in der HTML-Datei „programmiert“.
R




            Der Webserver besitzt ein besonderes Programm, den PHP-
             Interpreter, der das PHP-Programm im HTML ausführt.
O




            Die Ausgabe des PHP-Programms wird in die HTML-Datei eingefügt.
F
N
I




    8
K                                                                   PHP erweitert HTML



                            HTML
I




          PHP-Datei im
                             &
          Dateisystem      PHP
T




                         Datei.php                       Webanfrage
A




                                                   http://server.com/Datei.php
M




                                     PHP-
                                     Interpreter                                 Web-Client
                                                             HTML
R




        Webserver                                                                mit Browser

                                                           Datei.php
O




                           HTML
F




                         Datei.php
N
I




                                                            Internet

    9
                                                       Trennung HTML - PHP

     • PHP-Bereiche im HTML werden durch eine bestimmte
K




       Schreibweise (Syntax) vom eigentlichen HTML-Code getrennt.
I




         <h1>Aktuelles Datum</h1>
         <p>
T




         <?php
             echo 'Datum:' . date("d. M Y");           PHP-Bereich innerhalb einer
A




         ?>                                            HTML-Datei.
M




         </p>

                  PHP-
R




                  Interpreter
O




         <h1>Aktuelles Datum</h1>
         <p>
                                             Vom PHP-Bereich auf dem Server
F




         Datum: 14. Nov 2008
                                             erzeugte Ausgabe (reiner HTML-Code).
         </p>
N




                  Browser
                  (HTML-Interpreter)
I




                                Im Browser angezeigte HTML-Seite.

10
                                                      Anweisungen abgrenzen

     • PHP-Programme bestehen in der Regel aus mehreren
K




       Anweisungen für den Interpreter
I




         Die Anweisungen werden nacheinander (sequentiell) ausgeführt.
         Ein Semikolon schließt jede Anweisung ab.
T




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




      <h1>Ein PHP-Beispiel</h1>
      <?php
R




         echo "<h2>Mein erstes PHP-Programm</h2>";                 Zwei PHP-Anweisungen
         echo "<p>...mit zwei Anweisungen</p>";                    zur Ausgabe eines Textes
O




      ?>
F




                   PHP-
                   Interpreter
N




      <h1>Ein PHP-Beispiel</h1>
I




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

                 Hier wurden auch HTML-Tags durch PHP erzeugt.
11
                                                            „Dynamische“ Inhalte

     • Welche Uhrzeit wird am Client angezeigt?
K
I




                                                    Webanfrage
                                              http://server.com/Datei.php
T




                              HTML
                               &
A




                             PHP
                                                        HTML
                                                                                Web-Client
     Webserver             Datei.php                                            mit Browser
M




                                                      Datei.php
R




          Standort: Atlanta USA                                             Standort: Speyer
            Uhrzeit: 2:20 am                                                Uhrzeit: 9:20 Uhr
O
F




                 Da die PHP-Datei in Atlanta umgewandelt wird, wird auch die Zeit
N




                 des Webservers eingesetzt, also 2:20 am.
I




12
                                                              Variablen

     • Variablen können
K




         Werte zugewiesen werden.
I




         <h2>Variablen in PHP</h2>
         <?php
T




                                          Namen von Variablen beginnen
            $MeinText = 'Hallo Welt!';
                                          immer mit einem $-Zeichen.
            $Zahl     = 4711.0815;
A




         ?>
M




         ausgelesen werden.
R




         <?php
            echo "<p>Text: $MeinText</p>";
O




            echo '<p>Zahl: ' . $Zahl . '</p>';   Zwei Varianten zur Ausgabe
         ?>
F




                       PHP-
N




                       Interpreter
I




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

13
                                    Bedingte Ausführung – Struktogramm

     • Abhängig von der Uhrzeit soll die Homepage „Vormittag“ oder
K




       „Nachmittag“ anzeigen.
I




         Den Ablauf des Programms kann man sich im Struktogramm
          klarmachen.
T
A
M




             $Zeit : = aktuelle Uhrzeit
R




             $Stunde : = Stundenanteil(Zeit)

             Wenn ($Stunde < 12)
O
F




             Ja                                                        Nein
N




             Ausgabe: „Vormittag“              Ausgabe: „Nachmittag“
I




14
                                Bedingte Ausführung – If-Anweisung

     • Sollen Programmteile nur unter bestimmten Bedingungen
K




       ausgeführt werden, so kommt die if-Anweisung zum Einsatz:
I




        if (Bedingung) {Anweisungen} else {Anweisungen}
T
A
M




        <?php
          $Zeit = getdate();
R




          $Stunde = $Zeit["hours"];
O




             if ($Stunde<12)
             {
                                       Anweisungsblock, falls Bedingung erfüllt
F




               echo "Vormittag!";
             }                         (falls es vor 12 Uhr ist).
N




             else
             {
I




               echo "Nachmittag!";     Anweisungsblock, falls Bedingung nicht
             }                         erfüllt (falls es nach 12 Uhr ist).
        ?>                              kann auch entfallen

15
                                                                   Kommentare

     • Wie in HTML können / sollen Kommentare benutzt werden, um
K




       die Funktionsweise eines PHP-Programms zu beschreiben:
I




         Einzeilige Kommentare
T




                      <?php
                         // ich bin ein Kommentar
A




                         echo "Hallo Welt!";
                      ?>
M
R




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




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




                 <?php
N




                    echo "Vor dem Kommentarbereich";
                    /* Dies ist ein Kommentar
I




                       mit mehreren Zeilen */
                    echo "Nach dem Kommentarbereich";
                 ?>

19
                                                          Kommentare

     • Wie wird die HTML-Datei im Browser aussehen?
K
I




       <h1>Viele Kommentare</h1>
       <!--
T




       <p>Auf dieser Seite gibt es viele Kommentare.</p>
       -->
A




       <?php
       // echo "Kommentare sind wichtig, um ein Programm zu verstehen."
M




       /*
       echo "Besser eingerückt könnte man das noch leichter lesen.";
R




       */
       ?>
       <p>... sind wichtig!</p>
O
F
N
I




                                Viele Kommentare
                                … sind wichtig!

20
                                                               PHP – Schleifen

     • Soll ein Block von Anweisungen mehrfach ausgeführt werden, so
K




       werden sog. Iterationen (Schleifen) verwendet.
I




         Eine „Zählvariable“ zählt dabei die Anzahl der Schleifendurchläufe.
         Beispiel – while-Schleife:
T




                                Name und
A




                               Anfangswert       Bedingung, ob
                              der Zählvariable     die Schleife
M




                                                 wiederholt wird.
R




      $i = 1
      $Summe = 0                    $i=1;
O




                                    $Summe=0;
      Solange $i<=20
F




                                    while ($i<=20)
         $i=$i+1                    {
                                                                    Schleifenrumpf
N




         $Summe=$Summe+$i;            $Summe=$Summe+$i;
                                      $i=$i+1;                      mehrfach ausgeführt
                                    }
I




                                    Veränderung der
                                      Zählvariable
24
                                                                                          Schleifen

     • Programmablauf
K




         Die Zählvariable $i wird mit 1 begonnen („initialisiert“)
I




         Bei jedem Durchlauf wird $i um eins erhöht.
         Nach dem 20. Durchlauf wird $i wieder um eins erhöht.
T




            • Damit ist $i nun 21 und die Bedingung ist nicht mehr erfüllt.
A




            Die Schleife bricht ab und das Programm läuft nach der Schleife weiter.
M
R




       $i=1;
       $Summe=0;
O




                                                                        $i= $i +1




                                                                                                  $i= $i +1
                                                      $i=$i +1
       while ($i<=20)




                                                                                                              $i:21
                                                                                          $i:20
                                                                                    ...
F




                                                                 $i:2
                                               $i:1
       {
         $Summe=$Summe+$i;
N




         $i=$i+1;
       }
I




25
                                                                        Schleifen

     • Soll ein Block von Anweisungen mehrfach ausgeführt werden, so
K




       werden sog. Iterationen (Schleifen) verwendet.
I




         Eine „Zählvariable“ zählt dabei die Anzahl der Schleifendurchläufe.
         Beispiel – for-Schleife:
T




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




         Name und         Bedingung, ob      Veränderung der
        Anfangswert         die Schleife     Zählvariable nach
R




       der Zählvariable   wiederholt wird.   einem Durchlauf

         Beispiel:
O
F




            $Summe=0;
            for ($i=1; $i<=20; $i=$i+1)
N




            {
              $Summe = $Summe + $i;                  Schleifenrumpf, der
              echo "<p>$i: $Summe</p>";
I




                                                     mehrfach ausgeführt wird.
            }



26
                                                               Funktionen

       $x = 0
K




       Solange $x<=10
I




          $y=f($x)
T




          $x=$x+0.5
A




                                         Wert(e), der an die
                           Name der      Funktion übergeben
M




                           Funktion             wird.
R




     $x=0;                   function f($eingabe)
O




     while ($x<=10)          {
     {                         $rueckgabe= $eingabe*$eingabe;
F




       $y=f($x);
       echo "$y <br />";         return $rueckgabe;
N




       $x= $x+1;             }
     }
I




                                                      Wert, der
     Aufrufendes            Funktion                  zurückgegeben wird
     Programm               (Unterprogramm)


28
K                               Übungen



     Endlich – Sie sind dran!
I
T
A
M
R
O
F
N
I




29
                                          Eingaben?? - Formulare in HTML

     • Die Eingabe von Werten durch einen Benutzer ist mit den
K




       bisherigen Mitteln in HTML nicht möglich.
I




         Dazu dienen sog. Formulare in HTML, deren Werte dann in PHP
          ausgelesen werden können.
T




         Der Ablauf ist vergleichbar z.B. dem Beantragen eines
          Bibliotheksausweises:
A




            •   Man bekommt ein Formular ausgehändigt.
M




            •   Das Formular wird vom neuen Bibliotheksbenutzer ausgefüllt.
            •   Der Benutzer gibt das Formular zurück.
R




            •   Das Formular wird ausgewertet und das Ergebnis (der Ausweis) wird an
                den Benutzer ausgegeben.
O
F
N
I




30
K                               Exkurs – Formulare in der „realen“ Welt


                                  Frage nach Formular
I
T




                                                          Harry Potter




                                                                             von Daten
                                                                              Ausfüllen
A




                    Formulare
M




                                                            Formular
R
O
F

     Auswerten
     der Daten




                                                         Herr Potter!
                 Verarbeitung
N




                                Ausgabe des Ausweises    Ausweis #4711
I




                                                        Bibliotheksausweis



31
                 Bibliothek                                    Benutzer
K                                                               Formulare in HTML


                                      Rufe Eingabe-Seite auf
I




                      HTML
T




                                                                 Harry Potter




                                                                                   von Daten
                  Formular.html




                                                                                    Eingabe
A
M




                                                                 Formular.html
R
O




                       HTML
                        &
F




                      PHP
     Auswerten
     der Daten




                                                                Herr Potter!
                 Verarbeitung.php
N




                                    Ergebnis der Verarbeitung   Kunde #4711
I




                                                                Verarbeitung.php



32
                 Webserver                                            Web-Client
                                                          Formulare in HTML

     • Das Formular erfordert spezielle HTML-Tags
K




            (PHP ist für das Eingabeformular nicht notwendig).
I




     • Bsp.:
T




                         Verarbeitungsseite
A
M




     <form action="Verarbeitung.php" method="post">
R




     ...
                                                          Text-Eingabefeld




                                                                                  Formularblock
O




       <input type="text" name="Benutzer" />
                                                       mit Namen „Benutzer“
F




     ...
                                                             Button zum Aufruf
N




       <input type="submit" value="abschicken" />
                                                             Verarbeitungsseite
     </form>
I




33
                                                       Formulare in HTML

     • Die eingegebenen Daten können in der Verarbeitungsseite im
K




       PHP-Interpreter ausgewertet werden:
I




         Für jedes Eingabefeld ist der eingegebene Wert in einer Variablen mit
          dem Namen des Eingabefeldes gespeichert.
T




       <form action="Verarbeitung.php" method="post">
A




         <input type="text" name="Benutzer" />
         <input type="text" name="Alter" />
M




       </form>
R




       Formular.html
O
F
N




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




       ?>
       Verarbeitung.php

34
K                         Übungen



     Learning by doing…
I
T
A
M
R
O
F
N
I




35
                                                Vernetzung des Themas

     • Dynamische Webseiten (z.B. mit PHP) bieten sich ideal an,
K




       Themen zu vernetzen:
I




         Darstellung von Informationen mit XHTML und CSS.
         Algorithmisches Problemlösen.
T




         In Teilen: Kommunikation in Rechnernetzen (Protokolle, …)
A
M




         … und nicht zuletzt: Datenbanken
R
O




      Datenbanken sind gut geeignet, um für dynamische Webseiten als
F




       Datenbasis genutzt zu werden.
N
I




36
                                              Zugriff auf MySQL über PHP

     •   Grundlegende Schritte jedes Datenbankzugriffs in PHP:
K
I
T




     1. Verbindung mit dem Datenbanksystem aufbauen
         $link = mysql_connect($Host, $Benutzer, $Passwort)
A




            or die("DB-Verbindung unmöglich: " . mysql_error());
M




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




            Fehler sollten (gerade hier) abgefangen (PHP-Konstrukt „or die“) und
O




             ausgegeben werden.
F
N




     2. Datenbank auswählen
I




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


37
                                                Zugriff auf MySQL über PHP

     3.   Abfrage ausführen
K




          $result = mysql_query($SQLText)
I




             or die("Anfrage fehlgeschlagen: " . mysql_error());
             Ergebnis ist eine Variable (Handle), mit der auf das Resultat der
T




              Anfrage zugegriffen werden kann.
A




     4.   Ergebnisse ausgeben
M




             Grundlegendes Problem
R




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




               Speicherung und „Durchlaufen“ der Ergebnisse notwendig
F




             Für das Abrufen der Ergebnisse gibt es drei wesentliche Varianten:
              i.     Array
N




              ii.    Assoziatives Array
              iii.   Objektorientiert
I




     5.   Freigabe der Handles (kann entfallen)
                       mysql_free_result($result);
38
                       mysql_close($link);
                                                   Zugriff auf MySQL über PHP

     • Ausgabe der Ergebnisse als Array
K




          mysql_fetch_array liefert eine komplette Zeile des Ergebnisses
I




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




                                                              Auslesen und Speichern einer
M




                                                                  Ergebniszeile als Array
R
O




                          while ($arrRow = mysql_fetch_array($result))
       Schleife über
F




                          {
         alle Zeilen        echo "$arrRow[0] : $arrRow[1]";
      des Ergebnisses
N




                          }
I




                  Zugriff auf eine Spalte der Ergebniszeile

39
                                                   Zugriff auf MySQL über PHP

     • Ausgabe der Ergebnisse als assoziatives Array
K




          mysql_fetch_array liefert auch ein assoziatives Array, d.h. es
I




           kann über die Spaltennamen zugegriffen werden.
          Problem: Spaltennamen müssen eindeutig sein
T
A




                                                              Auslesen und Speichern einer
M




                                                                  Ergebniszeile als Array
R
O




                          while ($arrRow = mysql_fetch_array($result))
       Schleife über
F




                          {
         alle Zeilen        echo "$arrRow[Land] : $arrRow[Sprache]";
      des Ergebnisses
N




                          }
I




                  Zugriff auf eine Spalte der Ergebniszeile

40
                                                    Zugriff auf MySQL über PHP

     • Ausgabe der Ergebnisse als Objekt
K




          mysql_fetch_object liefert eine komplette Zeile des Ergebnisses
I




           als Objekt
          Nach der letzten Zeile wird FALSE zurückgegeben
T
A




                                                               Auslesen und Speichern einer
M




                                                                  Ergebniszeile als objekt
R
O




                           while ($oRow = mysql_fetch_object($result))
       Schleife über
F




                           {
         alle Zeilen         echo "$oRow->Land : $oRow->Sprache";
      des Ergebnisses
N




                           }
I




                   Zugriff auf eine Spalte der Ergebniszeile

41
                                                Zugriff auf MySQL über PHP

     • Weitere interessante Funktionen:
K




         mysql_num_rows($result)
I




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




            • Gibt die Anzahl der Spalten im Ergebnis aus.
A




         mysql_field_name($result, 0)
            • Name eines Feldes im Ergebnis.
M




         mysql_affected_rows()
R




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




     • Vereinfachung:
F




         Herstellen der Verbindung / Datenbankauswahl in einer separaten
N




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




42
                         Vernetzung des Themas - Grenzen von SQL

     • Problem: „Verfolgen eines Flusslaufes“
K




         von der Quelle zum Meer
I




          z.B. Spree                            Nordsee
T




                                                                         Elbe
                                                                                    Havel
A




                                                                     Aller                   Spree
     • Hier werden iterative Strukturen
       benötigt, die SQL (als mengen-
M




       orientierte Sprache) im Standard                       Weser
R




       nicht bietet.                            Rhein
                                                          Fulda
                                                                       Werra
O




                                                          Main
      Anknüpfung an Programmierung
F




         PHP, Delphi, Java                 Mosel
N




                                                            Neckar
                                                                      Donau
                                                                                       Inn
I




                                                                             Isar




43
                         Vernetzung des Themas - Grenzen von SQL

     • Problem: „Verfolgen eines Flusslaufes“
K




          vom Meer zu den Zuflüssen
I




           z.B. Nordsee                     Nordsee
T




                                                                       Elbe
                                                                                  Havel
A




                                                                   Aller                   Spree
M




      Beispiel für eine (elegante?)
                                                            Weser
       rekursive Programmierung
R




                                                Rhein
                                                        Fulda
                                                                     Werra
O




                                                        Main
F




                                            Mosel
N




                                                          Neckar
                                                                    Donau
                                                                                     Inn
I




                                                                           Isar




44
                                    PHP und Datenbanken – Aufgaben

     1. Erstellen Sie php-Anzeigeseiten für die Datenbank miniterra.
K




        Verwenden Sie dazu Abfragen aus dem SQL-Teil.
I




     2. Erstellen Sie eine Abfrage, bei der der Kontinent eingegeben
T




        werden kann (HTML-Formular). Es werden dann alle Länder des
A




        Kontinents ausgegeben.
M




     3. Geben Sie die Länder mit ihren Kontinenten aus.
R




        Es sollen Links in jeder Spalte sein, die eine Sortierung
        erlauben.
O
F
N




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




45
                                                      Was kann PHP noch?

     • Alle wichtigen Konstrukte sind vorhanden
K




           Verschiedene Schleifenformen (auch für assoziative Arrays)
I




           Prozeduren / Funktionen
           Klassen
T




           Exceptions
A




           etc.
M




     • Strukturierung eines Projekts
R




         includes
O
F
N
I




                                                                  Aus der PHP-Dokumentation
46
                                           Vorteile / Nachteile von PHP

     • PHP ist eine Skriptsprache
K




         Einfachere Erlernbarkeit (?)
I




         Keine Notwendigkeit der Variablendefinitionen, etc. ( oder  ?)
         Dennoch auch komplexere Programmierkonzepte
T




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




     • PHP kann einfach in HTML eingebunden werden.
M




         Da HTML bekannt ist, muss die Ausgabe (Grafik, etc.) nicht behandelt
R




          werden.
         Ergebnisse sind schnell sichtbar.
O




         Es muss kein weiteres Programm (IDE) erlernt werden.
F




         Schüler sind leicht zu motivieren, da außenwirksame (Homepage)
          Projekte eingebracht werden.
N




         Es existiert kaum eine gute Möglichkeit des Debuggings.
         Umfangreichere Projekte werden leicht unübersichtlich.
I




         Vermischung von zwei Sprachen (HTML / PHP) erschwert den
          Zugang. (Alternative: PHP zur Shell-Programmierung)
47
                                           Vorteile / Nachteile von PHP

     • PHP ist Open-Source-Software
K




         In vielen Webpaketen der Provider verfügbar und damit für die
I




          Schüler auch außerhalb der Schule leicht verfügbar.
         Kein finanzielles Problem bei Anschaffung an der Schule.
T




         Ängste bei „etablierten“ Kollegen bzgl. der Wartbarkeit und
          Weiterentwicklung einer nicht-kommerziellen Software.
A
M




     • …
R
O
F
N
I




48
                                                            Internet-Referenzen

     • Installation Apache / PHP / mySQL als Paket (XAMPP)
K




         http://www.apachefriends.org/en/xampp.html
I




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




     • Weitere PHP-Quellen
M




           PHP für Einsteiger http://informatik.asn-graz.ac.at/phptutorial/index.html
           WikiBook http://de.wikibooks.org/wiki/Websiteentwicklung:_PHP
R




           PHP für dich (Einsteiger) http://www.schattenbaum.net/php/
O




           …
F
N
I




49
                                                   Geht es auch mit Python?

     • Eine Möglichkeit, der Einbindung von PHP sehr ähnlich:
K




         Erweiterung für Apache: Spyce
I




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




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




         Rudimentäre Installationsanleitung / Beispiele in den Unterlagen
M




           <h1>Kugeluhr</h1>
R




           [[\
           from time import *
O




           lt = localtime()
           Stunde = lt[3]
F




           Minute = lt[4]
           print "<p>Es ist %02i:%02i Uhr.<p>" % (Stunde, Minute)
N




           i=1
           while i<=Stunde:
             if (i%10)==0:
I




               print "<img src='kreisvoll10.gif' alt='' />"
             else:
               print "<img src='kreisvoll.gif' alt='' />"
             i=i+1
50         ]]
Dynamische Webseiten mit PHP [und Python]


            Thomas Mohr




I   N   F   O   R   M   A   T   I   K

								
To top