summaryrefslogtreecommitdiffstats
path: root/Bachelor/Entwicklung webbasierter Anwendungen/Praktikum4/cgi-bin/Echo.pl
blob: 7de1feca1367602f4b340bc4e6fe7a3447c61b1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!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 '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print "<html>\n";
print "<head>\n";
print "  <title>CGI-Formular-Echo</title>\n";
print "</head>\n";
print "<body>\n";
print "  <h3>Formular-Echo</h3>\n";
print "  <p>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 "  &uuml;bermittelt.</p>\n";

# Formulardaten als undekodierten String zur�cksenden:
print "  <p><strong>ParameterString:</strong><br> $ParameterString </p>\n";

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

print "  <p><strong>Einzelne Parameter:</strong><br>\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/&/&amp;/;
        $Wert =~ s/</&lt;/;
        $Wert =~ s/>/&gt;/;

        # Parameter ausgeben in HTML-Datei:
        print "$Name = $Wert <br>\n";
}

# HTML-Datei abschliessen:
print "  </p>\n";
print "</body>\n";
print "</html>\n";