Kann es sein, dass ich bei der Formularauswertung mittels POST an ein anderes eigenständiges CGI-Skript verweisen muss.
Bitte probiert es im unteneingefügten Code mal aus, mit get gehts, bei post nicht!!!Warum?
Hintergrund:
Möchte innerhalb des gleichen Scripts über Subroutinen die Formulare auswerten lassen.
Beispielcode:
#!/usr/bin/perl
Folgende Zeile nicht löschen, ansonsten keine Ausgabe in HTML!!!
print "Content-type: text/html\n\n";
use CGI qw(param);
$modus=param("modus");
print "Modus: $modus<br>";
if($modus eq "out")
{
if ($ENV{'REQUEST_METHOD'} eq "GET") {
$buffer = $ENV{'QUERY_STRING'};
} else {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
Nehme Daten entgegen und kopiere sie in die
Variable $buffer
@nvpairs = split(/&/,$buffer);
Ich teile den Datenstring in einzelne Teile.
foreach $pair (@nvpairs) {
# Ich decodiere jedes der Teil
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$in{$name} = $value;
print %in;
print $ENV{'REQUEST_METHOD'};
}
print "<HTML><HEAD>\n";
print "<TITLE>Umfrageauswertung</TITLE> \n";
print "</HEAD> \n";
print "<h2>Vielen Dank für Ihre Informationen.</h2>\n";
print "Sie gaben ein:<hr><dl>\n";
print "<dd>Ihr Lernerfolg war $in{'Lernerfolg'}\n";
print "<dd>Das Tempo der Vorlesung war $in{'Tempo'}\n";
print "<dd>Ihre Vorkenntnisse waren $in{'Vorkenntnisse'}\n";
print "<dd>Ihr Kommentar:<br> $in{'Kommentar'}\n";
print "<p>";
if (($in{'Tempo'} eq 'zu langsam')
&& ($in{'Lernerfolg'} eq 'nichts')) {
print "<br>Du fauler Sack!<br>\n";
}
No comment here :))
sub Fehlermeldung {
my $text= shift;
print "<P><center>Es ist ein Fehler aufgetreten:<br>";
print "$text\n";
print "</center>";
print "<p>Programm wird abgebrochen.\n";
print "</HTML>\n";
exit(1);
}
}
else
{
print '
<HTML>
<HEAD><TITLE>Fragebogen</TITLE></HEAD>
<BODY LINK="#182650" VLINK="#501826">
<form action="test.pl" method=post>
<ol>
<li><b>Ihr persönlicher Lernerfolg:</b><p>
<ul>
<li>Wieviel haben Sie in diesem Kurs gelernt?
<dl><dd>
<input type="radio" name="Lernerfolg" value=0>sehr viel
<input type="radio" name="Lernerfolg" value=1>viel
<input type="radio" name="Lernerfolg" value=2 selected>ausreichend
<input type="radio" name="Lernerfolg" value=3>wenig
<input type="radio" name="Lernerfolg" value=4>nichts
</dl>
<li>Das Tempo war
<select name=Tempo>
<option value="zu schnell">zu schnell
<option value="schnell">schnell
<option value="genau richtig" selected>genau richtig
<option value="etwas langatmig">etwas langsam
<option value="zu langsam">zu langsam
</select>
<li>Die Vorkenntnisse, die vorausgesetzt wurden, waren für mich
<dl><dd>
<input type="radio" name="Vorkenntnisse" value="viel zuviel">entschieden zuviel
<input type="radio" name="Vorkenntnisse" value="etwas zuviel">etwas zuviel
<input type="radio" name="Vorkenntnisse" value="genau richtig">genau richtig
<input type="radio" name="Vorkenntnisse" value="etwas wenig">etwas wenig
<input type="radio" name="Vorkenntnisse" value="viel zuwenig">entschieden zuwenig
</dl>
</ul>
<p><li><b>Verbesserungsvorschläge:</b><p>
<ul>
<li>Weitere Kommentare oder Anregungen:
<br>
<dl><dd><textarea name="Kommentar" wrap="virtual" rows=3 cols=60>
</textarea><P>
</dl>
</ul>
</ol>
<input type=submit value=" Fragebogen absenden ">
<input type=reset value=" Alle Werte zurücksetzen ">
<input type="hidden" name="modus" value="out">
</form>
</BODY></HTML>';
}