Разное > Поиск, изготовление скриптов и прочее...
Нужен
(1/1)
Psyline:
Здравствуйте,
Мне нужен скрипт формособирателя (формоотправителя) на определённый e-mail. Желательно, чтобы скрипт не был привязан к конкретной форме (то есть, я сам могу создавать и размещать любые формы, но указываю для них один и тот же скрипт - с отсылкой данных форм на один и тот же e-mail). В приходящем письме в поле от кого доджен быть e-mail отправителя формы (он указывает свой e-mail в соответствующем поле), также тема письма указывается в html-коде самой формы...
Чем быстрее, тем лучше. Также, по всей видимости будет нужна помощь в установке этого скрипта на хост (valuehost.ru) Сколько это будет стоить и как оплатить?
Илья
Mog.:
Это скрипт
#!/usr/bin/perl -w
$|=1;
use strict;
use CGI qw( param );
#print "Content-type: text/html\\n\\n";
my(@anketa, $from, $subject);
&get_data;
# Настройки ##############################################
my $sendmail="/usr/sbin/sendmail -t"; #путь к программе sendmail
my $to=\'adres@mail.ru\'; # на какой адрес пересылается анкета
my $redirect=\'http://www.site.ru/thanks.html\'; #Куда редиректит после отправки письма
#С каких страницы передаются данные
my @refers=(
\'http://www.site.ru/forma1.html\',
\'http://www.site.ru/forma2.html\',
\'http://www.site.ru/forma3.html\',
\'http://www.site.ru/forma4.html\'
);
##########################################################
my $refer_x=$ENV{"HTTP_REFERER"};
# Проверяем откуда пршли данные
&secure;
# Формируем сообщение
my ($cx, $c, $message);
for ($cx=0;$cx<$c;$cx++){
$message.="$anketa[$cx][0] - $anketa[$cx][1]\\n";
}
# Отправляем
&sm;
# Редирект после отправки
print "Location: $redirect\\n\\n";
exit;
# Подпрограмма безопасности
sub secure{
##########################################################
#Это написано из соображений безопасности. Н панацея, но всетаки...
my $saf_flag=0;
if(!$refer_x){$saf_flag=1}
for my $ref(@refers){
if("$ref" eq "$refer_x"){
$saf_flag=0;
last;
}
if("$ref" ne "$refer_x"){$saf_flag=1}
}
if($saf_flag){
#Че-нить пишем в браузер плохому парню
print "Content-type: text/html\\n\\n";
print "<h1><font color=red>Вы не имеете права пользоваться этим сервисом!!!</font></h1>";
#Или можно сделать редирект на готовую страницу, тогда 2 следующих строки разкоментируй, а 2 вышестоящих - закомментируй
#my $fuck_page="http://www.site.ru/fuck_off.html";
#print "Location: $fuck_page\\n\\n";
exit;
}
###########################################################
}
# Подпрограмма получения данных из формы
sub get_data{
my @np=param();
$c=0;
for my $x(@np){
if(($x!~/submit|subject|from/) && (param($x))){
$anketa[$c]=["$x", param($x)];
$c++;
}
}
}
# Непосредственно подпрограмма отправки
sub sm{
my $subject=param(\'subject\');
my $from=param(\'from\');
open (MAIL,"|$sendmail");
print MAIL "To: $to\\n";
print MAIL "From: $from\\n";
print MAIL "Subject: $subject\\n\\n";
print MAIL "$message";
close (MAIL);
}
Это пример формы
<HTML>
<HEAD>
<TITLE>Форма-анкета</TITLE>
</HEAD>
<BODY>
<FORM action="/cgi-bin/to_mail.pl" method=POST >
<INPUT type="hidden" name="subject" value="Опрос 1">
Как дела<INPUT type="text" name="Как дела"><BR>
Как здоровье<INPUT type="text" name="Как здоровье"><BR>
Ваш e-mail<INPUT type="text" name="from"><BR>
За какую футбольную команду болеете<BR>
<SELECT name="За какую футбольную команду болеете">
<OPTION value="Спартак">Спартак</OPTION>
<OPTION value="Динамо">Динамо</OPTION>
<OPTION value="Пахтакор">Пахтакор</OPTION>
</SELECT><BR>
<INPUT type="submit" value="Отослать">
</FORM>
</BODY>
</HTML>
Могу помочь установить и настроить
--- Цитировать ---Psyline:
Сколько это будет стоить и как оплатить?
--- Конец цитаты ---
0.95 японских йен, по факсу :)
Psyline:
Помогите установить и настроить... Илья
Mog.:
Psyline пиши на мыло
Навигация
Перейти к полной версии