Präliminarien |
|
Beispiele
Datenbankanbindung macht in vielen Anwendungen Sinn:
- Datenretrieval
- Suchmaschinen
- Artikel-Recherche
- Messdatenabfrage
- => Suche in Datenbanken
- Datenerfassung
- Anmeldung zum DV-Praktikum
- Kundendaten Bestellung
- => Eingabe und Auswertung von Daten
- Dynamisierung von Daten
- Content-Management
- MyStudy
- => Zeitabhängige Daten, Personalisierung von Daten
Problem
Warum geht das nicht auch mit HTML? HTML_Dokumente sind statisch, denn HTML ist keine Programmiersprache ist, sondern lediglich die Struktur eines Dokuments auszeichnen will.
Wie kann man Programmfunktionalität auf die Seite bringen? Dazu stehen eine Reihe von Techniken zur Verfügung:
- JavaScript
- Java
- Flash
- PHP
- Python
- Perl
- ASP
- ...
Dabei kann in Programmiersprachen unterschieden werden die auf dem Client-Rechner und solche, die auf dem Server ausgeführt werden.
Das folgende Grundschema zeigt, wie die Abfrage einer PHP-Seite abläuft.
Techniken
LAMP-System
Unter LAMP versteht man eine sehr populäre Konfiguration (besonders an Universitäten).
24% aller Domains nutzen PHP und 3 Millionen Anwendungen MySQL (CZ, 8. Juli 2002)
LAMP steht für Linux, Apache, MySQL und PHP)
- Linux
- freies OpenSource Betriebssystem
- Apache
- Von Rob McCool als NCSA (National Center for Supercomputing Applications) entwickelt
- Der Name leitet sich ab von „a patchy server“
- Apache ist ein freier modularer Webserver, mit Moduln für alle erdenklichen Anwendungen. Auch für PHP ist ein Modul verfügbar.
- Er zeichnet sich aus durch hohe Performanz bei gerigen Hardwareanforderungen
- und der Verfügbarkeit auf fast allen Plattformen
- daher ist er weit verbreitet
- MySQL
- Freie, schnelle, leistungsfähige und einfach zu pflegende Datenbank die nach dem SQL-Standard funktioniert. Die nichtkommerzielle Nutzung ist kostenlos.
- MySQL unterstützt den Funktionsunfang von SQL92
- Auch open source.
- PHP
- 1995 von Rasmus Lerdorf entwicklelt
- PHP soll sich ableiten aus Personal Home Page. Heute wird es lieber übersetet mit "PHP is a Hypertext Preprocessor"
- Alternativen zu PHP sind andere Programmiersprachen die für die Zusammenarbeit mit http-Servern optimiert sind wie: Perl, Python, Tcl, JDBC (Diese Programme werden auch Middleware genannt.)
- PHP wurde speziell für die Verwendung im WWW entwickelt
- und ist eine direkt in HTML eingebunde Skriptsprache
- die sehr umfangreich ist (ca 1200 Funktionen)
- Mit PHP lassen sich so z.B. auch Bilder oder PDFs erzeugen
In der Regel wird PHP als zusätzliches Modul dem Apache WebServer hinzugefügt. Es ist aber auch möglich einen eigenständigen PHP-Interpreter als Programm laufen zu lassen und via CGI die Skripte zu kompilieren (sehr viel langsamer).
Genaugenommen ist PHP (wie bei Cold Fusion und ASP) ein Interpreter für eine Script Sprache. Die Befehle werden dabei direkt in normalem HTML platziert.
Anhand der Dateiendung (.php statt .html) erkennt Apache die dazugehörige Middelware-Komponente (PHP) und durchsucht sie nach Scriptanteilen. Die Befehle werden ausgeführt und das Resultat als HTML-Ausgabe an den Client zurückgesendet. Man nennt das „Server
passed HTML“.
Vorteile von LAMP:
- OpenSource = offene Standards -> keine Abhängigkeiten von proprietärer Software
- gute Ressourcen und Unterstützung (im WWW, Usegroups etc)
- Da es auf der Server Seite läuft: keine gefürchteten Inkompatibilitäten auf der Client Seite (unterschiedliche Browser)
- Man kann sogar mit PHP JavaScript generieren, was dann an den Client zurückgesendet wird.
Um also selbstgemachte dynamische Webseiten zu testen, ist es, anders als bei reiner HTML-Entwicklung, unumgänglich, mindestens einen lokalen Webserver mit PHP-Interpreter und möglicherweise einen MySQL-Datenbankserver zu installieren.
Sicherheit
Dynamisierung von Webseiten bedeutet immer auch das es Sicherheitslücken geben kann (Ausspähen von Verzeichnissen).
Der Safe-Mode von PHP bietet hier einen gewissen Schutz, schränkt aber Funktionen von PHP ein.
Verbreitung
http://www.php.net/usage.php
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html