
Год:
2007
Автор: Денис Колисниченко
Жанр:
Веб-дизайн и программирование
Издательство:
БХВ-Петербург
ISBN: 978-5-9775-0105-7
Серия:
Профессиональное программирование
Язык:
Русский
Формат: DjVu
Качество:
Отсканированные страницы
Количество
страниц: 411
Книга рассчитана на программистов, уже освоивших азы программирования на РНР. Приводятся сведения об отладке, анализе и оптимизации кода. Большая часть книги посвящена практическим моментам 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