|
Программирование >> Программный интерфейс приложений
# Отобразить форму ввода ключа. # Кроме того, если задано значение $interest, # производится поиск и отображение списка членов, # имеющих такой научный интерес. # Обратите внимание на то, что в данной форме значение # $interest отображается # в качестве значения по умолчанию для поля interest print $cgi->start form {-method => POST ); print $cgi->textfield (-name => interest , -value => $interest, -size => 40) ; print $cgi->submit (-name => button , -value => Search ); print $cgi->end form (); # запустить поиск, если было задано поле поиска search members ($interest) если $interest; Этот сценарий передает информацию самому себе по-другому по сравнению со сценариями sampbrowse и score browse. Параметр interest не добавляется в конец URL, а информация, полученная из формы, кодируется броузером и передается как часть запроса POST. Однако модулю CGI.pm совсем безразлично, каким образом посылается информация, значение параметра по-прежнему можно получить с помощью вызова param (). Функция, осуществляющая поиск и отображающая его результаты, показана в следующем листинге. Здесь не показана format litml entry (), функция форматирования записи, так как она полностью аналогична такой же функции из сценария gen dir: sub search members { my ($interest) = shift; my ($sth, $count); printf Поиск результатов по ключу: %s<BR><BR>\n , $cgi->escapeHTML ($interest); $sth = $dbh->prepare (qq{ SELECT * FROM member WHERE interests LIKE ? ORDER BY last name, first name }) ; # поиск строки как подстроки поля interest $sth->execute ( % . $interest . % ); $count = 0; while (my $hash ref = $sth->fetchrow hashref ()) ( format html entry ($hash ref); ++$count; print $cgi->p ( Найдено $count записей ); Интерфейс API для языка написания сценариев РНР Язык РНР является языком написания Web-страниц, содержащих код, который исполняется, когда осуществляется доступ к странице. Кроме того, этот код в состоянии генерировать динамическое содержание, как часть посылаемого на Web-броузер клиента результат. В этой главе описываются принципы использования языка РНР при создании Web-приложений, работающих с СУБД MySQL Для сравнения программного интерфейса APL разработанного для языка РНР, с интерфейсами DBI APL созданными для языков программирования С и Perl, обратитесь к главе 5, Введение в программирование в СУБД MySQL . Все примеры, приведенные в этой главе, используют хорошо известную тестовую базу данных samp db. При этом используются таблицы, созданные нами для проектов Учет успеваемости и Исторической Лиги в главе L Знакомство с СУБД MySQL и SQL . Будем работать с языком РНР 3, хотя, как я уже писал, язык РНР 4 находится в данный момент на бета-тестировании и к моменту вашего ознакомления с этой книгой может уже бьггь доступен в качестве альфа-версии. Совместимость РНР 4 с РНР 3 является одной из декларированных целей этой разработки. Так что все сказанное в адрес РНР 3 можно будет применить и к РНР 4. Эта глава написана с предположением, что профаммирование на РНР производится одновременно с работой Web-сервера Apache. Должны быть также установлены клиентская библиотека MySQL С и файлы заголовков. Эти файлы вам понадобятся при посфоении РНР. В противном случае РНР не сможет получить доступ к базам данных MySQL. Если у вас такое профаммное обеспечение отсутствует, обратитесь к приложению А, Получение и инсталляция профаммного обеспечения . Кроме всего прочего, там вы найдете инсфукции по получению текстов сценариев, разработанных в этой главе. Их можно будет просто зафузить и не заниматься рутинным вводом текстов этих сценариев с клавиатуры. При работе под управлением ОС UNIX, РНР может работать с сервером Apache в виде всфоенного модуля, связанного с двоичным исполнимым кодом сервера, или в виде автономного интерпретатора, работающего как фа-диционная профамма CGI. При работе под управлением ОС Windows, язык РНР может работать только в качестве автономной профаммы, хотя идет разработка модуля РНР 4, работающего под управлением ОС Windows NT. В основном, эта глава описывает функции языка РНР по мере их необходимости в излагаемом материале. Более полный перечень функций языка РНР, имеющих отношение к интерфейсу с СУБД MySQL, можно найти в приложении 3, Программный интерфейс языка РНР . Вероятно, пофебуется обратиться к руководству по языку РНР, содержащему более полное описание функций языка, включая даже те функции, которые используют другие СУБД Это руководство можно найти на Web-узле по адресу http: www.php.net/. Характеристики сценария, написанного на языке РНР Имена файлов для сценариев РНР обычно имеют расширение, которое легко позволяет вашему Web-серверу их распознать и запустить интерпретатор РНР для их вьшолнения. При использовании других расширений РНР-сценарии будут обработаны как текстовые файлы. В этой главе используется расширение .php Другими часто используемыми расширениями являются расширения .php3 и .phtml. Как конфигурировать сервер Apache, чтобы он распознавал эти расширения, можно узнать в приложении А, Получение и инсталляция профаммного обеспечения . Если управление инсталляцией сервера Apache не входит в круг ваших прав и обязанностей, проконсультируйтесь с системным админи-сфатором, каким расширением вам будет удобней воспользоваться. Основы языка РНР Основной задачей языка РНР является интерпретация сценария для генерации Web-сфаницы, которая отсылается профамме-клиенту. Сценарий содержит смесь HTML-кода, который высылается в литеральном
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |