Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Как можно ввод данных сделать через WEB->скрипт


Автор: tedy1 28.6.2010, 12:32
Всем здрасте. Написал скрипт на PERL (мой первый скрипт), который ищет файлы по введенным данным: дата, месяц год и в какой папке производить поиск. Подскажите, как можно сделать, чтобы данные для поиска вводит через WEB интерфейс, а не через консоль (поднят Apache,PHP).

Вот кусок моего скрипта:

Print "Введите папку в которой производить поиск\n";
$put=<STDIN>;

print "Какой год?";

$years=<STDIN>;
chop $years;

print "Введите номер месяца:\n 1 - Январь\n 2 - Февраль\n 3 - Март\n 4 - Апрель\n 5 - Май\n 6 - Июнь\n 7 - Июль\n 8 - Август\n 9 - Сентябрь\n 10 - Октябрь\n 11 - Ноябрь\n 12 - Декабрь\n";

$mount=<STDIN>;


print "Введите день:\n"; 
$date=<STDIN>;

Автор: bars80080 28.6.2010, 12:42
ну, вроде как любой вэб-интерфейс ввода - это форма.

стало быть, идём на htmlbook.ru, к примеру, там есть раздел step by step и создаём хтмл-страничку. в ней делаем форму, а затем уже сопрягаем скрипт с полученной страничкой




п.с. если это первый скрипт, то можно было бы поинтересоваться, чем был вызван интерес именно к perl, а не к php или asp, к примеру?
perl ведь развивается, мягко говоря, очень медленно. 6-ая версия уже 10 лет как в разработке, что свидетельствует об интересе к нему

Автор: tedy1 28.6.2010, 13:11
создаём хтмл-страничку. в ней делаем форму, а затем уже сопрягаем скрипт с полученной страничкой" - хтмл страничку к примеру я напишу, а как скрипт связать с этой хтмл страничкой? Спасибо.

Для себя просто решил освоить PERL - интересный язык.

Автор: bars80080 28.6.2010, 13:44
Цитата(tedy1 @  28.6.2010,  13:11 Найти цитируемый пост)
а как скрипт связать с этой хтмл страничкой?

у формы есть action с адресом страницы со скриптом, к примеру:

<form action="http://server.ru/cgi-bin/myscript.pl" method="get">

скрипт находится в файле myscript.pl в соответствующей директории на сервере, который, конечно же, поддерживает серверный язык perl

ну в в скрипте соответствующий код. вот у меня такой прокатывал:

Код

#! /usr/bin/perl

$query = $ENV{'QUERY_STRING'};
@qarr = split('&', $query);
$amount = substr(@qarr[0], 6);
$pnr = substr(@qarr[1], 4);
$mail = substr(@qarr[2], 5);

// дальнейший код

этот код парсит строку запроса, вида amont=123456&pnr=123456&mail=asdfadfsda

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


п.с. прежде чем что-то делать, надо разобраться с сервером, держит ли он перл, а также типом: cgi-приложение или скрипт

Добавлено через 14 минут и 4 секунды
вот, нашёл у себя учебник Прохоренка Н.А. http://perlbooks.narod.ru/
не знаю как по качеству, но лучше, чем ничего

Автор: tedy1 28.6.2010, 14:49

<HTML>
<HEAD>
<TITLE>HTML Form</TITLE>
</HEAD>
<BODY>
<FORM ACTION="http://test/cgi-bin/1.pl" method="get">
Put <INPUT TYPE=TEXT NAME="put" SIZE=20xBR>
years <INPUT TYPE=TEXT NAME="years" SIZE=40xBR>
mount <INPUT TYPE=TEXT NAME="mount" SIZE=60xBR>
date <INPUT TYPE=TEXT NAME= "date" SIZE=60xBR>
<INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Submit!">
</FORM>
</BODY>
</HTML>

Такая правильная форма?

Если через браузер запускать скрипт, то он отрабатывает (http://test/cgi-bin/1.pl).

Автор: bars80080 28.6.2010, 17:19
вот что это: SIZE=20xBR> - я не знаю. для size указывается только числовой размер

кстати, раз уж вы только начинаете, то есть прекрасная возможность приучить себя к корректному синтаксису (оглядываясь на стандарт xml). а это значит все тэги и атрибуты маленькими буквами, все значения атрибутов в кавычках, все тэги закрыты. то есть:

не <INPUT TYPE=TEXT NAME="mount" SIZE=60xBR>
а <input type="text" name="mount" size="60" />



Цитата(tedy1 @  28.6.2010,  14:49 Найти цитируемый пост)
Если через браузер запускать скрипт, то он отрабатывает (http://test/cgi-bin/1.pl).

работает? хорошо

Автор: tedy1 29.6.2010, 11:07
bars80080, 
За учебник Прохоренка Н.А. - огромное спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)