Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> форма предварительного запроса, первый раз этот формат фижу)) 
:(
    Опции темы
Qwesa
Дата 11.3.2008, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 9.10.2007

Репутация: нет
Всего: нет



доброе время суток, вот возникла необходимость сделать чтоб с сайта можно было посылать предварительный заказ на рассмотрение.

с помощью скрипта вызывается окно, заполняя которое человек жмет ок и письмо посылается на определенный ранее имейл. Но поскольку я не являюсь создателем сайта, и мне он достался уже от третьего администратора, соответственно особо конструкцию его написания мне никто не растолковывал. Я ранее такие формы не делал, подскажите как этот механизм работает?

В окне формы которую нужно заполнять, есть упоминание на файл с расширением - "cgi" которое я вижу первый раз(( и находится он в папке - cgi-bin. 

Сам файл содержит такой код:

Код

    
#!/usr/bin/perl
#zapros.cgi
#sprite13_4eva
use CGI::Carp qw(fatalsToBrowser);
use CGI;
my $q=new CGI;
$sendmail='/usr/sbin/sendmail';
$mail_to='***mail.ru';
$from='[email protected]';
#sub urldecode
# {
# local($val)=@_;
# $val=~s/\+/ /g;
# $val=~s/%([0-9a-hA-H]{2})/pack('C',hex($1))/ge;
# return $val;
#}
#$form_query=<STDIN>;
#@form_fields=split(/&/,$form_query);
#foreach(@form_fields)
# {
# if (/^company=(.*)/)                 {$company=&urldecode($1);}
# if (/^contact=(.*)/)                 {$contact=&urldecode($1);}
# if (/^address=(.*)/)                 {$address=&urldecode($1);}
# if (/^mail=(.*)/)                       {$mail=&urldecode($1);}
# if (/^tel_code=(.*)/)               {$tel_code=&urldecode($1);}
# if (/^tel_number=(.*)/)           {$tel_number=&urldecode($1);}
# if (/^fax_code=(.*)/)               {$fax_code=&urldecode($1);}
# if (/^fax_number=(.*)/)           {$fax_number=&urldecode($1);}
# if (/^interested_with=(.*)/) {$interested_with=&urldecode($1);}
# if (/^comments=(.*)/)               {$comments=&urldecode($1);}
# }
$company=$q->param('company');
$contact=$q->param('contact');
$address=$q->param('address');
$mail=$q->param('mail');
$tel_number=$q->param('tel_number');
$fax_number=$q->param('fax_number');
$interested_with=$q->param('interested_with');
$comments=$q->param('comments');
open(SENDMAIL, "|$sendmail $mail_to") or die ("mail :$!");
print SENDMAIL "From: $from\n" or die ("mail :$!");
print SENDMAIL "To: $mail_to\n" or die ("mail :$!");
print SENDMAIL "Subject: from $from\n" or die ("mail :$!");
print SENDMAIL "Êîìïàíèÿ : $company\n" or die ("mail :$!");
print SENDMAIL "Êîíòàêòû:$contact\n" or die ("mail :$!");
print SENDMAIL "Àäðåñ :$address\n" or die ("mail :$!");
print SENDMAIL "E-mail :$mail\n" or die ("mail :$!");
print SENDMAIL "Òåë. íîìåð : $tel_number\n" or die ("mail :$!");
print SENDMAIL "Ôàêñ : $fax_number \n" or die ("mail :$!");
print SENDMAIL "Èíòåðåñóþùèé òîâàð : $interested_with \n" or die ("mail :$!");
print SENDMAIL "Êîììåíòàðèè : $comments \n" or die ("mail :$!");
close(SENDMAIL) or die($!);
print "Location: http://****ok.htm \n\n";



обьясните что это такое пожалуйста. 
PM MAIL   Вверх
Itsys
Дата 11.3.2008, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: нет
Всего: 34



Считываются параметры из отправленной формы спомощью CGI
Цитата(Qwesa @  11.3.2008,  15:17 Найти цитируемый пост)
$company=$q->param('company');
$contact=$q->param('contact');
$address=$q->param('address');
$mail=$q->param('mail');
$tel_number=$q->param('tel_number');
$fax_number=$q->param('fax_number');
$interested_with=$q->param('interested_with');
$comments=$q->param('comments');


Готовится и отправлется сообщение
Цитата(Qwesa @  11.3.2008,  15:17 Найти цитируемый пост)
open(SENDMAIL, "|$sendmail $mail_to") or die ("mail :$!");
print SENDMAIL "From: $from\n" or die ("mail :$!");
print SENDMAIL "To: $mail_to\n" or die ("mail :$!");
print SENDMAIL "Subject: from $from\n" or die ("mail :$!");
print SENDMAIL "Êîìïàíèÿ : $company\n" or die ("mail :$!");
print SENDMAIL "Êîíòàêòû:$contact\n" or die ("mail :$!");
print SENDMAIL "Àäðåñ :$address\n" or die ("mail :$!");
print SENDMAIL "E-mail :$mail\n" or die ("mail :$!");
print SENDMAIL "Òåë. íîìåð : $tel_number\n" or die ("mail :$!");
print SENDMAIL "Ôàêñ : $fax_number \n" or die ("mail :$!");
print SENDMAIL "Èíòåðåñóþùèé òîâàð : $interested_with \n" or die ("mail :$!");
print SENDMAIL "Êîììåíòàðèè : $comments \n" or die ("mail :$!");
close(SENDMAIL) or die($!);


И перенаправляется браузер на указанный адрес
Цитата(Qwesa @  11.3.2008,  15:17 Найти цитируемый пост)
print "Location: http://****ok.htm \n\n";


Вообще то это основы....
PM MAIL WWW Skype   Вверх
Qwesa
Дата 16.3.2008, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 9.10.2007

Репутация: нет
Всего: нет



Это для меня в общем темный лес. Еслиб не на ткнулся на этот формат "CGI", то и не знал бы что это Перл. Я вообще в первые сталкиваюсь (вернее я впервые администрирую  такой сайт), где используется Перл, на ряду с тем, что сайт написан довольно не профессионально и в общем просто - )) не считая этого момента.

А не моглибы мне, господа проффесиональные программисты по Perl'а, обьяснить почему как правило применяется данный вариант решения, его плюсы, и есть ли альтернативные варианты для людей не имеющих знаний для работы с Перлом?
PM MAIL   Вверх
Itsys
Дата 16.3.2008, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: нет
Всего: 34



Цитата(Qwesa @  16.3.2008,  15:39 Найти цитируемый пост)
почему как правило применяется данный вариант решения, его плюсы

Почему применяется и основной плюс в том, что пользователь, и соответсвенно свякие боты сканирующие интернет не видят реальный e-mail адрес, т.е. пользователь отослать письмо может, но куда не знает

Цитата(Qwesa @  16.3.2008,  15:39 Найти цитируемый пост)
альтернативные варианты для людей не имеющих знаний для работы с Перлом

Переписать все на PHP, VB и т.д. еще есть куча языков, которые работают с CGI, либо написать открытую форму, которая посылает запрос не на файл .pl а сразу на mail:[email protected]
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.