Мегаобучалка Главная | О нас | Обратная связь


Лабораторная работа №4 Формирование Perl скрипта, взаимодействующего с HTML формой и СУБД MySQL



2019-12-29 181 Обсуждений (0)
Лабораторная работа №4 Формирование Perl скрипта, взаимодействующего с HTML формой и СУБД MySQL 0.00 из 5.00 0 оценок




 

Цель работы: Создать функционирующее приложение для обеспечения сохранения введенных пользователем через HTML форму данных в  БД под управлением MySQL.

 

В данной работе рассмотрены приемы для реализации клиент серверного взаимодействия. Подробно описаны этапы создания Perl программ. Приведены примеры работающих приложений.

    В лабораторных работах предполагается использование web сервера APACHE. Рассмотрение параметров настройки web сервера и его установка не входит в программу данного курса. Студентам необходимо знать, что в представленном варианте сервера он настроен на следующее дерево директорий:

 

D:\usr\ www      
  cgi-bin      
  local      
    Apache Apache.exe  
    Perl bin Perl.exe
    MySQL Mysql.exe  

 

В случае отсутсвия диска D можно воспользоваться командой Subst создания виртуального диска (вводится через командную строку, кнопка Пуск/ Выполнить): SUBST disk1: disk2:\path где disk1: - буква назначаемого виртуального диска, disk2:\path - полный путь к каталогу (папке), который заменяется на виртуальный диск.

Таким образом для создания диска D и расположения в ней директории USR необходимо последнюю расположить в следующей за корневой директории. Например С:/11/USR. Затем воспользоваться командой SUBST D: "c:/11" после чего появиться диск D и на нем будет располагаться содержимое директории C:/11.

Для организации взаимодействия наших Perl-программ с СУБД MySQL необходимо, чтобы в поставку Perl входил модуль DBI. Поскольку модуль в основном ничего сам не делает, а перекладывает все операции по взаимодействию с базами данных на соответствующий им драйвер, то требуется установка библиотеки DBD-Mysql (драйвер к БД MySQL для модуля DBI). По мнению автора и разработчика модуля, «DBI — это API-интерфейс для организации доступа к базам данных из Perl-программ. Спецификация DBI API определяет набор функций, переменных и правил, используемых для прозрачного интерфейса с базами данных».

Концепция драйверов баз данных весьма удобна, поскольку в своем Perl-приложении вы используете стандартные для DBI вызовы, которые затем переадресуют модули соответствующему драйверу, а тот, в свою очередь, уже напрямую будет взаимодействовать с БД, не требуя от вас изучения технических особенностей каждой конкретной СУБД. Таким образом, существуют драйверы DBD::Sybase, DBD::Oracle, DBD::Informix и т.д. (рис. 1, 2).

Рисунок 1 - Архитектура DBI

Рисунок 2 - Поток данных через интерфейс DBI

Для упрощения исходного кода во второй части Perl программы (Чтение входных данных) для передачи большого количества информации из разных полей зачастую используются уже созданные библиотеки, существенно упрощающие написание исходного кода.

 

#!/usr/local/perl/bin/perl #Подключение необходимой библиотеки (Убедитесь что она находится в директории с Perl)require "cgi-lib.pl";&ReadParse(*input);#Следующая строка выводит все переменные переданные на скриптprint &PrintVariables(*input);

После выполнения этой подпрограммы с использованием библиотеки cgi - lib и функции &ReadParse(*input), можно обращаться к введенным данным используя обращение следующего вида $input{'name'} где name – имя поля в которой осуществлялся ввод данных в форме HTML.

Пример:

       Использование в скрипте следующей конструкции:

print "<I><B>Имя</B></I>=$input{'name'}<BR>\n";

выведет на экран введенное в HTML форме в поле 'name' содержимое.

Основным заданием данной работы будет создание HTML-форм для ввода, просмотра, изменения, добавления данных в БД и разработки CGI-программ на Perl в целях обработки этой формы и последующего размещения документа в базе данных. Напомним, что CGI (Common Gateway Interface) — протокол, механизм, или формальное соглашение между Web-сервером и отдельной программой. Сервер кодирует входные данные, например HTML-формы, а программа CGI декодирует их и генерирует поток выходных данных.

В спецификации протокола ничего не сказано о каком-либо определенном языке программирования. Поэтому программы, соответствующие этому протоколу, могут быть написаны практически на любом языке — на C, C++, Visual Basic, Delphi, Tcl, Python или, как в нашем случае, на Perl. Взаимодействие приложений MySQL и Perl предлагается осуществлять с помощью вебсервера Apache.

Все программы написанные на Perl после отладки должны быть расположены в директории  / cgi - bin / bd _ name _ num из домашней директории вебсервера, а html документы в директории www / bd _ name _ num , где bd_name_num имя базы данных и номер варианта. Это необходимо учитывать при указании пути для вызова своего исполняемого файла из html формы, например использование конструкции вида:<form action=/cgi-bin/ bd_name_num/example.pl method=get>, обеспечит запуск необходимого файла из директории / cgi - bin / bd _ name _ num /.Для того, чтобы PERL мог выводить данные в HTML форме пользуйтесь конструкцией: # Вывод http-заголовкаprint "Content-type: text/html\n\n"; после которой можно выводить любые данные на форму с использованием тэга print, как в предыдущей работе:print "<h3>Спасибо, что заполнили форму</h3>\nНажмите "; Для выполнения любых операций с БД, посредством программ, написанных на PERL, необходимо произвести подключение с серверу MYSQL следующей конструкцией  в составе программы: # Подключение к базе$dbh = DBI->connect("DBI:mysql:database=$database", $opt_user,$opt_password) || die "Can't connect: $DBI::errstr\n"; где $database, $opt_user, $opt_password имя базы данных, имя пользователя, значение пароля соответственно.После подключения к БД можно выполнять любые операции с ней, разрешенные для пользователя, с учетной записью которого было совершено подключение

 



2019-12-29 181 Обсуждений (0)
Лабораторная работа №4 Формирование Perl скрипта, взаимодействующего с HTML формой и СУБД MySQL 0.00 из 5.00 0 оценок









Обсуждение в статье: Лабораторная работа №4 Формирование Perl скрипта, взаимодействующего с HTML формой и СУБД MySQL

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (181)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)