СообЧа > База Знаний > Интернет > Веб-строительство > Java-script

Вопрос

Есть несколько рассылок. Нужна форма для подписки. В поле юзер будет вносить email и выбирать, на какую из данных рассылок хочет подписаться.

Ответ

Итак, как бы это сделал я…
Для начала создаем страничку с формой для заполнения. Оформление странички — дело вкуса, но включаем в ее код следующее:

<table>
<script language="JavaScript">
<!pr=window.location.protocol;
hs=window.location.hostname;
ss=pr+'//'+hs+'/cgi-bin/esend.cgi';
var s='<form method="POST" action='+ss+'>';
document.writeln(s); -->
</script>
<tr>
<TD>
<b>Введите Ваше имя:</b>
 
</TD>
<TD>
<INPUT TYPE="text" name="Name" Value="" size="44">
</TD>
</tr>
<tr>
<TD>
<b>Ваш E-Mail :</b>
</TD>
<TD>
<INPUT TYPE="text" name="EMail" Value="" size="44">
</TD>
</tr>
<tr>
<TD colspan="2">
<p align="center"><b>Выберите интересующую рассылку (одну):</b>
</TD>
</tr>
<tr>
<TD colspan="2">
<input type="checkbox" name="C1" value="ON">Основные
проблемы грибоводства<BR>
<input type="checkbox" name="C2" value="ON">Некоторый
вопросы дрожжеведения
</TD>
</tr>
<tr>
<TD>
<p align="center">
<INPUT TYPE="submit" NAME="submit" VALUE="Подтвердить">
</p>
</TD>
<TD>
<p align="center">
<INPUT TYPE="reset" VALUE="Очистить">
</p>
</TD>
</tr>
</TABLE>


Дальше — оформляй страничку как захочешь…
Теперь… Если ты заметил, то данный код ссылается на скрипт
esend.cgi, который должен быть в папке /cgi-bin/ твоего сервера. Этот
скрипт получает от данного кода введенные параметры и обрабатывает их.
Примерно этот скрипт может выглядеть так:

#!/usr/bin/perl
#esend.cgi
#раздел процедур и функций
sub urldecode{
local($val)=@_;
$val=~s/\+/ /g;
$val=~s/%([0-9a-hA-H]{2})/pack('C',hex($1))/ge;
return $val;
}
#конец раздела процедур и функций
if($ENV{'REQUEST_METHOD'} eq 'GET'){$query=$ENV{'QUERY_STRING'};}
elsif($ENV{'REQUEST_METHOD'} eq 'POST')
{sysread(STDIN,$query,$ENV{'CONTENT_LENGTH'});}
#занесение данных в файл
#if($query ne ''){
@formfields=split(/&/,$query);
foreach(@formfields){
if(/^Name=(.*)/){$Name=urldecode($1);} #получение имени клиента
if(/^EMail=(.*)/){$EMail=urldecode($1);} #получение его EMail
if(/^C1=(.*)/){$C1=urldecode($1);} #инфа по подписке №1
if(/^C2=(.*)/){$C2=urldecode($1);} #инфа по подписке №2
}

$Owner="Твой сайт"; #это от кого, т.е. от тебя

if($C1 eq "ON")
{
$Mess="SUBSCRIBE Основные проблемы грибоводства";
}
if($C2 eq "ON")
{
$Mess="SUBSCRIBE Некоторые вопросы дрожжеведения";
}
open(MAIL, '| /usr/bin/sendmail -t -oi'); #отправка запроса

$Message=$EMail."\n".$Message;

#если для отправки EMail используешь другую программу или она
#находится в другом месте, то исправь строчку отправки запроса

print MAIL <<EOF;
To: someRobot\@domail.com #писать именно так \@
From: $Owner
Subject:
$Message
EOF
close MAIL;

#раздел программ
print "Content-Type: text/html\n\n";
print "<html><head>\n";
print "<title>Subscribe Service</title>\n";
print "<META content=\"text/html; charset=windows-1251\" http-eqiuv=Content-Type>\n";
print "</head><body>";
print "<font color=#000000>Вы зарегистрированы как подписчик. Спасибо!</font>";
print "</body></html>";


Messire



Copyright © 2000-2004 Сообщество Чайников
Контактная информация