Vorheriger Abschnitt Inhaltsverzeichnis Nächster Abschnitt

8.1 Dynamische Webseiten mit PHP

Dynamische Webseiten?

Darunter versteht man Webseiten, die erst im Augenblick des Abrufes zusammengesetzt werden. Damit kann man Daten interaktiv in seine Webseiten einbauen, auf Nutzereingaben reagieren oder Datenbankinhalte darstellen. Wer aber behauptet, das dynamische Webseiten nur mit einer Datenbank zusammen funktionieren, liegt falsch. Ein ganz großer Vorteil von dynamischen Webseiten liegt in der Möglichkeit, das Layout völlig vom Inhalt einer Homepage trennen zu können. Alle Autoren, die schon einmal auf einer Schul - Homepage mit 3.000 Seiten ein neues Layout einführen mussten, werden diesen Vorteil nicht mehr missen wollen.

Was ist eigentlich PHP?

1994 entwickelte Rasmus Lerdorf ein "Personal-Home-Page Tool"; eine Scriptsprache, die Internetseiten automatisch generieren konnte. Heute ist PHP bekannt als "PHP Hypertext Preprocessor" und lässt sich direkt in HTML-Seiten einbinden. Die Befehlssyntax ist eine Mischung aus den Programmiersprachen C++, Java und Perl. Es wurden aber auch einige PHP-spezifische Features entwickelt. Ziel der Sprache ist es, das Schreiben von Programmen zur Erzeugung von dynamisch generierten Seiten zu erleichtern und zu beschleunigen. PHP erfreut sich stetig wachsender Beliebtheit. Ein besonderer Schwerpunkt liegt auf der Einbindung verschiedener Datenbanken.

Und warum nicht CGI, JAVAScript oder ASP?

Gegen CGI spräche eigentlich außer den großen Sicherheitsrisiken bei unsauberer Programmierung ja absolut nichts, da aber ein Lehrer fürs Unterrichten (nicht aber fürs Web - Seiten programmieren) bezahlt wird, ist dieses Risiko  als besonders groß einzuschätzen. Dazu kommt noch, das nur die wenigsten Webhoster ihren Kunden erlauben, eigene CGI - Verzeichnisse einzurichten.

Gegen JavaScript spricht noch viel mehr: Es ist zwar modern, aber als interpretierende Sprache besonders langsam. Und dazu kommt noch die unterschiedliche Interpretation in jedem Browser, da ja die Scripte erst im Browser auf dem Client abgearbeitet werden. Zudem hat jeder Browser-Hersteller eine eigene Auffassung von JavaScript: Microsoft nennt seine Implementation mit Absicht "JScript", um diesen Unterschied deutlich zu machen.

Und gegen ASP (Active Server Pages - ein Teil des Microsoft Internet Information Server) spricht noch viel mehr: Zwar ist ASP sehr einfach in den HTML - Quelltext einzufügen, aber da es unter VBScript (ein BASIC - Derivat) arbeitet, läuft es nur auf MS - Plattformen. Außerdem ist die objektorientierte Programmierung nur unvollkommen umgesetzt.

Die Lösung PHP

Seiten mit PHP werden direkt auf dem Server geparst (interpretiert) und der Client erhält nur einen HTML-Code. Somit ist es absolut unabhängig von jeglicher Browserversion. Der Betrachter der Webseite merkt nichts davon, das die Webseite erst beim Aufruf zusammengesetzt wird. Er erhält eine standardkonforme HTML - Seite. Und es ist weit sicherer als CGI, da es direkt für die Webbenutzung und für nichts anderes programmiert wird. Dazu kommt noch der relativ geringe Aufwand bei der Einarbeitung. Selbstverständlich kann man aber auch mittels PHP dynamisch JavaScript - Anweisungen erzeugen, die dann auf dem Computer des Betrachters ausgeführt werden. Der eigenen Fantasie (Kombination von PHP mit CGI, JAVA, JAVAScript, ...) sind also keine Grenzen gesetzt.

Vorbereitung

Es gibt viele Ansichten darüber, welche Webseiten nach PHP-Befehlen durchsucht (geparst) werden sollten. Eingestellt wird die jeweilige Dateierweiterung in den Konfigurationsdateien des Webservers - bei Arktur Apache.

