Отзывы о книге | 5 |
|
Об авторах | 6 |
Крейг Пэтчетт | 6 |
Мэтт Райт | 6 |
|
Слова благодарности | 8 |
|
Предисловие | 10 |
|
Введение | 11 |
Любимое дело | 12 |
Крейг включается в работу | 12 |
Оазис Мэтта | 12 |
В поисках хорошей книги | 13 |
Ставим на голосование | 13 |
Вопрос времени | 14 |
|
Глава 1. Как пользоваться этой книгой | 17 |
Путь наименьшего сопротивления | 17 |
Кое-что для каждого | 18 |
Для беспомощных | 18 |
Для начинающих CGI/Perl-программистов | 18 |
Для имеющих опыт работы | 18 |
Для специалистов по CGI и Perl | 19 |
Общая картина | 19 |
Начинаем | 19 |
Программы | 19 |
Приложения | 21 |
Предварительные условия | 22 |
Навыки программирования | 22 |
Программное обеспечение | 23 |
Операционные системы | 23 |
Условные обозначения, принятые в книге | 24 |
Разнообразие | 24 |
Имена переменных | 24 |
Шрифты и шрифтовые выделения | 25 |
Номера строк | 25 |
Доменные имена | 25 |
Обращайтесь на наш узел | 25 |
Если возникнут проблемы | 26 |
Отказ от ответственности | 26 |
|
Глава 2. Использование CGI и Perl | 29 |
О 'протоколах и языках программирования | 29 |
Общий шлюзовой интерфейс (CGI) | 30 |
Получение информации с сервера | 30 |
Передача информации на сервер | 31 |
Perl | 31 |
Регулярные выражения | 31 |
Простота изучения | 33 |
Переносимость | 33 |
Интеграция CGI и Perl | 34 |
Где копать глубже | 34 |
|
Глава 3. Инсталляция CGI-программ | 35 |
Обзор | 35 |
Несколько допущений | 36 |
У вас есть доступ к Web-серверу | 36 |
У вас на сервере инсталлирован Perl | 36 |
У вас есть доступ к CGI-каталогу | 37 |
Вы знаете, как пересылать файлы на свой Web-сервер | 37 |
Инсталляция CGI-программ | 38 |
Серверы Unix | 38 |
Серверы Windows | 39 |
Серверы MacOS | 39 |
Инсталляция требуемых файлов | 40 |
Инсталляция вспомогательных файлов | 40 |
Поиск неисправностей | 40 |
Ошибка «403 Forbidden» | 40 |
Ошибка «404 Not Found» | 41 |
Ошибка «500 Server Error» | 41 |
|
Глава 4. Управление файлами: FileSeek | 45 |
Возможности | 45 |
Руководство по использованию | 49 |
Создание файла-шаблона верхнего колонтитула страницы | 50 |
Создание файла-шаблона нижнего колонтитула страницы | 52 |
Использование программы | 53 |
Инсталляция | 54 |
Настройка каталогов и файлов | 54 |
Настройка переменных конфигурации | 55 |
Программа | 57 |
Конфигурирование | 57 |
Считывание файлов | 58 |
Инициализация констант | 58 |
Синтаксический анализ строки запроса | 60 |
Проверка доступности каталогов | 61 |
Поиск файлов | 63 |
Получение содержимого каталога | 65 |
Получение информации о файлах | 66 |
Сортировка файлов | 67 |
Вывод результатов | 70 |
Форматирование размера файла (подпрограмма) | 76 |
Идеи по усовершенствованию | 77 |
|
Глава 5. Сбор входных данных: FormHandler | 81 |
Возможности | 81 |
Руководство по использованию | 86 |
Использование переменных конфигурации формы | 86 |
Создание формы | 93 |
Создание файлов-шаблонов | 97 |
Создание файла-шаблона регистрации | 98 |
Создание файла-шаблона электронной почты | 98 |
Создание файла-шаблона подтверждения | 99 |
Создание файла-шаблона отсутствующих страниц | 99 |
Бонус: работа со списком рассылки | 101 |
Добавление посетителей в список | 101 |
Передача сообщений по списку | 103 |
Создание шаблона сообщения | 104 |
Инсталляция | 105 |
Настройка каталогов и файлов | 106 |
Настройка переменных конфигурации | 107 |
Программа | 108 |
Конфигурирование | 108 |
Считывание требуемых файлов | 109 |
Проверка полномочий доступа | 109 |
Подготовка данных формы | 111 |
Проверка обязательных полей | 112 |
Инициализация переменных даты | 113 |
Обработка переменных адреса | 114 |
Передача результатов формы | 117 |
Передача ответа | 122 |
Обновление файла регистрации | 125 |
Обеспечение обратной связи с посетителем | 129 |
Проверка доступности каталога (подпрограмма) | 130 |
Выдача сообщений об ошибках (подпрограмма) | 132 |
Идеи по усовершенствованию | 134 |
|
Глава 6. Распространение информации: Broadcaster | 137 |
Возможности | 137 |
Руководство по использованию | 144 |
Создание файла данных | 144 |
Создание файла сообщения | 144 |
Использование программы | 145 |
Инсталляция | 149 |
Настройка каталогов и файлов | 149 |
Настройка переменных конфигурации | 151 |
Настройка файла конфигурации | 152 |
Программа | 155 |
Конфигурирование | 155 |
Инициализация переменных и подготовка процедуры вывода | 157 |
Проверка безопасности | 158 |
Генерация формы выбора файла | 159 |
Генерация формы выбора поля | 162 |
Генерация образца формы сообщения | 172 |
Передача сообщений | 179 |
Идеи по усовершенствованию | 198 |
|
Глава 7. Бизнес: Webshop | 201 |
Возможности | 201 |
Руководство по использованию | 208 |
Создание файлов баз данных | 209 |
Создание страницы ссылок | 213 |
Создание шаблонов | 214 |
Создание страниц-шаблонов | 216 |
Создание шаблонов сообщений электронной почты | 223 |
Инсталляция | 225 |
Настройка каталогов и файлов | 225 |
Настройка переменных конфигурации | 226 |
Настройка файла конфигурации | 227 |
Программа | 230 |
Конфигурирование | 230 |
Считывание требуемых файлов | 230 |
Загрузка файла конфигурации | 231 |
Проверка наличия просроченных заказов | 232 |
Идентификация посетителя | 233 |
Обработка запроса информации о товаре | 235 |
Обработка запроса на покупку товара | 236 |
Обработка запроса на просмотр заказа | 239 |
Обработка запроса счёта-фактуры | 240 |
Обработка запроса пустой покупательской тележки | 240 |
Обработка запроса расчёта | 241 |
Обработка недействительного запроса | 243 |
Создание нового пользователя (подпрограмма) | 243 |
Получение информации о товарах (подпрограмма) | 245 |
Корректировка срока действия заказа (подпрограмма) | 246 |
Построение таблицы покупок (подпрограмма) | 247 |
Синтаксический анализ файла-шаблона (подпрограмма) | 257 |
Выдача сообщения об ошибке (подпрограмма) | 261 |
Идеи по усовершенствованию | 266 |
|
Глава 8. Обратная связь: Feedback | 269 |
Возможности | 269 |
Возможности программы Feedback | 270 |
Возможности программы FeedbackAdmin | 273 |
Руководство по использованию | 276 |
Создание страницы ввода отклика | 277 |
Создание страницы откликов | 278 |
Создание страницы архива | 279 |
Создание файла идентификаторов сообщений | 279 |
Создание файла запрещённых слов | 279 |
Использование тегов-переменных в файлах-шаблонах | 280 |
Создание шаблонов страниц | 280 |
Создание шаблонов сообщений электронной почты | 285 |
Создание страницы администратора | 287 |
Использование программы FeedbackAdmin | 288 |
Инсталляция | 291 |
Настройка каталогов и файлов | 291 |
Настройка переменных конфигурации | 292 |
Настройка файла конфигурации | 293 |
Программа Feedback | 297 |
Конфигурирование | 299 |
Инициализация констант | 299 |
Считывание требуемых файлов | 299 |
Синтаксический анализ формы | 300 |
Чтение файла конфигурации | 300 |
Получение и форматирование текущих значений даты и времени | 300 |
Проверка запрещённых хостов | 301 |
Проверка элементов-дубликатов | 302 |
Проверка заполнения обязательных полей | 303 |
Проверка наличия запрещённых слов | 304 |
Проверка наличия запрещённого HTML-тега | 307 |
Обработка сообщения | 308 |
Отправка ответа посетителю | 312 |
Отправка сообщения администратору | 313 |
Архивация сообщения | 314 |
Обновление файла регистрации | 320 |
Вывод страницы подтверждения | 321 |
Получение идентификатора текущего сообщения (подпрограмма) | 323 |
Обновление файла идентификатора сообщения (подпрограмма) | 323 |
Вывод сообщения об ошибках (подпрограмма) | 324 |
Генерация верхнего колонтитула страницы ошибок (подпрограмма) | 331 |
Генерация нижнего колонтитула страницы ошибок (подпрограмма) | 331 |
Программа FeedbackAdmin | 332 |
Конфигурирование | 332 |
Считывание требуемых файлов | 333 |
Синтаксический анализ формы | 333 |
Чтение файла конфигурации | 333 |
Генерация форм команд | 334 |
Утверждение сообщений | 343 |
Удаление сообщений | 346 |
Архивация сообщений | 348 |
Смена паролей | 351 |
Обработка недопустимых команд | 353 |
Обновление файла запрещённых хостов | 354 |
Определение массива конфигурации (подпрограмма) | 354 |
Генерация HTML-заголовка страницы (подпрограмма) | 356 |
Добавление сообщения в файл откликов (подпрограмма) | 356 |
Архивация сообщений по месяцам (подпрограмма) | 357 |
Архивация сообщений по количеству (подпрограмма) | 359 |
Аутентификация администратора (подпрограмма) | 361 |
Вывод ошибок (подпрограмма) | 362 |
Генерация верхнего колонтитула страницы ошибок (подпрограмма) | 368 |
Генерация нижнего колонтитула страницы ошибок (подпрограмма) | 368 |
Идеи по усовершенствованию | 369 |
|
Глава 9. Отслеживание доступа: PageControl | 371 |
Возможности | 371 |
Руководство по использованию | 376 |
Доступ к программе | 376 |
Настройка страниц | 378 |
Переменные для использования в тегах-переменных программы PageControl | 380 |
Инсталляция | 382 |
Настройка каталогов и файлов | 382 |
Настройка переменных конфигурации | 383 |
Программа | 387 |
Конфигурирование | 387 |
Считывание требуемых файлов | 388 |
Инициализация констант | 388 |
Проверка аутентификации | 389 |
Определение затребованной страницы | 390 |
Проверка специального запроса | 390 |
Проверка достоверности запроса файла | 393 |
Коды ошибок доступа | 393 |
Предварительная обработка затребованной страницы | 394 |
Установка имён вспомогательных файлов | 395 |
Считывание информации о ссылках | 397 |
Определение наличия у посетителя разрешения на доступ | 399 |
Обновление файла регистрации доступа к узлу | 400 |
Сообщение посетителям, которым было отказано в доступе | 402 |
Обработка запросов на ссылки | 403 |
Выборка и обновление значения счётчика на странице | 404 |
Обеспечение доступа к переменным | 408 |
Обработка затребованной страницы | 409 |
Добавление необязательного нижнего колонтитула | 418 |
Запись в файл ссылок (подпрограмма) | 420 |
Идеи по усовершенствованию | 421 |
|
Глава 10. Ограничение доступа: Authenticate | 423 |
Возможности | 423 |
Руководство по использованию | 427 |
Инсталляция | 429 |
Настройка каталогов и файлов | 429 |
Настройка переменных конфигурации | 430 |
Программа | 439 |
Конфигурирование | 439 |
Добавление требуемых файлов | 441 |
Инициализация переменных | 441 |
Синтаксический анализ формы и проверка наличия cookies | 442 |
Обработка запроса проверки регистрации | 443 |
Обработка начального запроса | 444 |
Обработка запроса формы потерянного идентификатора | 447 |
Обработка запроса формы регистрации | 447 |
Обработка ответа из формы аутентификации | 447 |
Обработка ответа из формы регистрации | 455 |
Обработка ответа из формы потерянного идентификатора | 460 |
Передача соответствующей страницы или формы | 463 |
Пример подпрограммы регистрации | 465 |
Инициализация переменных | 466 |
Проверка факта заполнения обязательных полей | 466 |
Проверка правильности заполнения полей | 467 |
Защита программы паролем | 469 |
Конфигурирование и использование подпрограммы auth_check() | 470 |
Анализ кода подпрограммы | 470 |
Идеи по усовершенствованию | 472 |
|
Глава 11. Поддержка: подпрограммы | 475 |
Возможности | 475 |
Руководство по использованию | 477 |
Преобразование IP-адресов: addr_to_host | 477 |
Руководство по использованию | 478 |
Анализ кода | 478 |
Кодирование файла методом base64: base64_encode_file | 480 |
Руководство по использованию | 481 |
Анализ кода | 482 |
Проверка кредитных карточек: cc_validate | 485 |
Руководство по использованию | 485 |
Анализ кода | 486 |
Проверка адресов электронной почты: email_check | 490 |
Руководство по использованию | 490 |
Анализ кода | 491 |
Выдача сообщения об ошибке: error | 492 |
Руководство по использованию | 494 |
Анализ кода | 496 |
Форматирование дат: format_date | 498 |
Руководство по использованию | 498 |
Анализ кода | 501 |
Преобразование IP-адресов в восьмисимвольные имена файлов: ip_convert | 506 |
Руководство по использованию | 507 |
Анализ кода | 508 |
Блокировка файлов: lock и unlock | 510 |
Руководство по использованию | 510 |
Анализ кода | 512 |
Синтаксический анализ полей формы: parse_form | 517 |
Руководство по использованию | 517 |
Анализ кода | 519 |
Синтаксический анализ файлов-шаблонов: parse_template | 522 |
Руководство по использованию | 524 |
Анализ кода | 526 |
Кодирование информации: scramble и unscramble | 529 |
Руководство по использованию | 529 |
Анализ кода | 530 |
Отправка сообщений и файлов по электронной почте: send_email | 534 |
Руководство по использованию | 534 |
Анализ кода | 539 |
Кодирование файла: uuencode | 553 |
Руководство по использованию | 554 |
Анализ кода | 555 |
|
Приложение А. Секреты отладки CGI-программ | 559 |
Классификация ошибок | 559 |
Предполётная проверка | 560 |
Ошибки формата файла | 560 |
Ошибки доступа к файлу | 560 |
Синтаксические ошибки | 561 |
Ошибки конфигурации | 562 |
Ошибки формата вывода | 562 |
Использование Perl-отладчика | 562 |
Введение | 563 |
Имитация CGl-вызова | 565 |
Как увидеть невидимое | 566 |
|
Приложение Б. Переменные CGI-среды | 569 |
Доступ к массиву %ENV | 569 |
Переменные | 572 |
Идентификация посетителя | 572 |
Информация о формах и cookie | 573 |
Информация о сервере | 574 |
Информация о запросе броузера | 575 |
Информация о программе | 576 |
Информация о директиве включения на стороне сервера | 576 |
|
Приложение В. Безопасность CGI | 579 |
Потенциальная опасность | 579 |
Проблематичные участки | 580 |
Предположения | 580 |
Похищение формы | 580 |
Самозащита | 581 |
План действий | 585 |
|
Приложение Г. HTTP-заголовки | 587 |
Назначение заголовков | 587 |
Использование HTTP-заголовков в CGI-программе | 588 |
Полезные HTTP-заголовки | 588 |
Основные заголовки | 588 |
Оперативное обновление информации | 591 |
|
Приложение Д. Ресурсы по CGI и Perl | 595 |
Диалоговые ресурсы | 595 |
Архивы CGI-программ | 595 |
Ресурсы по CGI | 596 |
Ресурсы по Perl | 597 |
Телеконференции | 598 |
Спецификации | 598 |
Другие ресурсы | 598 |
|
Приложение Е. Содержание компакт-диска | 599 |
Что имеется на компакт-диске | 599 |
Требования к аппаратным средствам | 600 |
Инсталляция программного обеспечения | 600 |
Использование программного обеспечения | 600 |
Помощь пользователям и информация | 601 |
|
Приложение Ж. «Художественная лицензия» на Perl | 603 |
«Художественная лицензия» | 603 |
Преамбула | 603 |
Определения | 603 |
Условия | 604 |
|
Список литературы | 607 |
|
Предметный указатель | 609 |