Автор Тема: Нужен  (Прочитано 2728 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Psyline

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Нужен
« : 06 Апреля 2004, 09:25:16 »
Здравствуйте,

Мне нужен скрипт формособирателя (формоотправителя) на определённый e-mail. Желательно, чтобы скрипт не был привязан к конкретной форме (то есть, я сам могу создавать и размещать любые формы, но указываю для них один и тот же скрипт - с отсылкой данных форм на один и тот же e-mail). В приходящем письме в поле от кого доджен быть e-mail отправителя формы (он указывает свой e-mail в соответствующем поле), также тема письма указывается в html-коде самой формы...

Чем быстрее, тем лучше. Также, по всей видимости будет нужна помощь в установке этого скрипта на хост (valuehost.ru) Сколько это будет стоить и как оплатить?

Илья

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Нужен
« Ответ #1 : 06 Апреля 2004, 11:47:59 »
Это скрипт

#!/usr/bin/perl -w
$|=1;

use 
strict;
use 
CGI qwparam );
#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

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Нужен
« Ответ #2 : 06 Апреля 2004, 13:07:56 »
Помогите установить и настроить...  Илья

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Нужен
« Ответ #3 : 07 Апреля 2004, 08:20:40 »
Psyline пиши на мыло
Все болезни от нервов, только сифилис от удовольствия

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28