In der Datei /etc/httpd/httpd.conf steht (siehe Abb 8.1-1), welche Dateitypen nach PHP - Inhalten geparst werden sollen, bevor sie an den Browser ausgeliefert werden.


# Wegen PHP3
AddType application/x-httpd-php3 .php3 .phtml
AddType application/x-httpd-php3-source .phps

Abbildung 8.1-1: Einstellungen in /etc/httpd/httpd.conf

Standardmäßig sind also die Dateitypen .php3 und .phtml voreingestellt.

Die Dateitypen .html und .htm sind normalerweise nicht dabei, also kann man in solchen Dateien auch keine PHP - Anweisungen unterbringen.

Sollte man durchgängig mit PHP arbeiten wollen, ohne dass der Betrachter der Webseiten davon irgend etwas merkt, dann ist es sinnvoll, die Dateitypen zu erweitern (siehe Abb 8.1-2).


# Wegen PHP3
AddType application/x-httpd-php3 .php3 .phtml .htm .html
AddType application/x-httpd-php3-source .phps


Abbildung 8.1-2: neue Einstellungen in /etc/httpd/httpd.conf

Sind alle Veränderungen eingetragen muss natürlich noch der Webserver Apache die Konfiguration neu einlesen. Und das geschieht als User root mit:

Die Meldung sollte dann so aussehen:

Programmierung

Die ganz allgemeine Syntax eines PHP Befehls sieht so aus:

Diese Befehlszeile kann an einer beliebigen Stelle mitten im HTML Quelltext stehen und wird vom Webserver durch das Ergebnis nach der Ausführung des Befehls ersetzt, ehe die Datei an den Browser ausgeliefert wird.

Sollten allerdings die Internetseiten mit einem HTML - Editor erstellt werden, der den TAG

nicht kennt (zum Beispiel das allseits bekannte Frontpage von MicroSoft - aber auch andere..), dann versucht dieser Editor immer wieder, den vermeintlich falschen Code zu korrigieren. Das geht natürlich schief. Also sollte man sich durch den <script..> Tag behelfen - den kennt jeder neuere Editor und PHP kann diesen auch ersatzweise bearbeiten. Der obige Befehl sieht dann geändert so aus:

Der erste Befehl

Der erste sinnvolle Befehl sähe dann etwa so aus:

Damit kann man einen beliebigen String ausgeben. Achtung: Jeder PHP Befehl endet mit einem Semikolon!

Wenn man den Befehl um das Sonderzeichen: "\n" erweitert, also:

oder im Unterschied dazu:

dann wird im ersten Fall lediglich im vom Webserver ausgelieferten HTML-Quelltext ein Zeilenumbruch durchgeführt. Im zweiten Fall enthält der HTML-Text den HTML-Befehl zum Zeilenumbruch.

Kommentare

Jeglicher Programmcode sollte immer kommentiert werden, damit man später einmal nachvollziehen kann, was man eigentlich programmiert hatte.

In reinem HTML verwendet man dazu den tag (tag zu deutsch: HTML - Befehl; ist aber einfach zu lang):

Diese Art der Kommentierung wird von PHP nicht bearbeitet, bleibt also im übertragenen Quelltext erhalten und jeder Betrachter kann ihn (im Quelltext) sehen.

Kommentare im PHP - Code werden jedoch nicht mit zum Browser übertragen. Der Parser ignoriert diese Zeilen und entfernt sie vor der Übertragung. Sie beginnen mit:

und sind nicht an Zeilenanfang oder Zeilenende gebunden.

Der Vorteil liegt auf der Hand: Jeder Programmierer kann seine PHP - Dateien übersichtlich dokumentieren, ohne das ein Betrachter dies je nachvollziehen könnte. Außerdem wird die Bandbreite im Netz nicht unnötig belastet (Es soll ja noch Nutzer ohne DSL geben).

Weiter

Nun ist das ganze noch nicht sehr sinnvoll, denn das "Hallo" hätte man ja auch gleich in den Quelltext schreiben können. Aber diese Anleitung soll und kann kein Programmierhandbuch sein. Weitere Informationen zur PHP - Programmierung findet man auf vielen anderen Webseiten.


Vorheriger Abschnitt Inhaltsverzeichnis Nächster Abschnitt
© Uwe Schoffer, Reiner Klaproth, 16.03.2002