Как Perl обрабатывает данные из форм



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

  • добавить их в текстовый файл,
  • ввести их в базу данных,
  • вставить их в электронное письмо,
  • добавить их в существующую web-страницу,
  • создать новую web-страницу,
  • отобразить их в окне браузера.

 

Некоторые из этих примеров рассматриваются в нашем уроке.

Как генерируются web-страницы "на лету"

Больше всего впечатляет то, что Perl может быть использован для создания web-страниц "на лету" в ответ на запрос или действие пользователя. Новая страница может быть

  • благодарностью за заполнение формы
  • страницей подтверждения с возможностью редактирования
  • запросом дополнительных данных
  • результатом запроса к базе данных или запроса поиска

 

Эта возможность обеспечивает истинную интерактивность вашего узла. Такие скрипты позволят web-серверу автоматически реагировать на определенный набор запросов пользователя, предоставляя данные в требуемом пользователем виде.

В чем различие между программой и скриптом?

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

За счет того, что скрипты значительно короче программ, они выполняются тоже достаточно быстро.

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

Альтернативы Perl

Существует несколько альтернатив использованию Perl:

  • С, Visual Basic - более традиционные компьютерные языки для обработки вводимых данных. Должны компилироваться под определенную платформу.
  • ActiveX - включение программных компонент, выполняющихся в браузере.
  • JavaScript, VBScript - обеспечивают некоторую интерактивность HTML страниц, которую HTML обеспечить не может.
  • Cold Fusion - сторонняя программа для связи форм с базами данных.
  • PHP/FI - еще одна сторонняя программа для связи форм с базами данных.

 

Несмотря на это Perl на сегодняшний день является наиболее простым и быстрым и в тоже время очень мощным средством придания интерактивности вашему узлу.

Что вам требуется, чтобы запустить Perl

Для запуска Perl вашей системе понадобится несколько компонент:

  1. Скрипт, написанный вами или предложенный вам другим, сохраненный в текстовом файле.
  2. Perl интерпретатор. Любой Perl скрипт в первой строке содержит путь к этой программе.
  3. Web-страница с которой будет запускаться этот скрипт. Она может содержать форму или просто ссылку, если скрипт не требует входных данных.
  4. Web-сервер. Взаимодействие между web-страницей и скриптом производится сервером. Поэтому вы должны иметь доступ к web-серверу с возможностью записи и запуска на нем скриптов.

Где взять Perl

Существует много различных мест, где можно получить информацию о последних версиях Perl.

  • Общая информация о Perl - http://www.perl.com/perl/
  • Perl для UNIX - http://www.perl.com/perl/info/software.html
  • Perl для Win32 - http://ntperl.hip.com/

Этапы создания скрипта

После того, как вы установили на своем компьютере необходимое ПО, нужно совершить несколько шагов для запуска Perl на вашем узле:

  1. Создать форму для вызова скрипта.
  2. Создать сам скрипт.
  3. Отладить скрипт. Проверить отсутствие ошибок (если это возможно, лучше проверить все возможные пути выполнения программы).
  4. Поместить скрипт на сервер и не забыть дать ему права на выполнение.
  5. Связать скрипт с формой, вставив его имя в параметр action тэга form. Например:

<form method=post action="/cgi-bin/scriptname.pl">

 

  1. Убедиться, что скрипт правильно работает вместе с формой.

Основные части Perl скрипта

В общем случае любой Perl скрипт состоит из четырех ключевых частей:

  1. Настойка. Первая часть скрипта обязательно запускает интерпретатор и устанавливает переменный, используемые в теле скрипта. Для запуска интерпретатора необходимо знать правильный путь к программе.
  2. Чтение входных данных. Эта часть "считывает" и сохраняет в переменных входные данные в удобной для обработки форме. Эта часть обычно неизменна во всех скриптах.
  3. Обработка входных данных. Эта часть соответствующим образом обрабатывает введенные данные. Она может быть простой (около 5 строк) или очень сложной (более 1000 строк) в зависимости от выполняемой задачи.
  4. Вывод результатов. Пользователь обычно ожидает какого-либо ответа на свои действия. Эта часть достаточно проста в реализации.

Пример скрипта с формой

6. Рассмотрим теперь описанные нами шаги на конкретном примере. От вас не требуется понимания каждой строки скрипта, все они будут объяснены ниже.

Шаг 1 - Создание формы

Создадим для простоты форму, содержащую всего одно поле и позволяющую пользователю зарегистрировать его имя. Напишем в редакторе следующий текст:

<html><head><title>Test Form</title></head> <body><form method=post action"cgi-bin/testform.pl"><b>Введите Ваше имя: </b><input name="user_name" value="" size=20><input type="submit" value="Зарегистрировать"></form></body></html>

Сохраните файл на диске.

Шаг 2 - Создание скрипта

Предложенный ниже скрипт берет введенные данные, сохраняет их в файле и показывает сообщение, содержащее ссылку на файл с сохраненным именем. Наберите в редакторе текст программы и сохраните в файле testform.pl в каталоге cgi-bin вашего web-сервера. Убедитесь, что первая строка программы содержит правильный путь к программе-интерпретатору (для определения местоположения программы на UNIX воспользуйтесь командой which perl, под Windows выполните поиск файла perl.exe). Убедитесь также, что путь к выходному файлу является корректным путем к области хранения документов web-сервера. В заключение исправьте URL на адрес вашего сервера.

#!/usr/local/bin/perl # <-- ПРОВЕРЬТЕ ЭТО # Read and parse input from the web form read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer);foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/<!--(.|\n)*-->//g; $input{$name} = $value;} # Save the user output in a file $targetfile = "/usr/local/www/htdocs/names.html"; # <-- ПРОВЕРЬТЕ ЭТО open (NAMEFILE, ">>$targetfile");print NAMEFILE "<h3>Имя: ",$input{'user_name'},"</h3>\n";print NAMEFILE "<p><hr><p>\n";close (NAMEFILE); # Send a message back to the userprint "Content-Type: text/html\n\n"; print "<h3>Спасибо, что заполнили форму</h3>\nНажмите ";print '<a href="http://server-name/names.html">сюда</a>'; # <-- ЗАМЕНИТЕ ЭТОprint ", чтобы увидеть Ваш ввод.\n";

Шаг 3 - Тестирование скрипта

Проверив скрипт визуально на наличие ошибок - отсутствие ";" в конце строк, наличие непарных скобок и кавычек и т.п., запустите скрипт для проверки прямо из командной строки, перейдя предварительно в каталог cgi-bin. Вот некоторые примеры того, как это делается:

./testform.pl/usr/local/bin/perl testform.plc:\perl\perl.exe testform.pl

Если в скрипте содержатся ошибки, то вы увидите сообщение типа

syntax error at testform.pl line 18, near "open"Execution of testform.pl aborted due to compilation errors.

В этом случае проверьте текст около указанной строки. Помните, что причина ошибки может быть выше на несколько, иногда достаточно много строк. Исправленный скрипт сохраните, и тестируйте так до тех пор, пока он не выдаст корректных выходных данных:


Дата добавления: 2018-04-04; просмотров: 468; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!