Отправляет email-рассылки с помощью сервиса Sendsay

Re: Perl. Где тут ошибка?

Здравствуйте.

Написал свой первый скрипт на Perl и он, конечно же не работает.
Весь код просмотрел, но ошибок не нашел. Может вы попробуете?

----------join.pl
#!/usr/bin/perl

#Блокировка (flock)
$lock_ex = 2;
$lock_un = 8;

&get_form; #расшифровка полей формы
&check_fields; #проверка, все ли обязательные поля заполнены
&send; #отправка данных на e-mail админа
&thanks;
exit;

sub get_form #Расшифровка данных полей формы
{
if ($ENV{'REQUEST_METHOD'} eq "POST")
{
read(STDIN, $bufer, $ENV{'CONTENT_LENGTH'});
}
else
{
$bufer=$ENV{'QUERY_STRING'};
}

pairs = split(/&/, $bufer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
$FORM{$name} =~ s/\</&lt;/g;
$FORM{$name} =~ s/\>/&gt;/g;
$FORM{$name} =~ s/\"/&quot;/g;
$FORM{$name} =~ s/:/\&\#58;/g;
}
}#end of get_form

sub check_fields #Проверка обязательных полей
{
if ($FORM{'name'} eq "")
{
$bname = 1;
}
if ($FORM{'email'} eq "")
{
$bemail = 1;
}

if ($bname || $bemail)
{
&error_page;
exit;
}
}#end of check_fields

sub error_page #Сообщение об ошибке
{
print "Content-type: text/html\n\n";
print "<html>\n<head><title>Ошибка: заполнены не все обязательные поля.</title>\n\n";
print "</head>\n<body>\n\n";
print "<h3>Ошибка.</h3>\n";

if ($bname && $bemail)
{
print "<br>Вы не заполнили поля <b>Имя</b> и <b>e-mail</b><br>\n";
print "Вернитесь <a href=\"javascript:history.go(-1)\">назад</a>, и заполните
эти поля.";
}
elseif ($bname)
{
print "<br>Вы не заполнили поле <b>Имя</b><br>\n";
print "Вернитесь <a href=\"javascript:history.go(-1)\">назад</a>, и заполните
это поле.";
}
else
{
print "<br>Вы не заполнили поле <b>e-mail</b><br>\n";
print "Вернитесь <a href=\"javascript:history.go(-1)\">назад</a>, и заполните
это поле.";
}

print "<br></body>\n</html>\n";
}#end of error_page

sub send #Отправка e-mail
{
open (MAIL, "|/usr/sbin/sendmail -t");
print MAIL "Subject: Кто-то желает записаться на курсы.";
print MAIL "To: \"Admin\" \<webmaste***@r*****.com\>\n";
print MAIL "From: \"Radiant Peak site\" \<RADIANT-MAILE***@r*****.com\>\n";
print MAIL "X-mailer: Radiant Peak mailer (v1.0)\n";
print MAIL "Reply-To: ADMIN Jack Song <webmaste***@r*****.com>\n";
print MAIL "Organization: Radiant Peak\n";
print MAIL "X-originalip: $ENV{REMOTE_ADDR}\n";
print MAIL "X-MSMail-Priority: High\n";
print MAIL "X-Priority: 1\n\n";
print MAIL "(На это сообщение отвечать не нужно)\n";
print MAIL "На сайте компании Radiant Peak была заполнена анкета.\n";
print MAIL "Кто-то желает записаться на курсы Radiant Peak \n\n";
print MAIL "---------Ниже приведена Анкета:
print MAIL "Имя: $FORM{'name'}\n";
print MAIL "Фамилия: $FORM{'lastname'}\n";
print MAIL "E-mail: $FORM{'email'}\n";
print MAIL "Телефон: $FORM{'phone'}\n";
print MAIL "Город: $FORM{'city'}\n";
print MAIL "Возраст: $FORM{'age'}\n";
print MAIL "Курс: $FORM{'course'}\n";
print MAIL "Дополнительная информация: \n$FORM{'description'}\n";
print MAIL "---------\n\n";
print MAIL "-- \n";
print MAIL "Если это сообщение пришло к вам по ошибке, свяжитесь с администратором.\n";
print MAIL "E-mail администратора: webmaste***@r*****.com\n\n";
print MAIL "Всего доброго!\n";
close (MAIL);
} #end of send

sub thanks #Спасибочки :)
{
print "Content-type: text/html\n\n";
print <<EOF;
<HTML>
<head><title>Спасибо</title>
<META HTTP-EQUIV="REFRESH" CONTENT="30; URL=http://radiantpeak.com">
</head>
<body>
<h3>Спасибо!</h3>
<p>
Ваши данные успешно отправлены. <br>
В ближайшее время вы будете приглашены на Организационное собрание Radiant
Peak.
<br><br>
<b>Через 30 секунд загрузится главная страница сайта
<a href="http://radiantpeak.com">Radiant Peak</a></b><br>
</body>
</html>
EOF
} #end of thanks

Заранее спасибо.

Ответить   Jack Song Tue, 7 Dec 2004 18:58:21 +0300 (#276610)

 

Ответы:

Здравствуйте!

Вот у Вас, например, кавычка не закрыта:

print MAIL "---------Ниже приведена Анкета:

используйте vim, там подсветка, там сразу видно





библиотекa сайтостроительства http://www.i2r.ru/static/244/

-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: inet.webbuild.webbuilding
Написать в лист: mailto:inet.webbuild.webbuilding-list@subscribe.ru
Отписаться: mailto:inet.webbuild.webbuilding--unsub@subscribe.ru?subject=inet.webbuild.webbuilding

http://subscribe.ru/ http://subscribe.ru/feedback

Ответить   Лёша Tue, 07 Dec 2004 15:00:56 +0300 (#276637)