Hallo,
Zur Anmerkung: Immer wenn irgend ein Fehler auftaucht bekomme ich anstatt einer Fehlermeldung bedingt durch -w, use strict; oder use warnings; nur einen weißen Bildschirm. Was soll das?
Hier mein ganzer Script:
#!/usr/bin/perl -w
use warnings;
use strict;
Formulardaten einlesen
my $IPNachweis = $ENV{'REMOTE_ADDR'};
my $IPSchalter = 0;
my $REQUEST_METHOD = $ENV{'REQUEST_METHOD'};
my $QUERY_STRING = $ENV{'QUERY_STRING'};
my $CONTENT_LENGTH = $ENV{'CONTENT_LENGTH'};
my $Daten = "";
if($REQUEST_METHOD eq 'GET')
{
$Daten = $QUERY_STRING;
}
else
{
read(STDIN, $Daten, $CONTENT_LENGTH);
}
my @Formularfelder = split(/&/, $Daten);
my $i = 0;
my @Formular = "";
foreach my $Feld (@Formularfelder)
{
(my $name, my $value) = split(/=/, $Feld);
$value = &ZuText($value);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$Formular[$i] = $value;
++$i;
}
my $Name = $Formular[0];
my $Email = $Formular[1];
my $Text = $Formular[2];
HTML-Code an Browser senden
#Hier sollte diese Anweidung stehen !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#Geht aber halt nicht
if ($Name ne "" && $Email ne "" && $Text ne "") {
Eingelesene Formulardaten als Mail zum Formularanbieter senden
my $Mailprogramm = "/usr/lib/sendmail";
my $MailBetreff = "Feedback-Formular";
my $Empfaenger = "webmaster@h-games.de";
my $SenderName = $Name;
my $SenderMail = $Email;
open(MAIL,"|$Mailprogramm -t") || die "Konnte E-Mail nicht öffnen: $i";
print MAIL "To: $Empfaenger\n";
print MAIL "From: $SenderMail $SenderName\n";
print MAIL "Subject: $MailBetreff\n\n";
print MAIL "Name: $Name\n";
print MAIL "E-Mail: $Email\n";
print MAIL "Text: $Text\n";
if ($IPSchalter == 1) {
print MAIL "IPNachweis: $IPNachweis\n";
}
close(MAIL) || die "Konnte E-Mail nicht verschicken: $i";
print "Content-type: text/ssi\n\n";
print "<html>\n";
print "<head>\n";
print "<title>Danke für Ihr Feedback</title>\n";
print "<!--#exec cgi="/cgi-bin/meta.pl"-->\n";
print "</head>\n";
print "<body>\n";
print "<div align="center"><table cellspacing="0" cellpadding="0" border="0" class="Spielebereich">\n";
print "<tr>\n";
print "<td width="400" class="Spielehintergrund" cellspacing="0" cellpadding="0" border="0">\n";
print "<p class="gelb">Danke für Ihr Feedback</p>\n";
print "Wir freuen uns, daß Sie unser Formular ausgefüllt haben.<br>\n";
print "Hier zur Kontrolle Ihre Angaben:<p>\n";
print "<b>Name:</b> $Name<br>\n";
print "<b>E-Mail:</b> $Email<br>\n";
print "<b>Text:</b> $Text<br>\n";
print "<p><hr noshade size="1"><p>";
print "<div class="klein">Thomas Häber, <a href="mailto:webmaster@h-games.de">webmaster@h-games.de</a></div>";
print "\n\n<script type="text/javascript">\n";
print "<!--\n";
print "Zurueck();\n";
print "//-->\n";
print "</script>\n";
print "</td>\n";
print "</tr>\n";
print "</table></div>\n";
print "</body>\n";
print "</html>\n";
}
else {
print "Content-type: text/ssi\n\n";
print "<html>\n";
print "<head>\n";
print "<title>Feedback-Formular</title>\n";
print "<!--#exec cgi="/cgi-bin/meta.pl"-->\n";
print "</head>\n";
print "<body>\n";
print "<div align="center"><table cellspacing="0" cellpadding="0" border="0" class="Spielebereich">\n";
print "<tr>\n";
print "<td class="Spielehintergrund" width="400" cellspacing="0" cellpadding="0" border="0">\n";
print "<div align="center">\n";
print "<form action="/cgi-bin/formular.pl" method="post">\n";
print "<table cellspacing="0" cellpadding="0" border="0">\n";
print " <tr>\n";
print " <td class="Felderspalt"> </td>\n";
print " <td class="Felderspalt"><p class="gelb">Feedback-Formular</p>\n";
if ($Name eq "")
{
print "<p class="braun">Ihr Name fehlt.</p></td>\n";
}
elsif ($Email eq "")
{
print "<p class="braun">Ihre Email fehlt.</p></td>\n";
}
elsif ($Text eq "")
{
print "<p class="braun">Ihr Text fehlt.</p></td>\n";
}
print " </tr>\n";
print " <tr>\n";
print " <td class="Felderspalt" align="right">Name </td>\n";
print " <td class="Felderspalt"><input name="AnwenderName" size="40" class="Felder" value="$Name"></td>\n";
print " </tr>\n";
print " <tr>\n";
print " <td class="Felderspalt" align="right">E-Mail </td>\n";
print " <td class="Felderspalt"><input name="AnwenderMail" size="40" class="Felder" value="$Email"></td>\n";
print " </tr>\n";
print " <tr>\n";
print " <td class="Felderspalt" align="right" valign="top">Text </td>\n";
print " <td class="Felderspalt"><textarea name="Text" rows="7" cols="34" class="Felder">$Text</textarea></td>\n";
print " </tr>\n";
print " <tr>\n";
print " <td class="Felderspalt"> <br></td>\n";
print " <td class="Felderspalt"> <br><input type="submit" value="Formulardaten absenden" class="Button" onMouseOver="this.style.backgroundColor='#bbbbbb'" onMouseOut="this.style.backgroundColor='#447799'"></td>\n";
print " </tr>\n";
print "</table>\n";
print "</form>\n";
print "</div>\n";
print "\n\n<script type="text/javascript">\n";
print "<!--\n";
print "Zurueck();\n";
print "//-->\n";
print "</script>\n";
print "</td>\n";
print "</tr>\n";
print "</table></div>\n";
print "</body>\n";
print "</html>\n";
}
#Funktion zum Tasuchen der Umlaute sowie diverser Zeichen in das Hypertextcode
sub ZuText
{
for (@_)
{
$_ =~ s/%AE/®/g;
$_ =~ s/%A9/©/g;
$_ =~ s/%C0/À/g;
$_ =~ s/%C1/Á/g;
$_ =~ s/%C2/Â/g;
$_ =~ s/%C3/Ã/g;
$_ =~ s/%C4/Ä/g;
$_ =~ s/%C5/Å/g;
$_ =~ s/%C6/Æ/g;
$_ =~ s/%C7/Ç/g;
$_ =~ s/%C8/È/g;
$_ =~ s/%C9/É/g;
$_ =~ s/%CA/Ê/g;
$_ =~ s/%CB/Ë/g;
$_ =~ s/%CC/Ì/g;
$_ =~ s/%CD/Í/g;
$_ =~ s/%CE/Î/g;
$_ =~ s/%CF/Ï/g;
$_ =~ s/%D0/Ð/g;
$_ =~ s/%D1/Ñ/g;
$_ =~ s/%D2/Ò/g;
$_ =~ s/%D3/Ó/g;
$_ =~ s/%D4/Ô/g;
$_ =~ s/%D5/Õ/g;
$_ =~ s/%D6/Ö/g;
$_ =~ s/%D7/Ø/g;
$_ =~ s/%D8/Ú/g;
$_ =~ s/%D9/Ù/g;
$_ =~ s/%D9/Û/g;
$_ =~ s/%DC/Ü/g;
$_ =~ s/%DD/Ý/g;
$_ =~ s/%DE/Þ/g;
$_ =~ s/%DF/ß/g;
$_ =~ s/%E0/à/g;
$_ =~ s/%E1/á/g;
$_ =~ s/%E2/â/g;
$_ =~ s/%E3/ã/g;
$_ =~ s/%E4/ä/g;
$_ =~ s/%E5/å/g;
$_ =~ s/%E6/æ/g;
$_ =~ s/%E7/ç/g;
$_ =~ s/%E8/è/g;
$_ =~ s/%E9/é/g;
$_ =~ s/%EA/ê/g;
$_ =~ s/%EB/ë/g;
$_ =~ s/%EC/ì/g;
$_ =~ s/%ED/í/g;
$_ =~ s/%EE/î/g;
$_ =~ s/%EF/ï/g;
$_ =~ s/%F0/ð/g;
$_ =~ s/%F1/ñ/g;
$_ =~ s/%F2/ò/g;
$_ =~ s/%F3/ó/g;
$_ =~ s/%F4/ô/g;
$_ =~ s/%F5/õ/g;
$_ =~ s/%F6/ö/g;
$_ =~ s/%F8/ø/g;
$_ =~ s/%F9/ù/g;
$_ =~ s/%FA/ú/g;
$_ =~ s/%FB/û/g;
$_ =~ s/%FC/ü/g;
$_ =~ s/%FD/ý/g;
$_ =~ s/%FE/þ/g;
$_ =~ s/%FF/ÿ/g;
return $_;
}
}
Das Formular könnt Ihr euch ja denken.