von Martin Steigerwald
Damit Sie diesen Artikel praktisch nachvollziehen können, sollten Sie Apache/PHP bereits, wie in der letzten Ausgabe beschrieben, installiert haben. Dieser Artikel geht (noch) nicht auf die Datenbank-Nutzung via PHP ein. Das hat einen einfachen Grund: Weder PostGreSQL aus dem AmiNet ließ sich problemlos kompilieren, noch mSQL (ebenfalls aus dem Aminet) schien einwandfrei zu funktionieren. Einen MySQL-Port für Amiga gibt es leider nicht. Da scheint auf den interessierten PHP-Nutzer noch einiges an Bastelarbeit zu warten. Wir bleiben für Sie auf jeden Fall an der Datenbank-Geschichte dran und informieren Sie, sobald es etwas Neues gibt. Und dann gibts auch einen Bericht über PHP-Beispiele mit Datenbank-Nutzung. Dieser Bericht ist kein PHP-Programmierkurs. Die Syntax von PHP ähnelt der von C, Java und Perl. Wer eine oder mehrere dieser Sprachen kennt wird sich gut zurecht finden. Es gibt gute Bücher zu PHP. Wer schnell einen Einblick gewinnen möchte, ist mit »PHP kurz & gut« von Rasmus Lerdorf, der 1995 das PHP-Projekt ins Leben rief, gut beraten.
Einfach,
aber gut
Doch nun zu ein paar einfachen Beispielen. Das Praktische an PHP ist die Möglichkeit, PHP-Befehle und HTML-Code in einer Datei beliebig zu mischen:
Zunächst einmal wird alles, was in einem PHP-Skript steht, als HTML-Code gedeutet. PHP-Befehle kann man zwischen <? und ?> in dem PHP-Skript unterbringen. Das kann aber Probleme mit XML geben, weshalb die Schreibweise <?php und ?> empfehlenswert ist. Auch der <script language="php">-Tag kann verwendet werden. Einzelne PHP-Befehle werden durch Semikola getrennt. Variablennamen fangen bei PHP wie in Perl mit einem Dollarzeichen an.
Doch nun zum ersten Beispiel: Mit PHP kann man Apache-Server-Variablen aber auch mit der GET- oder der POST-Methode übermittelte Variablen sowie Cookie-Inhalte auslesen. »BigBrother« liest zum Beispiel die Variablen $HTTP_ USER_AGENT sowie $REMOTE_ADDR aus, um den Benutzer die IP-Adresse seines Rechners sowie den von ihm verwendeten Webbrowser anzuzeigen (s. Listing 1 und »Big Brother«).
Sicherlich nimmt sich dieses Skript im Vergleich zu den in Verschwörungstheorien und Artikeln über Spionage-Aktionen ziemlich harmlos aus. Aber schon das Mitschreiben von IP-Adressen und aufgerufener URLs in eine Datei lässt zumindest das Nutzungsverhalten eines Users offensichtlich werden zumindest bis zum Trennen der Verbindung. Deshalb soll es hier nur als Beispiel dienen, wie Variablen ausgelesen werden können. Das Skript zeigt auch, wie man die Uhrzeit des Servers im lokalen Zeitformat anzeigen lassen kann.
Tabellen
bauen
Das zweite kleine Beispiel zeigt noch deutlicher die Mischung von PHP- und HTML-Code. So lässt sich selbst eine for-Schleife mit HTML-Elementen mischen, um zum Beispiel auf einfache Weise eine große Tabelle zu erzeugen (s. Listing 2 und »Große Tabellen«). Bei PHP können dieselben geschweiften Klammern wie in C verwenden werden, um in Kontrollstrukturen einzelne Bereiche abzugrenzen. Es gibt jedoch auch eine etwas ausführliche Schreibweise mit expliziten Schlüsselwörtern. Diese Schreibweise hier wird die Schleife mit endfor beendet empfiehlt sich, wenn Kontrollstruktur mit HTML-Code vermischt wird.
AnyPortal
der Sitemanager!
Natürlich kann man auch die unzähligen PHP-Skript-Archive nach Skripten durchsuchen, die auf dem Amiga funktionieren (s. »Internet-Resourcen«). Leider schränken die Schwierigkeiten bei der Installation einer SQL-Datenbank die Auswahl doch recht stark ein. Sehr viele Beispiele verwenden die auf dem Amiga noch nicht portierte »MySQL«-Datenbank.
Einige Beispiele funktionieren aber dennoch, so unter anderem »AnyPortal«, ein Website-Manager (s. »Website-Manager«). Es erlaubt die Fernwartung der Dateien ihres WWW-Servers über ein Web-Interface. Sie können neue Dateien auf den Server laden oder Dateien löschen. Zudem können sie auf dem Server vorhandene Dateien direkt über das Web-Interface editieren (s. »Online editieren«).
Damit AnyPortal veränderte Dateien auch wieder schreiben oder Dateien löschen kann, reicht es jedoch leider nicht aus, dem User »www« Schreibrechte zu geben. Es funktionierte auf dem Testrechner nur, wenn man auch der Gruppe und der Welt Schreibrechte für die betreffenden Dateien gibt :
chmod a+rwx <Ihr-Verzeichnis>/*
Das ist jedoch nicht ganz ungefährlich. Es macht Sinn, nur bestimmte Verzeichnisse auf diese Weise freizugeben und vor allem den Zugriff auf den Site-Manager für alle Rechner außerhalb des lokalen Netzwerks zu sperren, was natürlich den Nutzen vom Site-Manager wieder einschränkt. Leider ließ sich nicht feststellen, warum das PHP-Skript »siteman.php3« nicht unter dem User »www« auf dem Amiga zu laufen schien.
Entwicklungsumgebung für PHP-Skripte »IDE« bietet die Möglichkeit, mal schnell ein PHP-Skript direkt im Webbrowser einzugeben und zu testen (»PHP-Skripte entwickeln«). Das ist praktisch, da PHP bei Apache/Amiga ja in den Webserver integriert ist und man es nicht einfach von einer Shell aus starten kann. Ohne »IDE« müssten Sie also mit zwei Programmen arbeiten: Das Skript schreiben Sie in einen Texteditor, und zum Neuladen des Dokumentes drücken Sie im Browser-Fenster den Schalter, damit das Skript erneut ausgeführt wird. IDE funktioniert allerdings nur mit AWeb einwandfrei. Es benutzt in den von ihm erzeugten Webseiten JavaScript-Code, der weder mit IBrowse noch mit Voyager in der Praxis richtig funktioniert.
|
||||||||||||||||||||||||||||||||||||||
Literatur:
| [1] | Pures vergnügen, Martin Steigerwald, AMIGA-Magazin, 10/2000, S. 18 |
| [2] | PHP kurz und gut, Rasmus Lerdorf, O`Reilly Verlag, ISBN-Nummer: 3-89721-225-0 |
| [3] | Mein Freund W., Jörn-Erik Burkert, AMIGA -Magazin 8/1998, S. 26 |
| [4] | Neues vom Indianer, Jörn-Erik Burkert, AMIGA -Magazin 11/1999, S. 14 |
| [5] | Lokal vernetzt aber mit Komfort!, Martin Steigerwald, AMIGA-Magazin 8/2000, S. 24 |
lb
© 2000 All Rights Reserved. Alle Rechte vorbehalten Franzis' Verlag GmbH Kommentare, Fragen, Korrekturen und Kritik bitte an Webmaster
AMIGA schicken.
Zuletzt aktualisiert am 17. 10. 2000.