#!C:/apachefriends/xampp/perl/bin/perl.exe -w #!C:/apache/Perl/nsperl.exe -w # Die 1. Zeile ist die Shebang-Zeile und enthält den Pfad zum Perl-Interpreter ## echo.pl ## Dieses Perl-Skript schickt Formulardaten an den Client zurück ## Bernhard Kreling, 26.4.2002 # HTTP-Header für Antwort an Browser: print "Content-type: text/html\n\n"; # HTML-Datei schreiben: print '', "\n"; print "\n"; print "\n"; print " CGI-Formular-Echo\n"; print "\n"; print "\n"; print "

Formular-Echo

\n"; print "

Sie haben folgende Formulardaten mit der Methode "; # Formulardaten übernehmen abhängig von der Request-Methode: my $ParameterString; if ($ENV{'REQUEST_METHOD'} eq 'GET') { print "GET"; $ParameterString = $ENV{'QUERY_STRING'}; } elsif($ENV{'REQUEST_METHOD'} eq 'POST') { print "POST"; read(STDIN, $ParameterString, $ENV{'CONTENT_LENGTH'}); # auf mmlab erscheint die Meldung "HTTP/1.1 100 Continue" - warum auch immer... } print " übermittelt.

\n"; # Formulardaten als undekodierten String zurücksenden: print "

ParameterString:
$ParameterString

\n"; # Formulardaten in einzelne Parameter zerlegen mit '&' als Trenner: my @ParameterListe = split(/&/, $ParameterString); print "

Einzelne Parameter:
\n"; my $Parameter; foreach $Parameter (@ParameterListe) { # Parameter in Name und Wert zerlegen mit '=' als Trenner: my $Name; my $Wert; ($Name, $Wert) = split(/=/, $Parameter); # Leerstellen restaurieren ('+' ersetzen durch ' '): $Wert =~ tr/+/ /; # Hex-Codes %xx umwandeln in Character: $Wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C" , hex($1))/eg; # HTML-Sonderzeichen '&', '<', '>' kodieren: $Wert =~ s/&/&/; $Wert =~ s//>/; # Parameter ausgeben in HTML-Datei: print "$Name = $Wert
\n"; } # HTML-Datei abschliessen: print "

\n"; print "\n"; print "\n";