![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]()
So nachdem wir schon ein bisschen Gefühl für CGI-Skripts bekommen haben wollen
wir mit Interaktion anfangen. Einfache Hallo Welt auf dem Bildschirm auszugeben
können wir mit jeder einfachen HTML-Datei genauso erledigen. Schließlich ist das ja
auch der Sinn von CGI-Skripts. <html> <head> <title>Eine einfache Auswertung das Namens</title> </head> <body> <h1><center><b><u> GET-Formular</u></b></center></h1><br><br> <table width="50%" cellspacing=5 border=0 cellpadding=5 align="center" bgcolor="yellow"> <tr align="center " valign="center"> <form action="http://localhost/cgi-bin/auswert.pl" method=get> <center><b>Bitte geben sie ihren Namen ein : </b> <input name="Textfeld" size="20"> </input> <input type=submit value="abschicken"></center> </form> </tr> </table> </body> </html>
Diese HTML-Datei können sie in einem Verzeichnis Ihrer Wahl speichern. Und auch
gleich in einem Browser ansehen wenn sie wollen. Ungeduldig wie sie sind haben sie
wahrscheinlich schon den Abschicken Button gedrückt und als Fehlermeldung erhalten.......
The requestet URL /cgi-bin/auswert.cgi was not found on this server.
Klar das CGI-Skript auswert.cgi oder auswert.pl haben wir ja noch nicht geschrieben. Bei der Eingabe........
<input name="Textfeld" size="20">
...übergeben wir das "Textfeld" an unseren Server der dies Auswertet wenn wir den
Abschicken-Button gedrückt haben. Gesendet wird diese Eingabe an.........
<form action="http://localhost/cgi-bin/auswert.pl" method=get>
...mit der Methode GET. Mit action rufen wir das Skript auswert.pl
auf. http://localhost/cgi-bin/auswert.pl?Textfeld=hallo
Der Server ist dann Verantwortlich diese Zeichenkette wieder zu entfernen und übergibt
diese an QUERY_STRING......
QUERY_STRING = Textfeld=hallo
Jetzt sind wir an der Reihen mit unserem CGI-Programm QUERY_STRING auszuwerten.
Diese GET-Möglichkeit stellt die einfachste da. Der Nachteil daran ist aber, dass
damit nur Speicherplatz für 1024Bytes vorhanden sind. Also 1024
Zeichen. Für z.B. einer Suchmaschine ausreichend. Aber für eine Formmail nicht. Aber dazu
kommen wir gleich. Jetzt wollen wir aber unser auswert.pl Skript schreiben..........
#!/usr/bin/perl -w $daten = $ENV{'QUERY_STRING'}; print <<HTML; Content-type: text/html <html> <head> <title>AUSWERTUNG IHRER EINGABE</title> </head> <body> <center> <h1><b>Hallo $daten</b></h1><br> CGI-Skripts zu schreiben ist doch gar nicht so schwer, oder? </center> <body> </html> HTML
Speichern sie diese Skript im cgi-bin-Verzeichnis ihres Webservers und ändern sie die
Zugriffrechte wie gewohnt. Jetzt könne sie die HTML-Seite starten und Ihren Namen
eingeben. Beispielsweise: James Bond http://localhost/cgi-bin/auswert.pl?Textfeld=James+Bond
Mittels.......
$daten = $ENV{'QUERY_STRING'};
...übergeben wir die Eingabe die wir gemacht haben an unsere Variable $daten. Die wir
anschließend ausgeben. Leider haben wir noch nicht das gewünschte Ergebnis. Die
Ausgabe hat folgendes Aussehen.....
Hallo Textfeld=James+Bond
Und wozu haben wir Perl gelernt? Also dekodieren wir den Inhalt von QUERY_STRING mit
regulären Ausdrücken. Hier nun die komplette Lösung von auswert.pl.........
#!/usr/bin/perl -w
Nun wird so manch einer über das Skript protestieren, da es doch hieß CGI-Skripts
seien einfach. Nun wollen wir es uns einfach machen. Dazu brauchen wir nur das
Perl-Modul CGI.pm verwenden. Hier das auswert.pl Skript mit dem Modul CGI.........
#!/usr/bin/perl -w use CGI qw(:standard); use strict; my $q=new CGI; print $q->header; my $name = param('Textfeld'); print "<html><head><title>AUSWERTUNG IHRER EINGABE</title></head>"; print "<body><center><h1><b>Hallo $name</b></h1><br>"; print "CGI-Skripts zu schreiben ist doch gar nicht so schwer, oder?</center>"; print "<body></html>"; Wir brauchen hier nur mit Hilfe der Funktion param() nach dem 'name' - Eingabetext fragen. Auch das Schreiben des Headers können wir uns sparen. Diese geschieht mit der Funktion header in der letzten Zeile. ![]() ![]() ![]() |