Отзывы о книге
Об авторах
Крейг Пэтчетт
Мэтт Райт
Слова благодарности
Предисловие
Введение
Любимое дело
Крейг включается в работу
Оазис Мэтта
В поисках хорошей книги
Ставим на голосование
Вопрос времени

Глава 1. Как пользоваться этой книгой
Путь наименьшего сопротивления
Кое-что для каждого
Для беспомощных
Для начинающих CGI/Perl-программистов
Для имеющих опыт работы
Для специалистов по CGI и Perl
Общая картина
Начинаем
Программы
Приложения
Предварительные условия
Навыки программирования
Программное обеспечение
Операционные системы
Условные обозначения, принятые в книге
Разнообразие
Имена переменных
Шрифты и шрифтовые выделения
Номера строк
Доменные имена
Обращайтесь на наш узел
Если возникнут проблемы
Отказ от ответственности

Глава 2. Использование CGI и Perl
О протоколах и языках программирования
Общий шлюзовой интерфейс (CGI)
Получение информации с сервера
Передача информации на сервер
Perl
Регулярные выражения
Простота изучения
Переносимость
Интеграция CGI и Perl
Где копать глубже

Глава 3. Инсталляция CGI-программ
Обзор
Несколько допущений
У вас есть доступ к Web-серверу
У вас на сервере инсталлирован Perl
У вас есть доступ к CGI-каталогу
Вы знаете, как пересылать файлы на свой Web-сервер
Инсталляция CGI-программ
Серверы Unix
Серверы Windows
Серверы MacOS
Инсталляция требуемых файлов
Инсталляция вспомогательных файлов
Поиск неисправностей
Ошибка "403 Forbidden"
Ошибка "404 Not Found"
Ошибка "500 Server Error"

Глава 4. Управление файлами: FileSeek
Возможности
Руководство по использованию
Создание файла-шаблона верхнего колонтитула страницы
Создание файла-шаблона нижнего колонтитула страницы
Использование программы
Инсталляция
Настройка каталогов и файлов
Настройка переменных конфигурации
Программа
Конфигурирование
Считывание файлов
Инициализация констант
Синтаксический анализ строки запроса
Проверка доступности каталогов
Поиск файлов
Получение содержимого каталога
Получение информации о файлах
Сортировка файлов
Вывод результатов
Форматирование размера файла (подпрограмма)
Идеи по усовершенствованию

Глава 5. Сбор входных данных: FormHandler
Возможности
Руководство по использованию
Использование переменных конфигурации формы
Создание формы
Создание файлов-шаблонов
Создание файла-шаблона регистрации
Создание файла-шаблона электронной почты
Создание файла-шаблона подтверждения
Создание файла-шаблона отсутствующих страниц
Бонус: работа со списком рассылки
Добавление посетителей в список
Передача сообщений по списку
Создание шаблона сообщения
Инсталляция
Настройка каталогов и файлов
Настройка переменных конфигурации
Программа
Конфигурирование
Считывание требуемых файлов
Проверка полномочий доступа
Подготовка данных формы
Проверка обязательных полей
Инициализация переменных даты
Обработка переменных адреса
Передача результатов формы
Передача ответа
Обновление файла регистрации
Обеспечение обратной связи с посетителем
Проверка доступности каталога (подпрограмма)
Выдача сообщений об ошибках (подпрограмма)
Идеи по усовершенствованию

Глава 6. Распространение информации: Broadcaster
Возможности
Руководство по использованию
Создание файла данных
Создание файла сообщения
Использование программы
Инсталляция
Настройка каталогов и файлов
Настройка переменных конфигурации
Настройка файла конфигурации
Программа
Конфигурирование
Инициализация переменных и подготовка процедуры вывода
Проверка безопасности
Генерация формы выбора файла
Генерация формы выбора поля
Генерация образца формы сообщения
Передача сообщений
Идеи по усовершенствованию

