Thomas Häber: Überprüfung auf bestimmte Zeichen

Beitrag lesen

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/&reg;/g;
$_ =~ s/%A9/&copy;/g;
$_ =~ s/%C0/&Agrave;/g;
$_ =~ s/%C1/&Aacute;/g;
$_ =~ s/%C2/&Acirc;/g;
$_ =~ s/%C3/&Atilde;/g;
$_ =~ s/%C4/&Auml;/g;
$_ =~ s/%C5/&Aring;/g;
$_ =~ s/%C6/&AElig;/g;
$_ =~ s/%C7/&Ccedil;/g;
$_ =~ s/%C8/&Egrave;/g;
$_ =~ s/%C9/&Eacute;/g;
$_ =~ s/%CA/&Ecirc;/g;
$_ =~ s/%CB/&Euml;/g;
$_ =~ s/%CC/&Igrave;/g;
$_ =~ s/%CD/&Iacute;/g;
$_ =~ s/%CE/&Icirc;/g;
$_ =~ s/%CF/&Iuml;/g;
$_ =~ s/%D0/&ETH;/g;
$_ =~ s/%D1/&Ntilde;/g;
$_ =~ s/%D2/&Ograve;/g;
$_ =~ s/%D3/&Oacute;/g;
$_ =~ s/%D4/&Ocirc;/g;
$_ =~ s/%D5/&Otilde;/g;
$_ =~ s/%D6/&Ouml;/g;
$_ =~ s/%D7/&Oslash;/g;
$_ =~ s/%D8/&Uacute;/g;
$_ =~ s/%D9/&Ugrave;/g;
$_ =~ s/%D9/&Ucirc;/g;
$_ =~ s/%DC/&Uuml;/g;
$_ =~ s/%DD/&Yacute;/g;
$_ =~ s/%DE/&THORN;/g;
$_ =~ s/%DF/&szlig;/g;
$_ =~ s/%E0/&agrave;/g;
$_ =~ s/%E1/&aacute;/g;
$_ =~ s/%E2/&acirc;/g;
$_ =~ s/%E3/&atilde;/g;
$_ =~ s/%E4/&auml;/g;
$_ =~ s/%E5/&aring;/g;
$_ =~ s/%E6/&aelig;/g;
$_ =~ s/%E7/&ccedil;/g;
$_ =~ s/%E8/&egrave;/g;
$_ =~ s/%E9/&eacute;/g;
$_ =~ s/%EA/&ecirc;/g;
$_ =~ s/%EB/&euml;/g;
$_ =~ s/%EC/&igrave;/g;
$_ =~ s/%ED/&iacute;/g;
$_ =~ s/%EE/&icirc;/g;
$_ =~ s/%EF/&iuml;/g;
$_ =~ s/%F0/&eth;/g;
$_ =~ s/%F1/&ntilde;/g;
$_ =~ s/%F2/&ograve;/g;
$_ =~ s/%F3/&oacute;/g;
$_ =~ s/%F4/&ocirc;/g;
$_ =~ s/%F5/&otilde;/g;
$_ =~ s/%F6/&ouml;/g;
$_ =~ s/%F8/&oslash;/g;
$_ =~ s/%F9/&ugrave;/g;
$_ =~ s/%FA/&uacute;/g;
$_ =~ s/%FB/&ucirc;/g;
$_ =~ s/%FC/&uuml;/g;
$_ =~ s/%FD/&yacute;/g;
$_ =~ s/%FE/&thorn;/g;
$_ =~ s/%FF/&yuml;/g;
return $_;
}
}

Das Formular könnt Ihr euch ja denken.