Страница 1 из 1

Perl. Вывод обработанных данных.

Добавлено: 2008-08-25 16:24:20
tango
Необходимо со статической HTML страницы осуществить ввод данных в Perl- скрипт и потом вывести обработанные Perl-скриптом данные на ту же HTML страницу. ...
Ввод данных в скрипт с HTML- страницы, организовала обычной HTML- формой с кнопкой "Submit", а вот с выводом обработанных данных из Perl скрипта на ту же HTML страницу - у меня проблема.....
Вы моя последняя надежда... :)
Скрипт:

Код: Выделить всё

#! /usr/bin/perl
# $debuging mode on/off
use smpp;

# ----------------------------------------------
read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

@arrays = split(/&/, $buffer);

foreach $array (@arrays) {
  ($name, $value) = split(/=/, $array);
   $value =~ tr/+/ /;
   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $value =~ s/<!--(.|\n)*-->//g;
   $input{$name} = $value;
  }

$data{''} = $input{Message};

# --------------------------------------------
while (($key, $value) = each(%data)) {
        print "\n$key ======== Результат обработки ========\n";
        ($tmp, $hash) = GetTextPDU("getvalue",$value);
        print "$tmp\n";
while (($key1, $value1) = each(%$hash)){
        print " $key1: $value1\n";
        }
        print "$key =============== Конец ================\n\n";
}
Форма:

Код: Выделить всё

<html>
   <body>
        <center>
                <h2>Декодер HEX</h2>
        </center>
<center>
                <div id="contact-area">
        <form method="post" action="cgi-bin/test.pl">
                <label for="Message" id="Message">Исходные данные:</label><br />
                <textarea name="Message" rows="4" cols="62" onfocus="this.value=''; this.onfocus=null;">Введите данные</textarea>
        <br>
                <input type="submit" name="submit" value="Отправить" class="submit-button" />
                <input type="reset" name="reset" value="Очистить" class="reset-button" />
        </form>
                </div>
         </center>
        </body>
</html>


Re: Perl. Вывод обработанных данных.

Добавлено: 2008-08-25 16:29:55
ProFTP
используйте лучше шаблончек http://forum.lissyara.su/viewtopic.php?f=17&t=8321 (есть еще одна статья где вывсти цыкл)

Re: Perl. Вывод обработанных данных.

Добавлено: 2008-08-25 16:33:41
terminus
Я в Perl не очень, но о cgi понятие имею и на пых-пыхе кое-чего пописывал... давно...
Я о чем: может использовать в качестве файла-формы не отдельный forma.html, а сам скрипт? В скрипте и выводить все элементы формы при обычном вызове, и то же самое + результаты после отправки данных и обработки.

ЗЫ

"статическая страница" на которую выводится динамическая информация - это уже получается "динамическая страница" ;-)

Re: Perl. Вывод обработанных данных.

Добавлено: 2008-08-28 18:22:52
ProFTP
terminus писал(а): "статическая страница" на которую выводится динамическая информация - это уже получается "динамическая страница" ;-)
я почему-то подумал, что статическая страница это странице с другого сервера которая статическая :-o

правильней HTML файл

Re: Perl. Вывод обработанных данных.

Добавлено: 2008-08-28 18:31:57
ProFTP
нужно передать заголовок браузеру

Код: Выделить всё

print "Content-Type: text/html\n\n"; 

print << "[INFO]";
<html>
   <body>
        <center>
                <h2>Декодер HEX</h2>
        </center>
<center>
[INFO]

while (($key, $value) = each(%data)) {
        print "\n$key ======== Результат обработки ========\n";
        ($tmp, $hash) = GetTextPDU("getvalue",$value);
        print "$tmp\n";
while (($key1, $value1) = each(%$hash)){
        print " $key1: $value1\n";
        }
        print "$key =============== Конец ================\n\n";
}

print << "[INFO2]";
 <div id="contact-area">
        <form method="post" action="cgi-bin/test.pl">
                <label for="Message" id="Message">Исходные данные:</label><br />
                <textarea name="Message" rows="4" cols="62" onfocus="this.value=''; this.onfocus=null;">Введите данные</textarea>
        <br>
                <input type="submit" name="submit" value="Отправить" class="submit-button" />
                <input type="reset" name="reset" value="Очистить" class="reset-button" />
        </form>
                </div>
         </center>
        </body>
</html>
[INFO2]

Re: Perl. Вывод обработанных данных.

Добавлено: 2008-08-28 21:03:34
zg
tango писал(а):Необходимо со статической HTML страницы осуществить ввод данных в Perl- скрипт и потом вывести обработанные Perl-скриптом данные на ту же HTML страницу. ...
это делается с помощью проверки на POST-данные
tango писал(а):read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
:no: уличная магия тут не рулит :smile: , надо модуль использовать. Или ты хочешь и POST-форму ручками парсить? В перле уже всё давным давно реализовано, только надо правильно взять.

Re: Perl. Вывод обработанных данных.

Добавлено: 2008-08-29 8:39:51
_tango
Спасибо за отклики. :)
Но я уже всё давно сделала....
теперь у меня форму для ввода данных и результат обработки выдает скрипт...
удобнее всё держать в одном файле, чем в нескольких. :)