Finns det någon som hittar något fel i denna kod:
#!/usr/bin/perl
use CGI;
$foo = new CGI;
# Om besökaren anropar CGI-skriptet utan att bifoga forumulärdata,
# sker omdirigeringen till formuläret.
if (!$foo->param()) {
print $foo->redirect('/~snake/email/emailform2.html');
die "";
}
# Kontrollera data som besökaren skickar
if (!$foo->param('subject')) {
$subject_error = "<p>Du måste ge meddelandet en rubrik.</p>\n";
}
if (!$foo->param('to')) {
$to_error = "<p>Du måste ange en mottagare av meddelandet.</p>\n";
}
if ($foo->param('to') ne "sales\@exempel.com" and
$foo->param('to') ne "info\@exempel.com") {
$to_error = "<p>Du valde inte en giltig mottagare, försök igen.</p>\n";
}
else {
if ($foo->param('to') eq "sales\@exempel.com") {
$sales = " selected";
}
if ($foo->param('to') eq "info\@exempel.com") {
$info = " selected";
}
}
if (!$foo->param('from')) {
$from_error = "<p>Du måste ange din adress i fältet Från:.</p>\n";
}
if ($foo->param('from') !~ /^[\w-.]+\@[\w-.]+$/) {
$from_error = "<p>Adressen som du skrev i fältet Från är ogiltigt, skriv in
en giltig adress.</p>\n";
}
if (!$foo->param('body')) {
$body_error = "<p>Du måste något i rutan för meddelandets text.</p>\n";
}
if ($subject_error or $to_error or $from_error or $body_error) {
print $foo->header;
print "<html>\n<head>\n";
print "</head>\n";
print "<body>\n";
print "<h1>Korrigera felen</h1>\n";
print "<font color="#ff0000>\n";
print $subject_error, "\n";
print $to_error, "\n";
print $from_error, "\n";
print $body_error, "\n";
print "<font>\n";
print "<form action=\"email.cgi\" method=post>\n";
print "<table border=0>\n<tr>\n";
print "<td>Rubrik:</td>\n";
print "<td><input type=text size=40 maxsize=80 name=\"subject\"value=\"",
$foo->param('subject'), "\"></td>\n";
print "</tr>\n<tr>\n";
print "<td>Till:</td>\n";
print "<option value=\"xau369j@tninet.se\"$sales>Webmastern\n";
print "</select>\n";
print "<tr>\n";
print "<td>Från:</td>\n";
print "<td><input type=text size=40 maxsize=80 name=\"from\" value=\"",
$foo->param('from'), "\"><br>\n";
print "Ange din riktiga e-postadress här, \n";
print " så att vi kan besvära ditt e-postmeddelande.\n";
print "</td>\n";
print "<tr>\n";
print "<td colspan=2>\n";
print "<Meddelande:<br>\n";
print "<textarea name=\n</td>\n</tr>\n";
print "</textarea>\n</td>\n</tr>\nn";
print "<tr>\n<td colspan=2>\n";
print "<input type=submit value=\"Skicka e-post\">\n";
print "<input type=reset value=\"Töm formuläret\">\n";
print "</table>\n</form>\n";
print "</body>\n</html>";
}
else {
$sendmail = "sendmail -t -n -oi";
open(MAIL, "| $sendmail") or
die "Content-type: text/plain\n\nKunde inte öppna sendmail med
alternativet -f.\n";
$to = $foo->param('to');
$from = $foo->param('from');
$subject = $foo->param('subject');
$body = $foo->param('body');
print MAIL <<EOF;
From: $from
Reply-to: $from
Errors-to: $from
Sender: $from
To: $to
Subject: $subject
$body
EOF
close MAIL;
print $foo->header;
print <<EOF;
<html>
<head>
<title>Meddelandet har sänts</title>
</head>
<body>
<h1>Meddelandet har sänts</h1>
<p>Meddelandet har sänts till <b>$to</b>.</p>
<pre>
Rubrik: $subject
$body
</pre>
EOF
}