Dynamische Webseiten
Datenbankanbindung macht in vielen Anwendungen Sinn:
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:
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)
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:
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