.387 Глава 28. Загрузка файлов на сервер ............................................ .........................389 Multipart-формы................................................................. ..................................................390 Тэг выбора файла ............................................................... .................................................390 Закачка файлов и безопасность .................................................. ........................................391 Поддержка закачки в PHP......................................................... ..........................................392 Простые имена полей закачки..................................................... ...................................392 Пример: фотоальбом.............................................................. .........................................393 Сложные имена полей ............................................................ ........................................395 Проблемы со сложными именами.................................................... ..............................396 Глава 29. Модульность программы. Написание "библиотекаря"...................... 397 Наши требования................................................................. ................................................397 Библиотекарь ................................................................... ....................................................398 Работа с библиотекарем ......................................................... .............................................404 Автоматическое подключение библиотекаря......................................... ...........................405 Способ первый: использование auto_prepend_file ................................. ......................406 Способ второй: установка обработчика Apache..................................... .......................407 Обработчики Apache.............................................................. .............................................407 Перехват обращений к несуществующим страницам .................................. ................411 Связывание PHP с другим расширением ............................................ ..........................412 Решение проблемы зацикливания обработчика ...................................... .....................413 Глава 30. Код и шаблон страницы ................................................ ..........................415 Идеология....................................................................... .....................................................416 Двухуровневая схема............................................................. ..............................................417 Шаблон страницы ................................................................ ...........................................417 Генератор данных................................................................ ............................................419 Взаимодействие генератора данных и шаблона ..................................... ......................421 Содержание XIII Недостатки...................................................................... ................................................422 Трехуровневая схема ............................................................ ...............................................423 Шаблон страницы ................................................................ ...........................................423 Диаграммы двухуровневой и трехуровневой моделей ................................ .................425 Интерфейс....................................................................... ................................................426 Ядро............................................................................ .....................................................427 Проверка корректности входных данных............................................ ..........................428 Шаблонизатор.................................................................... .................................................429 Традиционное построение страниц................................................. ...............................431 Что такое шаблонизатор? ........................................................ .......................................433 Описание шаблонизатора ......................................................... ......................................434 Обработчик Apache для шаблонизатора ............................................ ...........................441 Главный модуль шаблонизатора.................................................... ................................443 "Перехват" выходного потока..................................................... ...................................