|
Колисниченко Д. Профессиональное программирование на PHPГод:
2007 Книга рассчитана на программистов, уже освоивших азы программирования на РНР. Приводятся сведения об отладке, анализе и оптимизации кода. Большая часть книги посвящена практическим моментам PHP-разработки: модификации популярных систем управления контентом и форумов, написанию сценариев-кирпичиков, из которых можно "выстроить" собственный сайт или портал. Для удобства читателей исходные коды примеров помещены на прилагаемом диске. Рассматриваются возможности объектно-ориентированного программирования на РНР. Отдельное внимание уделено продуктам компании Zend: Zend Studio, Zend Optimizer, Zend Guard. Книга предназначена для PHP-программистов. Содержание: Глава 3. Тестирование PHP-сценариев ...-----------------.----------.----------.------------...32 3.1. Программа работает, но не так, как нам нужно..........................................32 3.2. "Самодельные" точки останова....................................................................33 3.3. Система автоматического тестирования......................................................34 3.4. Директива error_reporting.............................................................................38 ЧАСТЬ II. БЕЗОПАСНОЕ ПРОГРАММИРОВАНИЕ НА PHP----------------41 Глава 4. Директива register_globals,...—.....—.....----------.........------------.----------..43 4.1. Почему опасно использовать register_globals.........................................43 4.2. Что делать, если register_globals отключена...............................................47 Глава 5. Безопасность веб-приложений_____________.....------..........—...........—.....50 5.1. Сайт в опасности............................................................................................50 5.2. Два самых распространенных метода взлома.............................................51 5.3. Межсайтовый скриптинг...............................................................................52 5.4. SQL-инъекции.................................................................................................53 5.5. Флуд.................................................................................................................58 Глава 6. Аутентификация на PHP. Сессии---------.—......................................60 6.1. Для чего нужны сессии..................................................................................60 6.2. Как работает механизм сессий......................................................................61 6.3. Обход Cookies.................................................................................................63 6.4. Сценарий аутентификации............................................................................63 Глава 7. Система защиты от автоматических регистрации---------------........69 7.1. Необходимость защиты.................................................................................69 7.2. Алгоритм работы системы защиты..............................................................69 7.3. Реализация системы.......................................................................................70 7.4. Усовершенствование системы......................................................................73 ЧАСТЬ III. РАБОТА С БАЗОЙ ДАННЫХ____________________________________________________75 Глава 8. Основы SQL ........................................................................................77 8.1. Немного истории............................................................................................77 8.2. Преимущества SQL........................................................................................78 8.3. Как выглядят запросы....................................................................................79 8.4. Что такое база данных...................................................................................79 8.5. Создание таблиц.............................................................................................81 8.6. Добавление записей в таблицу......................................................................85 8.7. Обновление записей.......................................................................................85 8.8. Выборка записей............................................................................................87 8.9. Удаление записей...........................................................................................88 8.10. Встроенные функции...................................................................................88 8.11. Группировка записей. Сложные запросы..................................................89 Глава 9. Серверы баз данных MySQL и SQLite............................................93 9.1. MySQL vs SQLite: что лучше........................................................................93 9.2. Функции для работы с MySQL.....................................................................95 9.2.1. Подключение к серверу MySQL............................................................95 9.2.2. Несколько MySQL-соединений..............................................................97 9.2.3. Передача запросов серверу.....................................................................98 9.2.4. Работа с базой данных...........................................................................102 9.3. Функции для работы с SQLite.....................................................................103 9.3.1. Открытие базы данных.........................................................................103 9.3.2. Передача запросов.................................................................................104 9.3.3. Работа с результатом запроса...............................................................104 9.3.4. Список PHP-функций для работы с SQLite........................................105 Глава 10. Полезные приемы при работе с базой данных.........................108 10.1. Выбор кодировки.......................................................................................108 10.2. Сортировка: вывод новинок......................................................................109 10.3. Постраничный вывод таблицы.................................................................109 НАСТЬ IV. ФОРУМЫ И CMS, НАПИСАННЫЕ НА PHP-----------------------115 Глава 11. Форум phpBB...............................................—................................117 11.1. Самый популярный форум........................................................................117 11.2. Установка форума......................................................................................118 11.3. Установка языковых пакетов....................................................................119 11.4. Панель администрирования форумом......................................................119 11.4.1. Вход в панель.......................................................................................119 11.4.2. Управление форумами........................................................................120 11.4.3. Общие настройки форума...................................................................125 11.4.4. Настройка внешнего вида форума.....................................................127 11.4.6. Чистка форумов...................................................................................129 11.4.7. Управление пользователями...............................................................130 11.4.7.1. "Черные" списки...........................................................................130 11.4.7.2. Запрещенные имена......................................................................132 11.4.7.3. Активация, присвоение званий и удаление пользователей......132 11.4.7.4. Права модератора..........................................................................134 11.4.8. Массовая рассылка сообщений..........................................................135 11.4.9. Ограничение доступа к форуму.........................................................135 11.5. Полезные советы........................................................................................137 11.5.1. Изменение названий полей.................................................................137 11.5.2. Поздравление пользователей форума с Днем рождения.................140 11.5.3. Расширение возможностей форума...................................................143 11.5.4. Вывод последних тем форума............................................................145 11.5.5. Сценарий "Кто на сайте".....................................................................148 Глава 12. Система управления содержимым сайта PHP-Nuke................151 12.1. Управление содержимым сайта................................................................151 12.2. Установка PHP-Nuke..................................................................................154 12.3. Блоки...........................................................................................................157 12.4. Создание модулей......................................................................................160 12.4.1. Простой модуль...................................................................................160 12.4.2. Активизация модуля............................................................................164 12.4.3. Работа с базой данных.........................................................................166 12.5. Некоторые полезные модули для PHP-Nuke...........................................167 Глава 13. Система управления контентом Slaed........................................172 13.1. Знакомство со Slaed...................................................................................172 13.2. Установка Slaed..........................................................................................172 13.3. Базовая настройка Slaed............................................................................176 13.4. Дополнительные темы оформления.........................................................181 13.5. Модули для Slaed.......................................................................................182 13.6. Создание собственного модуля................................................................184 ЧАСТЬ V. ТОНКОСТИ ПРОГРАММИРОВАНИЯ НА PHP...................189 Глава 14. Загрузка файлов на сервер............................................................191 14.1. Что нужно знать о загрузке файлов на сервер.........................................191 14.2. Реализация загрузки файла........................................................................194 14.3. Загрузка нескольких файлов.....................................................................196 14.4. Проблемы при загрузке файлов................................................................198 Глава 15. Отправка и прием почты..............................................................199 15.1. Отправка почты средствами PHP — функция mail()..............................199 15.2. Отправка писем с вложениями — класс HtmlMimeMail........................201 15.2.1. Отправка сообщения...........................................................................201 15.2.2. Проблемы при отправке сообщения..................................................205 15.2.3. ММЕ-типы..........................................................................................206 15.3. Получение писем по протоколу РОРЗ......................................................207 Глава 16. Работа с RSS: получаем новости на сайт....................................212 16.1. Краткие сведения о RSS............................................................................212 16.2. Формат RSS-файла.....................................................................................213 16.3. Написание сценария импорта новостей...................................................215 16.4. Подключение файла import.php к сайту...................................................218 16.5. Создание "граббера" новостей..................................................................219 Глава 17. Работа с сетевыми сокетами в PHP.............................................223 17.1. Еще раз о том, что такое сокет..................................................................223 17.2. Использование сокетов..............................................................................224 17.3. Пример использования сокетов................................................................225 17.4. Блокирующий и неблокирующий режимы сокета..................................228 Глава 18. Использование FTP-функций.......................................................229 18.1. Функции для работы с FTP.......................................................................229 18.2. Примеры использования FTP-функций...................................................233 Глава 19. Мультимедиа в PHP.......................................................................236 19.1. Библиотека GD...........................................................................................236 19.1.1. Получение информации об изображении.........................................236 19.1.2. Конвертирование графических форматов.........................................240 19.1.3. Вывод текста поверх картинки...........................................................242 19.1.4. Прозрачность.......................................................................................245 19.2. Изменение размера изображения........................:....................................245 19.3. Создание водяных знаков..........................................................................247 19.4. Расширения для работы с МРЗ.................................................................249 19.4.1. Формат МРЗ.........................................................................................249 19.4.2. Библиотека PEAR................................................................................250 19.4.3. Вывод ЮЗ-тегов..................................................................................251 19.4.4 Редактирование ГОЗ-тегов...................................................................253 19.4.5. Удаление тега.......................................................................................253 Глава 20. Интеграция галереи Livejournal и вашего сайта.....................255 20.1. Что такое "Живой" журнал........................................................................255 20.2. Интеграция фотогалереи LiveJournal и сайта..........................................256 20.3. Настройка внешнего вида галереи...........................................................260 Глава 21. Протокол SOAP и распределенные системы.............................263 21.1. Что это такое...............................................................................................263 21.2. Представление вызовов и ответов в формате XML................................265 21.3. MS SOAP Toolkit 3.0..................................................................................268 21.4. WSDL-файлы..............................................................................................269 21.4.1. Раздел Schema......................................................................................269 21.4.2. Раздел Message.....................................................................................273 21.4.3. Раздел PortType....................................................................................273 21.4.4. Раздел Binding......................................................................................275 21.4.5. Раздел Service.......................................................................................276 21.5. Класс SoapClient..........................................................................................277 21.5.1. Общие сведения...................................................................................277 21.5.2. Конструктор_construct)...................................................................277 21.5.3. Методы класса SoapClient..................................................................278 21.5.3.1. Метод саЩ)....................................................................................278 21.5.3.2. Mvroj\doRequest().........................................................................279 21.5.3.3. Метод getFunctions().....................................................................279 21.5.3.4. Метод getLastRequestQ.................................................................279 21.5.3.5. Метод getLastRequestHeadersQ....................................................280 21.5.3.6. Метод getLastResponse()...............................................................280 21.5.3.7. Метод getLastResponseHeaders().................................................280 21.5.3.8. Метод getTypes()............................................................................280 21.6. Класс SoapFault..........................................................................................281 21.7. Класс SoapHeader.......................................................................................283 21.8. Класс SoapParam........................................................................................285 21.9. Класс SoapServer........................................................................................286 21.9.1. Конструктор класса.............................................................................286 21.9.2. Методы класса.....................................................................................287 21.9.2.1. Метод addFunction().....................................................................287 21.9.2.2. Мегод/öiiftO..................................................................................288 21.9.2.3. Метод getFunctionsQ.....................................................................288 21.9.2.4. Метод handle()...............................................................................289 21.9.2.5. Метод setClass()............................................................................290 21.9.2.6. Метод setPersistence().................................................................291 Глава 22. Регулярные выражения.................................................................292 22Л. Нужно что-то найти..................................................................................292 22.2. Язык регулярных выражений RegEx........................................................293 22.5. Управляющие конструкции......................................................................295 22.5.1. Квантификаторы..................................................................................295 22.5.2. Альтернативный оператор |................................................................296 22.5.3. Скобки..................................................................................................296 22.6. Псевдосимволы..........................................................................................296 22.7. Практическое использование RegEx-функций........................................297 ЧАСТЬ VI. СЛОЖНЫЕ ПРОЕКТЫ.............................................................301 Глава 23. Сложные проекты. Шаблоны.......................................................303 23.1. Организация файлов и каталогов проекта...............................................303 23.2. Выносим параметры в отдельный файл...................................................306 23.3. Подключение дополнительных файлов...................................................307 23.3.1. Инструкции include и require..............................................................307 23.3.2. Альтернативный способ подключения сценариев...........................308 23.3.3. Инструкции includejDnce и require_опсе..........................................310 23.4. Шаблоны.....................................................................................................310 Глава 24. Mногоязычность в PHP.................................................................315 24.1. Многоязычность как средство увеличения посещаемости....................315 24.2. Как реализовать..........................................................................................316 24.2.1. Перевод статической части.................................................................316 24.2.2. Перевод страниц сайта........................................................................320 Глава 25. Шаблонизатор Smarty....................................................................323 25.1. Что такое Smarty.........................................................................................323 25.2. Установка Smarty.......................................................................................324 25.3. Создание setup.php.....................................................................................326 25.4. Разработка шаблонов Smarty.....................................................................328 25.4.1. Комментарии в шаблонах...................................................................328 25.4.2. Переменные в Smarty..........................................................................328 25.4.3. Файлы конфигурации шаблонов........................................................329 25.4.4. Служебная переменная {$smarty}......................................................331 25.4.5. Модификаторы переменных...............................................................332 25.4.6. Стандартные (встроенные) функции Smarty.....................................335 25.4.6.1. Функции {include} и {insert}........................................................335 25.4.6.2. Функция {foreach}..........................................................................336 25.4.6.3. Функции {if}, {elseif}, {else}.........................................................337 25.4.6.4. Функция {capture}.........................................................................339 25.4.6.5. Функция {php}...............................................................................339 25.4.6.6. Функция {strip}..............................................................................339 25.4.7. Пользовательские функции Smarty....................................................340 25.4.7.1. Функция {assign}.....................................................«.....................340 25.4.7.2. Функция {cycle}.............................................................................340 25.4.7.3. Функция {fetch}.............................................................................340 25.4.7.3. Функции {htmljcheckboxes} и {htmljradios}...............................341 25.4.7.4. Функция {htmljmage}..................................................................342 25.4.7.5. Функция {html^selectjdate}..........................................................342 25.4.7.6. Функция {html_selectjime}..........................................................344 25.4.7.7. Функция {htmljable}....................................................................344 25.5. Smarty для программиста..........................................................................345 25.5.1. Специальные переменные..................................................................345 25.5.2. Полезные методы класса Smarty........................................................347 ЧАСТЬ VII. ТЕОРИЯ И ПРАКТИКА ПРОФЕССИОНАЛЬНОГО PHP-ПРОГРАММИРОВАНИЯ...............................................349 Глава 26. Объектно-ориентированное программирование в РНР..........351 26.1. Основы ООП...............................................................................................351 26.2. Классы й объекты.......................................................................................353 26.3. Конструкторы и деструкторы класса.......................................................355 26.4. Наследование классов. Полиморфизм.....................................................356 26.5. Возможности РНР 5...................................................................................357 26.5.1. Область видимости членов класса.....................................................357 26.5.2. Абстрактные классы и методы...........................................................358 26.5.3. Служебное слово final.........................................................................359 26.5.4. Клонирование объектов......................................................................360 26.5.5. Обработка исключительных ситуаций..............................................361 26.5.6. Константы-члены класса.....................................................................362 26.5.7. Статические члены класса..................................................................362 26.5.8. Оператор instanceof.............................................................................363 26.5.9. Итераторы.............................................................................................363 Глава 27. Продукты компании Zend.............................................................364 27.1. Zend Engine.................................................................................................364 27.2. Zend Platform...............................................................................................364 27.3. Zend Optimizer............................................................................................367 27.4. Zend Guard...................................................................................................367 27.5. Zend Studio..................................................................................................368 Глава 28. Пишем коммерческий сценарий..................................................370 28.1. Zend Guard: "за" и "против".......................................................................370 28.1.1. Установка Zend Guard.........................................................................371 28.1.2. Быстрая защита сценария...................................................................373 28.1.3. Дополнительные возможности защиты.............................................376 28.1.4. Как защищать PHP-приложения........................................................378 28.2. Zend Studio..................................................................................................379 28.2.1. Установка Zend Studio.........................................................................379 28.2.2. Автодополнение кода..........................................................................380 28.2.3. Проверка синтаксиса...........................................................................380 28.2.4. Отладка.................................................................................................381 28.2.5. Меню Tools и Project...........................................................................382 28.2.6. Файловый менеджер, инспектор кода и средство для работы с БД...................................................................................382 28.2.7. Информационные окна ZDE...............................................................383 28.2.8. Встроенный FTP-клиент.....................................................................384 28.2.9. Какую версию покупать: Standard или Professional.........................385 Заключение.........................................................................................................387 Приложение. Описание компакт-диска........................................................389 |
Loading
|