hi!
Ich danke erstmal allen denen, die meine letzte Frage beantwortet haben, aber es gibt trotzdem Fehler.
Was denn für Fehler? Was meldet dein Perl-Interpreter bzw. der Server?
foreach $einzelteil (@dat)
{
($nick, $pwd) = split(/;/, $einzelteil);
if($Formular[1] eq $nick && $Formular[3] eq $pwd)
{
&OK;
}
else
{
&nix;
}
}
Hier fehlt das abschließende } der foreach-Schleife.
sub OK
{
print "Content-type: text/html\n\n";
print "<html>\n<head>\n<title>OK</title>\n";
print "<html>\n<head>\n<title>OK</title>\n";
print "</head>\n";
print "</head>\n";
print "<body>\n";
print "OK";
print "\n</body>\n</html>";
print "\n</body>\n</html>";
}
sub nix
{
print "Content-type: text/html\n\n";
print <<ENDE;
print <<'ENDE';
<html>
<head>
<title>nix</title>
</head>
<body>
nix
</body>
</html>
ENDE;
ENDE
Ohne abschließenden Strichpunkt!
}
Das war der ungefähre Sourcecode.
Aber das Programm gibt im HTML-Teil folgendes aus:
[...]
Was ist mein Fehler?
Du überprüfst für jede Zeile aus der Datei, ob die Eingabe stimmt. Jedesmal, wenn sie nicht stimmt, rufst du wieder die Funktion "nix" auf und gibst alles erneut aus.
Probier mal ungefähr folgendes statt deiner foreach-Schleife:
for (@dat)
{
($nick, $pwd) = split(/;/, $_);
if ($Formular[1] eq $nick && $Formular[3] eq $pwd)
{
$ok = 1;
}
}
if ($ok) { &ok; } else { &nix; }
bye, Frank!