Еженедельная Электронная Рассылка.
ПОЛЕЗНЫЕ СОВЕТЫ 
ВЕБ-ДИЗАЙНЕРУ.

Выпуск #9.

CGI Скрипт: Возвращение Формы

Чтобы получить полный пакет для работы с этой формой скачайте файл formreturn.zip (5,3 kb).


Your Name:
Your Email Address: 
Your Age: 
Your Mailing Address: 
How did you find the page?
Yahoo!
Link
Other
Please  the Information

HTML Команды для временных замен формы

* Если Вы просто хотели бы линию ("Ф.И.О.",например), заполните:

Все слова "Category" в примере могут быть заменены любым словом, каким Вы хотели бы описать этот вход. Если Вы изменяете на "name" и кто - то заполняет "Bill Gates", на Ваш email придет письмо с записью "name: Bill Gates".

<P>CATEGORY: <INPUT TYPE ="text" NAME="Category" SIZE="40"></P>

CATEGORY -слово или слова, которые будут расположены рядом с полем формы.

40 может быть любое число, это - число знаков в форме.

* Если Вы хотели бы коробку ("Ваши комментарии", например), заполните:

<P>CATEGORY<TEXTAREA NAME="Category" ROWS=4 COLS=40></TEXTAREA></P>

CATEGORY - то же самое, что и в первом случае

ROWS и COLS - размеры коробочки.

* Если Вы хотели бы выбор, используя круги, например:

( ) Choice 1
( ) Choice 2

И посетители щелкают в круге того, который они выбирают:

<P><INPUT TYPE="radio" NAME="Category" VALUE="Choice1">Choice1</P>
<P><INPUT TYPE="radio" NAME="Category" VALUE="Choice2">Choice2</P>

Choice1 или Choice2 - Является именем, которое появится у Вас в e-mail'е в ответ на категорию.
CHOICE - слово, которое будет рядышком

* Если Вы хотели бы коробку проверки (это там, где галочки ставить надо), например:

[ ] Check if you want a response

И посетители щелкают, когда заполняют форму:

<P><INPUT TYPE="Checkbox" NAME="Category" VALUE="Box">BOX</P>

Box - название, которое появится в Вашем email в ответ на категорию.
BOX слово или слова, которые появятся рядом с окошечком (коробке проверки, дословно).
Если Вы хотели бы, чтобы окошечко было проверено используйте это:

<P><INPUT TYPE="Checkbox" NAME="Category" VALUE="Box" CHECKED="checked">BOX</P>

* Вы должны иметь кнопочку "submit" чтобы отправить результат на Ваш e-mail:

<P><INPUT TYPE="Submit" VALUE="SUBMIT"></P>

SUBMIT название кнопочки.


 

#!/usr/local/bin/perl

##################################################################
#  BEFORE TRYING TO EDIT THIS SCRIPT,
#  READ INSTRUCTIONS BELOW
##################################################################
#
# Dream Catchers CGI Scripts Feel free to modify 
# Simple Counter this script to your 
# Created by Seth Leonard needs, but please
# for Dream Catchers Technologies, Inc. keep this portion so
# that I get credit.
# http://dreamcatchersweb.com/scripts The same goes for 
# distribution.
#
# (c)1996/1997 Dream Catchers Technologies, Inc.,
# All Rights Reserved
#
##################################################################
# ONLY EDIT THIS PART OF THE SCRIPT!!

$backurl = "http://dreamcatchersweb.com/test/home.html";
$backname = "Your Home Page Title";
$mailprog = '/bin/sendmail';
$youmail = 'you@server.com';

# DO NOT EDIT BELOW THIS LINE!!!!
##################################################################

read(STDIN, $namevalues, $ENV{'CONTENT_LENGTH'});

open (MAIL, "|$mailprog $youmail") || die "Can't open $mailprog!\n";
print MAIL ("To: $youmail\n");
print MAIL ("From: Internet User\n");
print MAIL ("Subject: Form Response\n\n");

# Process info from Fill in Form

@namevalues = split(/&/, $namevalues);
foreach $namevalue (@namevalues) {
($name, $value) = split(/=/, $namevalue);
$name =~ tr/+/ /;
$value =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$INPUT{$name} = $value;
unless ($value eq "") {
print MAIL ("$name: $value\n");
}
}

close (MAIL);

# Print Follow up HTML

print ("Content-Type: text/html\n\n");
print ("<html><head><title>Thank You</title></head>\n");
print ("<body><h1>Thank You For Filling in the Requested Information</h1>\n");
print ("The information has been sent and here is what you submitted:<hr>\n");

foreach $namevalue (@namevalues){
($name, $value) = split(/=/, $namevalue);
$name =~ tr/+/ /;
$value =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$INPUT{$name} = $value;
unless ($value eq "") {
print ("$name:$value<br>\n");
}
}

print ("<hr>\n");
print ("<a href=\"$backurl\">Back to $backname</a><hr>\n");
print ("&copy; <a href=\"http://dreamcatchersweb.com/scripts/\">Dream Catchers Technologies, Inc.</a>\n");
print ("</body></html>\n");

exit;

Шаг за шагом инструкции для установки Формы

СОДЕРЖАНИЕ:

form.cgi - Cgi сценарий, который использует Вашу программу возвращения формы
htmlcgi.txt - Файл текста, выделяющий возможные способы получить вход пользователя
readme - этот файл на английском языке (может, будет более понятно, почитав в оригинале)
sample.htm - Образец формы

Следуйте за этими легкими шагами:

