{Perl_CGI_Einführung}

MuWeb CGI Einführung Privat
 
00 Index
01 Vorwort
02 Kickstart
03 Hello World
04 Variablen
05 Arrays
06 Queries
07 Vergleiche
08 Schleifen
09 Dateien
10 Reg_Exp
11 Strings
12 Subs
13 Links

CGI 3 - Hello World

Sie haben die Entwicklungsumgebung nun installiert oder besitzen einen vorkonfigurierten FTP Server der CGI unterstützt? Falls ja können Sie nun mit Ihrem ersten Programm beginnen, falls nein sollten Sie zuerst Kapitel 2 lesen.


Unterkapitelindex

3.1 Die Eingabe Ihres Programmes
3.2 Von Anfang an richtig...
3.3 Das erste Skript
3.4 Das Skript starten
3.5 Noch Fragen?




3.1 Die Eingabe Ihres Programmes
Um Ihr Programm zu schreiben können Sie einen normalen Texteditor wie NotePad nutzen, oder aber Sie nutzen eine Programmierumgebung die mit Feautures wie Syntax Highlighting aufwartet.

Die Dateien sollten lokal mit der Endung ".pl" oder auf Webservern mit der Endung ".cgi" gespeichert werden. Sie können natürlich auch jede andere Dateiendung nutzen, das könnte jedoch - sofern der Server nicht korrekt konfiguriert ist - zu Problemen führen.



3.2 Von Anfang an richtig...
In vielen Referenzen und Büchern zu Perl wird am Anfang auf das nutzen des Taint Moduses sowie des Aktivieren von des Strict Modueses verzichtet - Ein kapitaler Fehler.

Sie müssen den restlichen Teil des Unterkapitels nicht unbedingt verstehen da einige Begriffe der Perl Programmierung verwendet werden - Sie müssen nur wissen das es wichtig ist den Taint Modus sowie den Strict Modus zu aktivieren; Der Grund wird Ihnen sicherlich erst später klar. Wie in den Tooltips () schon zu lesen handelt es sich beim Taint Modus um ein wichtiges Sicherheits-Feauture. Jede Variable die von außen kommt wird darin als "vergiftet" betrachtet und muss erst im Skript kontrolliert werden.

Bei diesen Variablen handelt es sich zumeist - aber nicht ausschließlich - um Eingaben eines Nutzers.

Beispiel: Sie möchten die Datei "<dateiname>.txt" öffnen um diese danach anzuzeigen. Der Dateiname wird in der URL ("test.cgi?datei=test.txt") übertragen. Das ist kein Problem wenn es sich um einen normalen Internet Nutzer handelt der nur den Links auf Ihrer Webseite folgt. Sollte es sich beim Nutzer allerdings um einen (angehenden) Hacker handeln kann der zb. auch "test.cgi?datei=../passwort.txt" eingeben. Wenn die Datei nun von Ihrem Skript geöffnet und ausgegeben wird hat der Hacker unter Umständen soeben eine geheime Passwortdatei geöffnet.

Strict sollten Sie verwenden da ein Skript nicht immer nur aus einer Datei von Ihnen besteht. Sie können einzelne Dateien hinzufügen, und wenn in diesen Dateien dann eine Variable mit dem gleichen Namen wie in Ihrem Skript vorhanden ist würde es ohne den Strict Modus zu Verwechslungen zwischen den beiden Variablen kommen da keine Variable zweimal deklariert werden kann und nicht deklarierte Variablen einen Fehler erzeugen.



3.3 Das erste Skript
Folgender Code, in einen HTML Editor eingegeben, erzeugt eine einfache HTML Seite mit dem Text "Hello World!".

  

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16

#!/usr/bin/perl -wT

use strict;

print <<"EOF";
Content-Type:text/html


<html>
<head><title>Hello World</title></head>
<body>
<center>Hello World!</center>
</body>
</html>
EOF

Dieser 15 Zeiler besteht im wesentlichen aus 4 Befehlen. Das Skript beginnt mit der Anweisung "#!/usr/bin/perl -wT". Diese veranlasst den Webserver dazu das Skript mit dem Programm "perl" im Verzeichnis "/usr/bin/" zu starten. Sollte das Perl Verzeichnis auf Ihrem Webserver ein anderes sein muss es entsprechend ersetzt werden. Der Zusatz "-wT" weißt den Interpreter an Warnungen & den Taint Modus (s.o.) zu aktivieren.

Diese Zeile wird in Zukunft in jedem Ihrer Perl Programme obligatorisch sein.

Die dritte Zeile weißt das Programm an, den Strict Modus (s.o.) zu aktivieren.

Die fünte bis dreizehnte Zeile ist einer der üblichsten Befehle in Perl Skripten überhaupt. Der Befehl "print <<EOF;" weißt den Interpreter an alle Zeilen bis zu den Buchstaben "EOF" auszugeben.

Der letzte Zeilenumbruch ist nötig damit kein Fehler erzeugt wird!

In unserem Fall wären das

01
02
03
04
05
06
07

Content-type:text/html\n\n
<html>
<head><title>Hello World</title></head>
<body>
<center>Hello World!</center>
</body>
</html>

6 der 7 Zeilen sollten Ihnen bekannt sein wenn Sie HTML beherrschen. Die 1. Zeile dient dazu dem Webserver zu sagen was er dem Nutzer präsentieren soll - in diesem Fall eine HTML Seite. Danach folgen - obligatorisch - zwei Zeilenumbrüche.. Diese Zeilen müssen in jedem Skript das im Web laufen soll enthtitleen sein (!) da sonst ein Fehler erzeugt wird.

Der Nutzer sieht natürlich am Ende nicht den HTML Code, sondern folgenden Text:

01

Hello World!



3.4 Das Skript starten
Nun wissen Sie grob wie ein Skript auszusehen hat und wie man es eingibt. Der letzte Schritt fehlt jedoch noch - Das hochladen des Skriptes. Dazu bauen Sie bitte zuerst eine FTP Verbindung zu Ihrem Webserver auf. Nun laden Sie die Datei (zb. "test.cgi") im ASCII Modus hoch. Erstellen Sie vorher ein Verzeichnis "cgi-bin" in das Sie die Datei hochladen. Das ist auf manchen Webservern nötig.

Nun hat der Webserver die Datei empfangen, aber die Unix Rechte verbieten Ihm noch das Programm auszuführen. Der letzte Schritt ist es also den CHMOD Befehl mit den Werten "755" auf die Datei anzuwenden. Das erlaubt es dem Server nun Ihre Datei auszuführen.

Sie können nun die Datei nun über das Internet aufrufen.


Sollten Sie das Programm auf einem lokalen (Windows) Webserver ausführen wollen ist das hochladen natürlich nicht nötig. Genausowenig ist ein CHMOD nötig, Sie können das Skript einfach über Ihren Webserver (bspw. "http://127.0.0.1/cgi-bin/test.cgi") aufrufen.



3.5 Noch Fragen?
Sollten Sie Probleme mit dem Einrichten eines Skriptes haben empfehle Ich Ihnen Kapitel 2 nochmals durchzuarbeiten, da stehen alle Vorgänge genauer beschrieben.

Desweiteren steht dort welche Programme Sie benötigen und wie diese zu bedienen sind.