Глава 7. Бизнес: Webshop
Возможности
Руководство по использованию
Создание файлов баз данных
Создание страницы ссылок
Создание шаблонов
Создание страниц-шаблонов
Создание шаблонов сообщений электронной почты
Инсталляция
Настройка каталогов и файлов
Настройка переменных конфигурации
Настройка файла конфигурации
Программа
Конфигурирование
Считывание требуемых файлов
Загрузка файла конфигурации
Проверка наличия просроченных заказов
Идентификация посетителя
Обработка запроса информации о товаре
Обработка запроса на покупку товара
Обработка запроса на просмотр заказа
Обработка запроса счета-фактуры
Обработка запроса пустой покупательской тележки
Обработка запроса расчета
Обработка недействительного запроса
Создание нового пользователя (подпрограмма)
Получение информации о товарах (подпрограмма)
Корректировка срока действия заказа (подпрограмма)
Построение таблицы покупок (подпрограмма)
Синтаксический анализ файла-шаблона (подпрограмма)
Выдача сообщения об ошибке (подпрограмма)
Идеи по усовершенствованию

Глава 8. Обратная связь: Feedback
Возможности
Возможности программы Feedback
Возможности программы FeedbackAdmin
Руководство по использованию
Создание страницы ввода отклика
Создание страницы откликов
Создание страницы архива
Создание файла идентификаторов сообщений
Создание файла запрещенных слов
Использование тегов-переменных в файлах-шаблонах
Создание шаблонов страниц
Создание шаблонов сообщений электронной почты
Создание страницы администратора
Использование программы FeedbackAdmin
Инсталляция
Настройка каталогов и файлов
Настройка переменных конфигурации
Настройка файла конфигурации
Программа Feedback
Конфигурирование
Инициализация констант
Считывание требуемых файлов
Синтаксический анализ формы
Чтение файла конфигурации
Получение и форматирование текущих значений даты и времени
Проверка запрещенных хостов
Проверка элементов-дубликатов
Проверка заполнения обязательных полей
Проверка наличия запрещенных слов
Проверка наличия запрещенного HTML-тега
Обработка сообщения
Отправка ответа посетителю
Отправка сообщения администратору
Архивация сообщения
Обновление файла регистрации
Вывод страницы подтверждения
Получение идентификатора текущего сообщения (подпрограмма)
Обновление файла идентификатора сообщения (подпрограмма)
Вывод сообщения об ошибках (подпрограмма)
Генерация верхнего колонтитула страницы ошибок (подпрограмма)
Генерация нижнего колонтитула страницы ошибок (подпрограмма)
Программа FeedbackAdmin
Конфигурирование
Считывание требуемых файлов
Синтаксический анализ формы
Чтение файла конфигурации
Генерация форм команд
Утверждение сообщений
Удаление сообщений
Архивация сообщений
Смена паролей
Обработка недопустимых команд
Обновление файла запрещенных хостов
Определение массива конфигурации (подпрограмма)
Генерация HTML-заголовка страницы (подпрограмма)
Добавление сообщения в файл откликов (подпрограмма)
Архивация сообщений по месяцам (подпрограмма)
Архивация сообщений по количеству (подпрограмма)
Аутентификация администратора (подпрограмма)
Вывод ошибок (подпрограмма)
Генерация верхнего колонтитула страницы ошибок (подпрограмма)
Генерация нижнего колонтитула страницы ошибок (подпрограмма)
Идеи по усовершенствованию

Глава 9. Отслеживание доступа: PageControl
Возможности
Руководство по использованию
Доступ к программе
Настройка страниц
Переменные для использования в тегах-переменных
программы PageControl
Инсталляция
Настройка каталогов и файлов
Настройка переменных конфигурации
Программа
Конфигурирование
Считывание требуемых файлов
Инициализация констант
Проверка аутентификации
Определение затребованной страницы
Проверка специального запроса
Проверка достоверности запроса файла
Коды ошибок доступа
Предварительная обработка затребованной страницы
Установка имен вспомогательных файлов
Считывание информации о ссылках
Определение наличия у посетителя разрешения на доступ
Обновление файла регистрации доступа к узлу
Сообщение посетителям, которым было отказано в доступе
Обработка запросов на ссылки
Выборка и обновление значения счетчика на странице
Обеспечение доступа к переменным
Обработка затребованной страницы
Добавление необязательного нижнего колонтитула
Запись в файл ссылок (подпрограмма)
Идеи по усовершенствованию