1. Войдите в контакт с Вашим сервером. Попросите, чтобы они создали директорию cgi-bin для Вас. Также спросите их, как может быть осуществлен доступ к файлам в этой директории от WWW. Обычно это-" http: //www.server.com/you/cgi-bin/ ".

2. Если Вы имеете telnet, обращайтесь к Вашему серверу. В приглашении к вводу команды, напечатайте "which perl".  Записывайте строку, данную Вам. Обычно это - /usr/local/bin/perl.Затем, напечатайте "which sendmail". Записывайте строку, данную Вам. Обычно это - /usr/bin/sendmail.Если не имеется sendmail программы, напечатайте "which mail" и используйте её. Затем, напечатайте "which date". Записывайте строку, данную Вам. Обычно это - /bin/date. Если Вы не имеете доступ telnet, спрашиваете ваш сервер, где находятся perl, почта, и программы date.

3. При использовании вашего любимого текстового редактора, откройте form.cgi файл.

4. Первая строка form.cgi имеет вид:

#!/usr/local/bin/perl

Если линия, которую Вы получили при запросе "which perl" имеет другой вид, то замените ее. И сохраните строку без изменения, если вид линии такой же.

5. Найдите раздел, который говорит "ONLY EDIT THIS PART OF THE SCRIPT" и изменените в соответствие Вашим требованиям.

ОБРАТИТЕ ВНИМАНИЕ: значения, уже помещенные - примеры!!   Они - обычные форматы для серверов с основанными каталогами. Вы должны заполнить ваши собственные значения!

Например:

$backurl = "http://www.something.com/~you/home.html";

Вы должны изменить на:

$backurl = "http://www.microsoft.com/~bill_gates/home.html";

Измените значения:

$backurl - URL страницы, к которой Вы хотели бы, чтобы посетители шли после того, как они завершили вашу форму
$backname - Заголовок страницы, к которой Вы хотели бы, чтобы посетители зашли после того, как они заполнили вашу форму
$mailprog - Имя программы, которую Вы получили, когда Вы спросили "which mail".
$youmail - Адрес электронной почты, куда Вы хотите получение возврата формы.

6. Все с этим файлом покончено. Сохраните его как form.cgi, или любое другое имя файла, заканчивающееся на .cgi. ПРИМЕЧАНИЕ: файл может также быть сохранен как form.pl, если ваш сервер так предпочитает.

7. Создайте HTML страницу, сделайте ее такой, какой бы Вы хотели ее видеть.

8. Вставьте строку "<FORM METHOD="POST" ACTION="http://your_cgi-bin/form.cgi">"  Вместо "your_cgi-bin" впишите тот адрес, который Вы получили для cgi-bin. Обычно это "www.your_server.com/cgi-bin/your_name". Form.cgi - имя файла, Вашего cgi сценария, который появляется в вашем каталоге cgi-bin.

9. Поместите команды HTML, используемые для временных замен на вашей странице. Имеется список, и объяснение того, как использовать их - в htmlcgi.txt файл.

Вы можете использовать любые названия, которые захотите для вашего кодирования ввода html. Например:

<input type=text name="First Name" size=20>
<input type=text name="firstname" size=20>

<input type=text name="name" size=20>

10. В конце всех кодов формы, Вы должны поместить кнопку, которая позволит посетителю посылать информацию Вам. Например:

<INPUT TYPE="submit" VALUE="Submit">

11. Поместите команду </FORM> для завершения формы. И дальше можете дальше навешивать всякие приколы на Вашу страницу.

12. Сохраните файл как response.html или как Вам угодно.

13. Загрузите все .cgi файлы в Ваше cgi-bin и .htm или .html файлы к любому каталогу, к которому можно обращаться через сеть (много серверов требуют, чтобы Вы загрузили эти файлы в формате ASCII, проверьте это с вашим администратором сервера, чтобы убедиться).

14. Вы теперь должны установить разрешения файлов, которые вы загрузили. Вы может сделать этот двумя способами.

1. TELNET - Telnet на Ваш сервер и идете к каталогу, который держит файлы. Напечатайте chmod имя файла [разрешения].   Например: chmod 755 file.cgi.

2. FTP SOFTWARE - Вы будете должны выяснить, как изменить разрешения файлов, использующих Вашу программу. Используйте WS_FTP (рекомендуемый), выберите файл, у которого Вы хотите изменить разрешения и щелкайте Вашу правую кнопку мыши и выбирайте CHMOD (UNIX).   Блок будет с опцией, выбираете любой номер до 9 отдельных рамок (высшая строка для чтения, средняя строка для записи, нижняя строка для выполнения). Они переводят в фактические unix разрешения. Если файл должен быть, a+rx или 755, выбирают каждый блок чтения и каждый, чтобы блок выполнения. Если файл должен быть, a+rw или 666, выбирают каждый блок чтения и блок записи. Это единственные два разрешения, из-за которых Вы должны волноваться.

Если Вы имеете доступ telnet, Вы можете также проверять Ваши сценарии на наличие ошибок, идя к каталогу, они находятся в perl filename.cgi или filename.cgi (зависит от вашего сервера). Если Вы получаете ошибку, Вы наиболее вероятно не так редактировали сценарий, посмотрите наличие " или ;

15. Загрузите страницу из интернета, заполните форму, и отправьте ее. Удостоверитесь, что Вы получаете ответ на e-mail, подождав несколько секунд.

16. Ну что получили? Да?! Тогда Вас можно поздравить, Вы сегодня хорошо поработали.

 

Эдмон.
admon@cmail.ru


[ назад ] [ далее ]