Введение
Когда автор работал полтора года назад над книгой MySQL для издательства New Riders, ему достаточно трудно было предугадать, много ли поступит отзывов на эту книгу, поскольку даже приблизительно оценить количество разработчиков, работающих с MySQL, было практически невозможно. Однако такого огромного успеха никто не ожидал. MySQL - отличная база данных. Она проста в использовании, производительна и бесплатна, другими словами, обладает всеми особенностями, необходимыми для высокой популярности. И стало очевидно, что пользователи нуждаются в получении большей информации. Поэтому довольно быстро после выхода MySQL персонал издательства New Riders начал задумываться о выпуске еще одной книги для разработчиков и пользователей MySQL. Во время обсуждения и выбора тематики новой книги возникла идея описания использования MySQL совместно c Perl и его модулем DBI для написания Web-сценариев, работающих с базами данных. Комбинация этих языков достаточно широко распространена, но весьма мало описана. И многие разработчики, желающие начать работать с ними, не в состоянии отыскать достаточно информации.
Настоящая книга коренным образом изменяет положение вещей. Содержащийся в ней исчерпывающий практический материал позволит даже начинающим разработчикам "оживить" свой Web-узел, используя MySQL и Perl. Ведь с помощью этих языков можно создавать приложения, взаимодействующие с пользователями и обеспечивающие динамическое содержимое. А это, в свою очередь, позволяет отказаться от статических страниц, информацию которых волей-неволей приходится изменять вручную через определенные промежутки времени. Материал данной книги излагается с предположением, что наиболее эффективным способом обучения является рассмотрение и анализ практических примеров. Описываемые в книге приложения могут после некоторого изменения служить собственным целям читателей. Однако чего точно нет в этой книге - так это огромных листингов и немногословных описаний. Практические примеры поистине неоценимы, если читатели их понимают, поэтому каждое приложение описывается достаточно детально. Благодаря этому читатели узнают, что данный код делает, а также почему и как. Подобный подход обладает следующими ключевыми особенностями:
- Практичность. Книга содержит примеры приложений, которые действительно могут быть полезными в реальной жизни. Однако автор также последовательно описывает, почему те или иные операции выполняются определенным образом. Понимание последнего позволяет читателям в случае необходимости легко адаптировать материал или примеры книги к определенным условиям. Далее рассматриваются также основные принципы разработки и реализации приложений. А поскольку, как в случае с Perl, зачастую существует несколько вариантов решения одной задачи, то в описаниях, как правило, рассматриваются и сравниваются все альтернативы.
- Доступность. Представленный в книге материал является техническим, но, несмотря на это, достаточно доступным для понимания. Представление информации с помощью примеров делает ее легко понятной.
- Всеобщая применимость. При описании каждого приложения, выполняющего определенную задачу, автор старался описывать все аспекты и особенности используемых для написания приложений методик и способов. Благодаря этому читатели могут легко понять, как можно адаптировать описанные методы для решения других задач, которые могут быть гораздо интересней описанных.
Приложения в различных главах настоящей книги описываются иногда достаточно детально. Это объясняется тем, что автор зачастую сначала показывает читателям один способ реализации какого-либо действия, а затем рассказывает, как можно выполнить его лучше.
Организация книги
Глава 1, "Введение в MySQL и Perl" обеспечивает рассмотрение общих принципов совместного использования MySQL и Perl в Web-средах.
В главе 2, "Подключение базы данных к Web" описывается процесс создания базы данных для последующего использования в приложениях книги и предоставляется базовая информация по написанию сценариев Perl. В ней же рассматривается использование модуля CGI.pm для написания Web-сценариев и модуля DBI - для взаимодействия с серверами баз данных. Завершает главу описание процесса разработки простого Web-приложения, позволяющего выполнять ввод, редактирование и поиск данных.
В главе 3, "Повышение производительности работы с помощью модуля mod_perl" рассматриваются возможности отдельного модуля Apache, с помощью которого можно значительно повысить производительность работы сценариев Perl, а также анализируются различные аспекты их запуска в среде mod_perl.
Глава 4, "Создание и обработка форм" посвящается использованию модуля CGI.pm для создания и инициализации форм, а также способам обработки и интерпретации информации, извлеченной из заполняемых пользователями форм.
В главе 5, "Написание приложений с формами ввода" описываются различные методы придания сценариям интерактивности с помощью форм и использования MySQL для хранения полученной информации. В этой главе рассматриваются операции ввода и проверки данных, загрузки и вывода изображений, а также проведения опросов. Особое внимание читателей уделяется вопросам построения и отправки почтовых сообщений из сценариев и запуску сценариев в виде cron-задания.
В главе 6, "Автоматизация процесса обработки формы" рассказывается, как запросить через MySQL информацию о структуре таблицы, а затем использовать ее для автоматического построения полей формы, соответствующих столбцам таблицы. Здесь же рассматривается, как с помощью такой информации организовать проверку содержимого заполненных форм, а также выполнять проверку и построение форм на основании содержимого таблиц подстановки.
Глава 7, "Выполнение поиска" посвящена созданию форм поиска и запросов баз данных, построенных на отправленных пользователем параметрах, а также выводу результатов поиска.
В главе 8, "Управление сеансами" описываются вопросы управления сеансами, а именно - способам отслеживания информации, передаваемой между несколькими запросами одного клиента (такие запросы передаются внутри одного сеанса). В этой главе рассматриваются различные клиентские и серверные способы управления информацией состояния, методы идентификации клиентов, а также использование MySQL для хранения данных сеанса и установки сроков их существования.
Глава 9, "Безопасность и конфиденциальность" целиком и полностью посвящена аспектам безопасности. Как известно, существует множество способов потерять важную информацию. Разработчик должен знать все эти способы и пути защиты от них. В главе детально описываются вопросы потенциальной угрозы, которая может исходить как от удаленных, так и от локальных пользователей.
В главе 10, "Приложения электронной коммерции" разрабатывается небольшое приложение электронной коммерции и описываются все связанные с этой тематикой аспекты. В главе рассказывается, как организовать представление каталога, заказ товаров и прием к оплате кредитных карт, а также как использовать транзакции, чтобы исключить возможность записи некорректной или неполной информации в базу данных.
В приложении A, "Получение программного обеспечения" приводится список программного обеспечения, которое позволяет разработчикам сделать свои приложения более производительными, а также указывается, где его можно получить.
В приложении Б, "Ссылки и другие источники информации" представлен список полезных источников информации, связанных с описанной в книге тематикой.
Другая информация
Для предоставления наибольшего удобства читателям автор поддерживает специальный Web-узел, на котором представлен исходный код и файлы поддержек, упоминаемые или использованные в книге. На этом же узле доступен текущий список обнаруженных ошибок, который также рекомендуется просматривать время от времени:http://www.kitebird.com/mysql-perl/
Об авторе
Поль Дюбуа (Paul DuBois) познакомился с MySQL после того, как ему пришлось работать с исключительно сложной базой данных, предлагаемой одной из больших коммерческих компаний-разработчиков, и столкнуться с представителями ее службы поддержки клиентов. Первоначальный простой интерес к MySQL имел далеко идущие последствия. Спустя некоторое время Полю довелось принять участие в разработке справочного руководства по MySQL, затем написать книгу MySQL, перевод которой выпущен издательским домом "Вильямс" в 2001 г., и совсем недавно перейти на работу в компанию NuSphere, которая активно занимается разработкой, распространением и обучением работы с MySQL.
На протяжении своей жизни Поль был вовлечен в разработку баз данных, создание и администрирование Web-узла, почтового списка, различных систем и работу с сетями TCP/IP и AppleTalk. Он по праву считается одним из лидеров сообщества MySQL and Open Source.
О технических редакторах
Обширный опыт технических редакторов оказывал незаменимую помощь на протяжении всего периода написания книги Применение MySQL и Perl в Web-приложениях. По завершении первого этапа эти признанные специалисты внимательно проанализировали техническое содержимое, организацию и изложение материала. Их мнение однозначно помогло выделить основную информацию, в которой больше всего нуждаются потенциальные читатели.
Билл Геррард (Bill Gerrard) работает вице-президентом компании Technology at Daze Networks, предлагающей услуги Internet, в частности, поддержание виртуальных серверов DigitalDaze.com со службами баз данных MySQL, и DNSCentral.com, представляющих услуги регистрации доменных имен, Web-перенаправления и пересылку электронной почты. Множество предлагаемых этой компанией услуг реализованы с помощью MySQL и Perl. Билл живет в Лейк Форест, штат Калифорния, вместе со своей женой Памелой и двумя детьми.
Джереми Д. Заводный (Jeremy D. Zawodny) живет в Силиконовой Долине и работает инженером в компании Yahoo! Finance. Благодаря ежедневной работе Джереми с Perl, MySQL, Apache и другим подобным программным обеспечением миллионы людей имеют возможность читать финансовые новости. Кроме того, Джереми Д. Заводный является редактором журнала Linux Magazine, а также системным администратором и Web-гуру узла WCNet.org. Все это не мешает ему заботиться о двух очаровательных котах.
Благодарность
Я хотел бы выразить свою признательность Майклу "Монти" Видениусу (Michael Monty Widenius) и другим разработчикам MySQL, создавшим отличную базу данных и любезно предоставлявшим ответы на интересующие меня вопросы.
Благодарю руководство компании NuSphere, которое дало мне возможность не только продолжить усовершенствование MySQL, но также и уделить внимание написанию книги об этой базе данных.
Технических редакторов настоящей книги, Билла Геррарда (Bill Gerrard) и Джереми Д. Заводного (Jeremy D. Zawodny), хотелось бы поблагодарить за их неоценимые комментарии, критические замечания и обнаруженные ошибки. Они приложили все усилия, чтобы сделать эту книгу лучше.
За выпуск англоязычной версии книги отвечали Стефани Волл (Stephanie Wall), Крис Зан (Chris Zahn), Лори Лайонс (Lori Lyons), Кейт Клайн (Keit Cline), Джой Дин Ли (Joy Dean Lee) и Эми Паркер (Amy Parker), работающих в издательстве New Riders. Идея написания данной книги впервые пришла в голову Стефани, исполнительному редактору New Riders.
Кроме того, хочу поблагодарить персонал кафе Maple Grove Victor Allen's и Sow's Ear, в которых была написана большая часть данной книги. Прекрасное окружение и обстановка этих заведений настраивали меня на творческий лад (исключение составляют лишь Дни Музыки Селтика, проводимые в Ear).
И, конечно же, слова любви и благодарности я хотел вы сказать своей жене Карен. Ее постоянная поддержка и понимание помогли мне закончить книгу и были гораздо важней, чем она может себе представить.
От издательства
Вы, читатель этой книги, и есть главный ее критик и комментатор. Мы ценим ваше мнение и хотим знать, что было сделано нами правильно, что можно было сделать лучше и что еще вы хотели бы увидеть изданным нами. Нам интересно услышать и любые другие замечания, которые вам хотелось бы высказать в наш адрес.
Мы ждем ваших комментариев и надеемся на них. Вы можете прислать электронное письмо или просто посетить наш Web-сервер, оставив свои замечания, - одним словом, любым удобным для вас способом дайте нам знать, нравится или нет вам эта книга, а также выскажите свое мнение о том, как сделать наши книги более подходящими для вас.
Посылая письмо или сообщение, не забудьте указать название книги и ее авторов, а также ваш e-mail. Мы внимательно ознакомимся с вашим мнением и обязательно учтем его при отборе и подготовке к изданию последующих книг. Наши координаты:
E-mail: [email protected]
WWW: http://www.williamspublishing.com