Глава 10. Ограничение доступа: Authenticate
Возможности
Руководство по использованию
Инсталляция
Настройка каталогов и файлов
Настройка переменных конфигурации
Программа
Конфигурирование
Добавление требуемых файлов
Инициализация переменных
Синтаксический анализ формы и проверка наличия cookies
Обработка запроса проверки регистрации
Обработка начального запроса
Обработка запроса формы потерянного идентификатора
Обработка запроса формы регистрации
Обработка ответа из формы аутентификации
Обработка ответа из формы регистрации
Обработка ответа из формы потерянного идентификатора
Передача соответствующей страницы или формы
Пример подпрограммы регистрации
Инициализация переменных
Проверка факта заполнения обязательных полей
Проверка правильности заполнения полей
Защита программы паролем
Конфигурирование и использование подпрограммы auth_check()
Анализ кода подпрограммы
Идеи по усовершенствованию

Глава 11. Поддержка: подпрограммы
Возможности
Руководство по использованию
Преобразование IP-адресов: addr_to_host
Руководство по использованию
Анализ кода
Кодирование файла методом base64: base64_encode_file
Руководство по использованию
Анализ кода
Проверка кредитных карточек: cc_validate
Руководство по использованию
Анализ кода
Проверка адресов электронной почты: email_check
Руководство по использованию
Анализ кода
Выдача сообщения об ошибке: error
Руководство по использованию
Анализ кода
Форматирование дат: format_date
Руководство по использованию
Анализ кода
Преобразование IP-адресов в восьмисимвольные имена
файлов: ip_convert
Руководство по использованию
Анализ кода
Блокировка файлов: lock и unlock
Руководство по использованию
Анализ кода
Синтаксический анализ полей формы; parse_form
Руководство по использованию
Анализ кода
Синтаксический анализ файлов-шаблонов: parse_template
Руководство по использованию
Анализ кода
Кодирование информации: scramble и unscramble
Руководство по использованию
Анализ кода
Отправка сообщений и файлов по электронной почте: send_email
Руководство по использованию
Анализ кода
Кодирование файла: uuencode
Руководство по использованию
Анализ кода

Приложение А. Секреты отладки CGI-программ
Классификация ошибок
Предполетная проверка
Ошибки формата файла
Ошибки доступа к файлу
Синтаксические ошибки
Ошибки конфигурации
Ошибки формата вывода
Использование Perl-отладчика
Введение
Имитация CGI-вызова
Как увидеть невидимое

Приложение Б. Переменные CGI-среды
Доступ к массиву %ENV
Переменные
Идентификация посетителя
Информация о формах и cookie
Информация о сервере
Информация о запросе броузера
Информация о программе
Информация о директиве включения на стороне сервера

Приложение В. Безопасность CGI
Потенциальная опасность
Проблематичные участки
Предположения
Похищение формы
Самозащита
План действий

Приложение Г. HTTP-заголовки
Назначение заголовков
Использование HTTP-заголовков в CGI-программе
Полезные HTTP-заголовки
Основные заголовки
Оперативное обновление информации

Приложение Д. Ресурсы по CGI и Perl
Диалоговые ресурсы
Архивы CGI-программ
Ресурсы по CGI
Ресурсы по Perl
Телеконференции
Спецификации
Другие ресурсы

Приложение Е. Содержание компакт-диска
Что имеется на компакт-диске
Требования к аппаратным средствам
Инсталляция программного обеспечения
Использование программного обеспечения
Помощь пользователям и информация

Приложение Ж. "Художественная лицензия" на Perl
"Художественная лицензия"
Преамбула
Определения
Условия

Список литературы
Предметный указатель