1Das Prinzip dynamischer Webseiten
PHP ist eine serverseitige Skriptsprache. Was aber bedeutet das genau?
»Serverseitig« heißt erst einmal, dass der PHP-Code nicht auf dem Client, d.h. im Browser, ausgeführt wird, sondern auf dem Server. Um das besser nachvollziehen zu können, muss man sich einmal vor Augen führen, wie die Kommunikation im Internet bei statischen HTML-Seiten ohne PHP-Code abläuft. Diese besteht im Wesentlichen aus zwei Schritten:
- Der Surfer gibt eine Adresse in die Adresszeile seines Browsers ein und drückt auf Enter. Der Browser stellt eine Anfrage (REQUEST) an den Server nach der entsprechenden HTML-Datei.
- Der Server liefert als Antwort (RESPONSE) diese Datei an den Browser, der sie dann darstellt.
In diesem klassischen Fall liegt die HTML-Seite, die der Browser anzeigt, genau in dieser Form auch auf dem Server. Der Server liefert die Datei, die in einem seiner Verzeichnisse liegt, nur aus, er verändert nichts daran.
Abb. 1–1Kommunikation zwischen Browser und Webserver: Die angeforderte HTML-Seite wird an den Browser ausgeliefert, der diese darstellt.
Übrigens hat das Wort Server zwei Bedeutungen. Zum einen meint man mit Server einen Rechner im Internet, d.h. die Hardware. Entscheidend aber dafür, dass die Kommunikation funktioniert, ist die Webserver-Software. Diese hat die Funktion, die Dateien auf Anfrage auszuliefern. Da die wichtige Komponente hier die Server-Software ist, können Sie – wie im nächsten Kapitel beschrieben – sich auch einen Server auf Ihrem normalen Arbeitsrechner einrichten. Äußerst nützlich zum Testen von PHP-Skripten!
Sehen wir uns jetzt an, wie das Ganze funktioniert, wenn PHP mit im Spiel ist. Dieses Mal sind es mehr Schritte:
- Ein Surfer tippt eine Adresse ein. Der Browser leitet diesen REQUEST an den Webserver weiter.
- Bei der angeforderten Seite handelt es sich dieses Mal um ein PHP-Skript. Der Webserver erkennt das an der Dateiendung .php. Daher liefert er die Seite nicht direkt an den Browser (Client) aus, sondern übergibt sie einem Programm – bei PHP dem PHP-Parser.
- Der PHP-Parser interpretiert die PHP-Befehle und erzeugt daraus eine neue HTML-Seite.
- Diese HTML-Seite wird an den Browser zurückgesendet. Die im Browser angezeigte Seite heißt zwar noch xy.php, sie enthält aber keinen PHP-Code mehr, sondern nur HTML-Code.
Abb. 1–2Die Kommunikation zwischen Client und Server bei dynamischen Seiten
Der entscheidende Unterschied zu den statischen Seiten ist, dass bei der Anforderung einer PHP-Seite vom Browser in dieser PHP-Seite auf dem Server noch nicht die fertige HTML-Seite vorliegt, sondern PHP-Befehle enthalten sind. Der Server reicht die Seite mit den PHP-Befehlen an den PHP-Parser weiter, der die Befehle ausführt und die neue HTML-Seite generiert. Und damit sind dynamische Seiten möglich, also Seiten, die jedes Mal, wenn sie von einem Client aufgerufen werden, mit aktuellen Daten erstellt werden.
Da ein zusätzlicher Bearbeitungsvorgang auf dem Server stattfindet, spricht man davon, dass PHP eine serverseitige Skriptsprache ist. Für den Browser ändert sich hingegen nichts: Er erhält wieder eine einfache HTML-Datei. Das ist auch genau das, was der Browser versteht: Er kann nur HTML-Code darstellen, PHP kann er nicht interpretieren.
Da dynamische Webseiten bei Bedarf erstellt werden, ist es prinzipiell nicht möglich, zu sagen, wie viele Seiten im Internet stehen. Angenommen, Sie suchen ein Buch von Patricia Highsmith in Ihrem Online-Buchladen. Sie geben den Namen der Autorin in ein Formular ein und erhalten danach die Ergebnisse präsentiert. Falls noch niemand vor Ihnen in diesem Online-Buchladen nach Büchern von Patricia Highsmith gesucht hat, hat auch noch niemand genau die Ergebnisseite präsentiert bekommen, die Sie gerade sehen. Oder aber jemand hat vielleicht vor Ihnen schon genau diesen Suchbegriff eingegeben, aber seitdem sind neue Bücher erschienen – dann hat der Besucher vor Ihnen ebenfalls eine Seite mit anderen Ergebnissen gesehen.
Da PHP eine serverseitige Skriptsprache ist, steht es beispielsweise im Gegensatz zu clientseitigem, das heißt im Browser ausgeführten JavaScript.1 JavaScript wird zum Beispiel eingesetzt, um Pop-up-Fenster zu öffnen, um Formulareingaben zu prüfen oder für Verbesserungen an der Benutzeroberfläche, wie Tabs und Accordions. Da JavaScript im Browser ausgeführt wird, kann es vom Benutzer im Browser deaktiviert werden.
JavaScript kann wunderbar mit PHP kombiniert werden. Beispielsweise kann man eine Formularprüfung parallel mit JavaScript und PHP durchführen. Die Prüfung per JavaScript findet statt, bevor die Formulardaten den Rechner des Surfers verlassen, der Benutzer erhält dadurch ein schnelles Feedback. Da sich JavaScript jedoch deaktivieren lässt, findet sicherheitshalber eine zusätzliche Prüfung per PHP statt, die vom Benutzer nicht »ausgehebelt« werden kann.
Beispiele dafür, was Sie mit JavaScript machen können und wie es mit PHP zusammenarbeitet, zeigt Kapitel 15 anhand der beliebten JavaScript-Bibliothek jQuery.
Im nächsten Kapitel erfahren Sie, wie Sie sich Ihre Entwicklungsumgebung einrichten. Davor kurz aber noch die wichtigsten Eckpunkte zur Geschichte von PHP. Der Schöpfer von PHP ist Rasmus Lerdorf. Heute wird PHP von mehreren Entwicklern betreut. Die erste Version von PHP erschien 1995. Damals wurde die Abkürzung PHP noch aufgelöst als Personal Home Page Tools; inzwischen steht PHP wie erwähnt für PHP Hypertext Preprocessor. Die zweite Version von PHP erschien 1996, die dritte 1998. PHP 4 gibt es seit 2000, und im Juli 2004 ist PHP 5 herausgekommen. Weitere Meilensteine sind PHP 5.3, veröffentlicht im Juni 2009, PHP 5.4, erschienen im März 2012, PHP 5.5 vom Juni 2013 sowie PHP 5.6 vom August 2014.
Nach PHP 5.6 wurde allerdings nicht PHP 6 publiziert, sondern PHP 7. Der Grund für diesen Versionssprung: PHP 6 sollte ursprünglich Unicode-Unterstützung bringen, allerdings ging die Implementierung nicht so vonstatten wie gewünscht. Deswegen entschied man sich, stattdessen den 5-er Zweig weiterzuentwickeln und veröffentlichte PHP 5.3. Obwohl PHP 6 nie erschienen ist, gibt es jedoch Bücher und Artikel, die PHP 6 im Titel tragen. Um Verwirrungen zu vermeiden, welche Artikel/Bücher wirklich die neuere Version behandeln, entschied man sich, PHP 6 auszulassen und die neue Version PHP 7 zu nennen. PHP 7 wurde im Dezember 2015 veröffentlicht. Die weiteren Versionen erschienen nun regelmäßig am Ende des Jahres: Dezember 2016 PHP 7.1, November 2017 PHP 7.2 und Ende 2018 PHP 7.3.
2Die Entwicklungsumgebung einrichten
Zur Arbeit mit PHP benötigen Sie eine entsprechende Entwicklungsumgebung. Dieses Kapitel zeigt Ihnen, wie Sie diese installieren. Außerdem erstellen Sie ein erstes PHP-Beispielskript und sehen, wie Sie die PHP-Konfiguration anpassen können.
2.1Verschiedene Entwicklungsumgebungen
Um PHP-Skripte zu erstellen, brauchen Sie zwei Dinge:
- die Webserver-Software – am häufigsten benutzt wird hier Apache – und
- PHP selbst.
Wenn Sie dann – wie später im Buch beschrieben – auf eine Datenbank zurückgreifen möchten, brauchen Sie zusätzlich
- MySQL oder MariaDB als Datenbankmanagementsystem.
Eine Möglichkeit ist, dass Sie Ihre Skripte bei einem Provider mit PHP-Unterstützung testen. Dann erstellen Sie Ihre Skripte lokal auf Ihrem Computer und laden sie zum Testen per FTP-Programm auf den Webserver beim Provider.
Praktischer ist es jedoch, wenn Sie sich selbst auf Ihrem lokalen Rechner eine vollständige Entwicklungsumgebung einrichten. Das hat mehrere Vorteile:
- Das Testen geht schneller vonstatten.
- Außerdem können Sie sich mit der Konfiguration von PHP vertraut machen und diese bei Bedarf auch anpassen – das ist eventuell beim Provider nur mit Einschränkungen möglich.
- Zusätzlich können Sie Ihr Skript unter verschiedenen Bedingungen ausprobieren.
Die drei benötigten Komponenten – Webserver, PHP und MySQL/MariaDB – können Sie einzeln herunterladen und installieren. Es gibt jedoch praktische Komplettpakete, die alle benötigten Komponenten schon enthalten und die Installation wesentlich vereinfachen. Besonders erfolgreich ist XAMPP von den Apache Friends.1
XAMPP gibt es für Windows, Linux und macOS. Neben den unbedingt benötigten Komponenten beinhaltet XAMPP weitere nützliche Dinge wie beispielsweise phpMyAdmin zur Administration von MySQL-/MariaDB-Datenbanken (Genaueres zu phpMyAdmin in K...