Разработка веб-приложений с помощью PHP и MySQL
Люк Веллинг, Лора Томсон
Исчерпывающее учебное пособие по разработке веб-приложений, управляемых базами данных, с использованием PHP и MySQL!
Эта книга предназначена для тех, кто знаком с основами HTML и ранее разрабатывал программы на современных языках программирования, но, возможно, не занимался программированием для Веб или не использовал реляционные базы данных.
В ней подробно описано применение последних версий PHP и MySQL для построения крупных коммерческих Web-сайтов. Основное внимание в книге уделено реальным приложениям. Здесь рассматриваются как простые интерактивные системы приема заказов, так и различные аспекты электронных систем продажи и безопасности во взаимосвязи с созданием реального Web-сайта. Подробно описаны все стадии разработки множества типовых проектов на PHP и MySQL, в числе которых служба веб-почты, приложение поддержки Web-форумов и электронный книжный магазин. Заслуживают особого внимания главы, посвященные объектно-ориентированному программированию на PHP, динамической генерации документов, доступу к веб-службам с помощью XML и SOAP и созданию приложений Web 2.0 с помощью Ajax.
Основное отличие этого издания от предыдущего состоит в том, что материалы и весь исходный код полностью переписаны для новых версий PHP 5.3 и MySQL 5.1.
Книга ориентирована на профессиональных разработчиков, но будет полезной и начинающим.
PHP и MySQL представляют собой популярные технологии с открытым исходным кодом, которые практически идеально подходят для быстрой и эффективной разработки веб-приложений, управляемых базами данных. PHP - это мощный язык написания сценариев, специально созданный для того, чтобы предоставить разработчикам все возможности по быстрому построению веб-приложений. MySQL является высокопроизводительной и надежной системой управления базами данных, которая, с одной стороны, хорошо интегрируется с PHP и, с другой стороны, ориентирована на реализацию динамических Интернет-приложений.
В книге продемонстрировано, как эти два инструмента используются для создания высокоэффективных и, в то же время, интерактивных веб-приложений. Здесь представлено исчерпывающее описание языка PHP, а также рассмотрены вопросы настройки и работы с базами данных MySQL и особенности взаимодействия PHP-сценариев с базами данных и серверами.
В эту практическую, изобилующую реальными примерами книгу включено множество приложений, на основе которых демонстрируется решение общих задач: методика аутентификации посетителей на сайте; разработка полнофункциональной покупательской тележки; динамическая генерация изображений и PDF-документов; отправка и обработка электронной почты; организация дискуссионных форумов; подключение к веб-службам с использованием XML и разработка приложений Web 2.0 с интерактивностью, обеспечиваемой Ajax.
Четвертое издание книги претерпело существенные изменения - весь материал был тщательно пересмотрен и дополнен, и теперь он полностью соответствует новым версиям PHP 5.3 и MySQL 5.1.
Издательство: Вильямс, 2010 г.
ISBN 978-5-8459-1574-0, 978-0-672-32916-6
Количество страниц: 848.
Содержание книги «Разработка веб-приложений с помощью PHP и MySQL»:
- 25 Об авторах
- 25 О соавторах
- 26 Благодарности
- 26 От издательства
- 27 Введение
- 27 Для чего следует прочесть эту книгу
- 28 Чего можно добиться, используя эту книгу
- 28 Что такое PHP?
- 29 Что такое MySQL?
- 29 Для чего следует использовать PHP и MySQL?
- 30 Некоторые преимущества PHP
- 30 Производительность
- 31 Масштабируемость
- 31 Интеграция с базами данных
- 31 Встроенные библиотеки
- 31 Стоимость
- 31 Простота изучения PHP
- 31 Поддержка объектно-ориентированного программирования
- 32 Переносимость
- 32 Гибкость подхода к разработке
- 32 Исходный код
- 32 Доступность поддержки и документации
- 32 Что нового в версии PHP 5?
- 33 Ключевые средства PHP 5.3
- 34 Некоторые преимущества MySQL
- 34 Производительность
- 34 Низкая стоимость
- 35 Простота использования
- 35 Переносимость
- 35 Исходный код
- 35 Доступность поддержки
- 35 Что нового в версии MySQL 5?
- 36 Как построена эта книга
- 36 Заключение
- 37 Часть I. Использование PHP
- 38 Глава 1. Введение в PHP
- 39 Предварительное условие: доступ к PHP
- 39 Пример приложения: “Автозапчасти от Вована”
- 39 Форма заказа
- 41 Обработка формы
- 41 Встраивание PHP в HTML
- 42 PHP-дескрипторы
- 43 Операторы PHP
- 44 Пробелы
- 44 Комментарии
- 45 Добавление динамического содержимого
- 45 Вызов функций
- 46 Использование функции date()
- 46 Доступ к переменным формы
- 46 Короткие, средние и длинные переменные
- 49 Конкатенация строк
- 50 Переменные и литералы
- 50 Идентификаторы
- 51 Типы переменных
- 51 Типы данных PHP
- 52 Степень типизации
- 52 Приведение типов
- 53 Переменные переменных
- 53 Объявление и использование констант
- 54 Область действия переменных
- 55 Использование операций
- 55 Арифметические операции
- 56 Строковые операции
- 56 Операции присваивания
- 59 Операции сравнения
- 60 Логические операции
- 60 Поразрядные операции
- 61 Другие операции
- 63 Вычисление итоговых сумм для формы
- 64 Приоритет и ассоциативность: вычисление выражений
- 66 Использование функций для работы с переменными
- 66 Проверка и установка типов переменных
- 67 Проверка состояния переменных
- 68 Повторная интерпретация переменных
- 68 Принятие решений на основе условий
- 68 Операторы if
- 69 Блоки кода
- 69 Операторы else
- 70 Операторы elseif
- 71 Операторы switch
- 72 Сравнение разных условных операторов
- 73 Повторение действий с помощью итераций
- 74 Циклы while
- 75 Циклы for и foreach
- 76 Циклы do..while
- 77 Выход из управляющей структуры или сценария
- 77 Использование альтернативного синтаксиса управляющих структур
- 77 Использование declare
- 78 Что дальше
- 79 Глава 2. Хранение и выборка данных
- 79 Сохранение данных для дальнейшего их использования
- 80 Сохранение и выборка заказов в компании «Автозапчасти от Вована»
- 81 Обработка файлов
- 81 Открытие файла
- 81 Режимы файлов
- 82 Использование функции fopen() для открытия файла
- 84 Открытие файлов через FTP или HTTP
- 84 Возможные проблемы при открытии файлов
- 87 Запись в файл
- 87 Параметры функции fwrite()
- 87 Форматы файлов
- 88 Закрытие файла
- 90 Считывание из файла
- 90 Открытие файла для чтения: функция fopen()
- 91 Как узнать, где остановиться: функция feof()
- 91 Построчное чтение: функции fgets(), fgetss() и fgetcsv()
- 92 Чтение всего файла: функции readfile(), fpassthru() и file()
- 93 Чтение символа: функция fgetc()
- 94 Чтение строк произвольной длины: функция fread()
- 94 Другие полезные файловые функции
- 94 Проверка, существует ли файл: функция file_exists()
- 94 Выяснение размера файла: функция filesize()
- 94 Удаление файла: функция unlink()
- 95 Перемещение внутри файла: функции rewind(), fseek() и ftell()
- 96 Блокирование файлов
- 97 Лучший способ: системы управления базами данных
- 97 Проблемы, связанные с использованием двумерных файлов
- 98 Как эти проблемы устраняются с помощью систем управления реляционными базами данных
- 99 Дополнительные источники информации
- 99 Что дальше
- 100 Глава 3. Использование массивов
- 101 Что такое массив
- 101 Численно-индексированные массивы
- 102 Инициализация численно-индексированных массивов
- 102 Доступ к содержимому массива
- 103 Использование циклов для доступа к массиву
- 104 Массивы с различными индексами
- 104 Инициализация массива
- 104 Доступ к элементам массива
- 104 Использование циклов
- 106 Операции для работы с массивами
- 107 Многомерные массивы
- 110 Сортировка массивов
- 110 Использование функции sort()
- 110 Использование функций asort() и ksort() для сортировки массивов
- 111 Сортировка в обратном порядке
- 111 Сортировка многомерных массивов
- 111 Определяемые пользователем функции сортировки
- 113 Определяемая пользователем сортировка в обратном порядке
- 114 Изменение порядка следования элементов в массивах
- 114 Использование функции shuffle()
- 115 Использование функции array_reverse()
- 116 Загрузка массивов из файлов
- 118 Другие манипуляции с массивами
- 119 Перемещение внутри массива: функции each(), current(), reset(), end(), next(), pos() и prev()
- 119 Применение любой функции к каждому элементу массива: функция array_walk()
- 121 Подсчет элементов в массиве: функции count(), sizeof() и array_count_values()
- 121 Преобразование массивов в скалярные переменные: функция extract()
- 123 Дополнительные источники информации
- 123 Что дальше
- 124 Глава 4. Манипулирование строками и регулярные выражения
- 124 Пример приложения: интеллектуальная форма отправки электронной почты
- 126 Форматирование строк
- 127 Усечение строки: функции chop(), ltrim() и trim()
- 127 Форматирование строк для отображения
- 130 Форматирование строк для хранения: функции addslashes() и stripslashes()
- 132 Объединение и разбиение строк с помощью строковых функций
- 132 Использование функций explode(), implode() и join()
- 133 Использование функции strtok()
- 134 Использование функции substr()
- 135 Сравнение строк
- 135 Упорядочение строк: функции strcmp(), strcasecmp() и strnatcmp()
- 135 Проверка длины строки с помощью функции strlen()
- 136 Сопоставление и замена подстрок с помощью строковых функций
- 136 Поиск подстрок в строках: функции strstr(), strchr(), strrchr() и stristr()
- 137 Определение позиции подстроки: функции strpos() и strrpos()
- 138 Замена подстрок: функции str_replace() и substr_replace()
- 139 Введение в регулярные выражения
- 140 Основы
- 140 Наборы символов и классы
- 141 Повторение
- 141 Подвыражения
- 142 Подвыражения с подсчетом
- 142 Привязка к началу или концу строки
- 142 Ветвление
- 143 Сопоставление с литеральными значениями специальных символов
- 143 Краткое описание специальных символов
- 144 Использование регулярных выражений в приложении интеллектуальной формы отправки электронной почты
- 145 Поиск подстрок с помощью регулярных выражений
- 145 Замена подстрок с помощью регулярных выражений
- 146 Разбиение строк с помощью регулярных выражений
- 146 Дополнительные источники информации
- 147 Что дальше
- 148 Глава 5. Многократное использование кода и создание функций
- 149 Преимущества многократного использования кода
- 149 Затраты
- 149 Надежность
- 149 Единообразие
- 150 Использование операторов require() и include()
- 150 Расширения имен файлов и require()
- 152 Использование оператора require() для шаблонов веб-сайта
- 156 Использование конфигурационных параметров auto_prepend_file и auto_append_file
- 157 Использование функций в PHP
- 157 Вызов функций
- 159 Вызов неопределенной функции
- 160 Регистр символов и имена функций
- 160 Определение собственных функций
- 160 Базовая структура функции
- 161 Именование функций
- 162 Параметры
- 164 Область действия
- 166 Передача по ссылке и передача по значению
- 168 Ключевое слово return
- 169 Возврат значений из функции
- 170 Реализация рекурсии
- 171 Пространства имен
- 172 Дополнительные источники информации
- 172 Что дальше
- 149 Преимущества многократного использования кода
- 173 Глава 6. Объектно-ориентированное программирование на PHP
- 174 Концепции объектно-ориентированного программирования
- 174 Классы и объекты
- 175 Полиморфизм
- 176 Наследование
- 176 Создание классов, атрибутов и операций в PHP
- 176 Структура класса
- 177 Конструкторы
- 177 Деструкторы
- 178 Создание экземпляров класса
- 178 Использование атрибутов класса
- 180 Управление доступом с помощью модификаторов private и public
- 181 Вызов операций класса
- 181 Реализация наследования в PHP
- 182 Управление видимостью при наследовании с помощью модификаторов private и protected
- 183 Переопределение
- 184 Предотвращение наследования и переопределения с помощью final
- 185 Множественное наследование
- 186 Реализация интерфейсов
- 186 Проектирование классов
- 187 Написание кода класса
- 194 Дополнительные объектно-ориентированные возможности в PHP
- 195 Использование констант класса
- 195 Реализация статических методов
- 195 Проверка типа объекта и указание типов
- 196 Позднее статическое связывание
- 196 Клонирование объектов
- 197 Использование абстрактных классов
- 197 Перегрузка методов с помощью метода __call()
- 198 Использование __autoload()
- 198 Реализация итераторов и итерации
- 200 Преобразование классов в строки
- 200 Использование Reflection API
- 201 Что дальше
- 174 Концепции объектно-ориентированного программирования
- 202 Глава 7. Обработка ошибок и исключений
- 202 Концепции обработки ошибок
- 204 Класс Exception
- 204 Исключения, определяемые пользователем
- 207 Исключения в приложении “Автозапчасти от Вована”
- 210 Исключения и другие механизмы обработки ошибок PHP
- 210 Дополнительные источники информации
- 210 Что дальше
- 211 Часть II. Использование MySQL
- 212 Глава 8. Проектирование баз данных для веб-приложений
- 213 Концепции реляционных баз данных
- 213 Таблицы
- 214 Столбцы
- 214 Строки
- 214 Значения
- 214 Ключи
- 215 Схемы
- 216 Отношения
- 216 Как спроектировать собственную базу данных для веб-приложения
- 216 Думайте о реальных объектах, которые вы моделируете
- 217 Избегайте хранения избыточной информации
- 219 Используйте элементарные значения столбцов
- 220 Выбирайте подходящие ключи
- 220 Подумайте, какие вопросы потребуется задавать базе данных
- 220 Избегайте проектов с большим количеством пустых атрибутов
- 221 Типы таблиц
- 221 Архитектура баз данных для веб-приложений
- 223 Дополнительная информация
- 223 Что дальше
- 213 Концепции реляционных баз данных
- 224 Глава 9. Создание базы данных для веб-приложений
- 225 Использование монитора MySQL
- 226 Вход в MySQL
- 227 Создание баз данных и пользователей
- 227 Настройка пользователей и полномочий
- 228 Знакомство с системой полномочий MySQL
- 228 Принцип минимально необходимых полномочий
- 228 Настройка пользователей: команда GRANT
- 230 Типы и уровни полномочий
- 232 Команда REVOKE
- 232 Примеры использования команд GRANT и REVOKE
- 233 Установка пользователя для доступа из Интернета
- 233 Использование требуемой базы данных
- 234 Создание таблиц баз данных
- 235 Значения других ключевых слов
- 236 Что означают типы столбцов
- 237 Просмотр базы данных с помощью команд SHOW и DESCRIBE
- 238 Создание индексов
- 239 Идентификаторы в MySQL
- 240 Типы данных столбцов
- 240 Числовые типы
- 244 Дополнительные источники информации
- 244 Что дальше
- 245 Глава 10. Работа с базой данных MySQL
- 245 Что такое SQL?
- 246 Вставка в базу данных
- 248 Извлечение из базы данных
- 249 Извлечение данных по определенному критерию
- 251 Извлечение данных из нескольких таблиц
- 256 Извлечение данных в определенном порядке
- 256 Группировка и агрегирование данных
- 258 Выбор возвращаемых строк
- 259 Использование подзапросов
- 261 Обновление записей в базе данных
- 261 Изменение таблиц после создания
- 264 Удаление записей из базы данных
- 264 Удаление таблиц
- 264 Удаление целой базы данных
- 264 Дополнительные источники информации
- 265 Что дальше
- 266 Глава 11. Веб-доступ к базе данных MySQL с помощью РНР
- 267 Как работает архитектура баз данных для Интернет-доступа
- 269 Выполнение Интернет-запросов к базе данных
- 270 Проверка и фильтрация входных данных
- 271 Установка соединения
- 272 Выбор базы данных
- 272 Выполнение запроса к базе данных
- 273 Получение результатов запроса
- 274 Отсоединение от базы данных
- 274 Внесение новой информации в базу данных
- 277 Использование подготовленных операторов
- 278 Использование других РНР-интерфейсов работы с базами данных
- 279 Использование обобщенного интерфейса базы данных: PEAR MDB2
- 281 Дополнительные источники информации
- 281 Что дальше
- 282 Глава 12. Дополнительные сведения по администрированию MySQL
- 282 Подробное ознакомление с системой полномочий
- 283 Таблица user
- 285 Таблицы db и host
- 286 Таблицы tables_priv, columns_priv и procs_priv
- 287 Управление доступом: использование таблиц полномочий в среде MySQL
- 288 Обновление полномочий: когда изменения вступают в силу?
- 288 Обеспечение безопасности базы данных MySQL
- 288 MySQL с точки зрения операционной системы
- 289 Пароли
- 289 Полномочия пользователей
- 290 Проблемы, связанные с веб-доступом
- 291 Получение дополнительной информации о базах данных
- 291 Получение информации с помощью оператора SHOW
- 293 Получение информации о столбцах с помощью оператора DESCRIBE
- 293 Получение информации о способе выполнения запросов с помощью оператора EXPLAIN
- 297 Оптимизация базы данных
- 297 Оптимизация проекта
- 298 Права доступа
- 298 Оптимизация таблиц
- 298 Использование индексов
- 298 Использование значений по умолчанию
- 298 Дополнительные советы
- 299 Резервное копирование базы данных MySQL
- 299 Восстановление базы данных MySQL
- 300 Реализация репликации
- 301 Настройка ведущего сервера
- 301 Выполнение первоначальной передачи данных
- 302 Создание одного или нескольких ведомых серверов
- 302 Дополнительные источники информации
- 302 Что дальше
- 282 Подробное ознакомление с системой полномочий
- 303 Глава 13. Дополнительные сведения по программированию в MySQL
- 303 Оператор LOAD DATA INFILE
- 304 Механизмы хранения
- 305 Транзакции
- 305 Определения транзакций
- 306 Использование транзакций с таблицами InnoDB
- 307 Внешние ключи
- 308 Хранимые процедуры
- 308 Простой пример
- 310 Локальные переменные
- 311 Курсоры и управляющие структуры
- 314 Дополнительные источники информации
- 314 Что дальше
- 315 Часть III. Электронная коммерция и безопасность
- 316 Глава 14. Эксплуатация сайта электронной коммерции
- 316 Определение целей, которые должны быть достигнуты
- 317 Типы коммерческих веб-сайтов
- 317 Сетевые брошюры
- 320 Прием заказов на товары и услуги
- 324 Предоставление услуг и цифровых товаров
- 324 Повышение привлекательности товаров и услуг
- 325 Снижение расходов
- 326 Риски и угрозы
- 326 Взломщики
- 327 Невозможность быстрой отдачи средств
- 327 Отказы компьютерного оборудования
- 327 Сбои питания, коммуникационных линий, сети и службы доставки
- 327 Интенсивная конкуренция
- 328 Ошибки программного обеспечения
- 328 Изменения в политике и налогообложении
- 328 Ограниченные возможности системы
- 329 Выбор стратегии
- 329 Что дальше
- 330 Глава 15. Безопасность сайта электронной коммерции
- 331 Важность деловой информации
- 331 Угрозы безопасности
- 332 Разглашение конфиденциальных данных
- 334 Потеря или разрушение данных
- 334 Изменение данных
- 335 Отказ в обслуживании
- 336 Ошибки программного обеспечения
- 337 Отказ от обязательств
- 338 Удобство использования, производительность, снижение затрат и безопасность
- 339 Разработка политики безопасности
- 339 Принципы аутентификации
- 341 Основы шифрования
- 342 Шифрование секретным ключом
- 343 Шифрование открытым ключом
- 344 Цифровые подписи
- 345 Цифровые сертификаты
- 345 Защищенные веб-серверы
- 347 Аудит и регистрация
- 347 Брандмауэры
- 348 Резервное копирование данных
- 348 Резервное копирование общих файлов
- 349 Резервное копирование и восстановление баз данных MySQL
- 349 Физическая безопасность
- 350 Что дальше
- 351 Глава 16. Безопасность веб-приложений
- 351 Стратегии защиты
- 352 Сразу настройтесь на верный лад
- 352 Баланс между безопасностью и удобством использования
- 352 Мониторинг безопасности
- 353 Наш базовый подход
- 353 Возможные угрозы
- 353 Доступ к секретным данным или их изменение
- 354 Пропажа или уничтожение данных
- 354 Отказ в обслуживании
- 354 Внедрение вредоносного кода
- 355 Компрометация сервера
- 355 Определение, с кем мы имеем дело
- 355 Взломщики
- 355 Ничего не подозревающие пользователи зараженных машин
- 356 Недовольные работники
- 356 Кражи оборудования
- 356 Мы сами
- 356 Защита кода
- 357 Фильтрация пользовательского ввода
- 360 Литерализация выходных данных
- 362 Организация кода
- 362 Содержимое кода
- 363 Файловая система
- 363 Устойчивость кода и ошибки
- 364 Кавычки выполнения и вызов exec
- 365 Защита веб-браузера и PHP
- 366 Следите за обновлениями ПО
- 366 Просмотр файла php.ini
- 367 Настройка веб-сервера
- 369 Веб-приложения на коммерческих хостах
- 369 Защита сервера баз данных
- 370 Пользователи и права доступа
- 370 Отправка данных на сервер
- 371 Подключение к серверу
- 372 Работа сервера
- 372 Защита сети
- 372 Установите брандмауэры
- 372 Используйте DMZ
- 373 Подготовьтесь к DoS- и DDoS-атакам
- 374 Защита компьютера и операционной системы
- 374 Своевременное обновление операционной системы
- 374 Запускайте только необходимые программы
- 374 Физическая защита сервера
- 375 Планирование катастроф
- 376 Что дальше
- 351 Стратегии защиты
- 377 Глава 17. Реализация аутентификации с помощью PHP и MySQL
- 377 Идентификация посетителей
- 378 Реализация контроля доступа
- 380 Хранение паролей
- 382 Шифрование паролей
- 383 Защита нескольких страниц
- 384 Базовая аутентификация
- 385 Использование базовой аутентификации в PHP
- 387 Использование базовой аутентификации с помощью файлов .htaccess сервера Apache
- 390 Использование аутентификации с помощью модуля mod_auth_mysql
- 391 Установка модуля mod_auth_mysql
- 391 Использование модуля mod_auth_mysql
- 392 Создание собственного метода аутентификации
- 393 Дополнительные источники информации
- 393 Что дальше
- 394 Глава 18. Реализация защищенных транзакций с помощью PHP и MySQL
- 394 Обеспечение безопасности транзакций
- 395 Компьютер пользователя
- 396 Интернет
- 397 Ваша система
- 398 Использование протокола защищенных сокетов (SSL)
- 401 Проверка введенных пользователем данных
- 402 Обеспечение безопасного хранения данных
- 403 Надежное хранение номеров кредитных карточек
- 403 Использование шифрования в PHP
- 404 Инсталляция GPG
- 406 Тестирование GPG
- 411 Дополнительные источники информации
- 411 Что дальше
- 394 Обеспечение безопасности транзакций
- 413 Часть IV. Более сложные технологии PHP
- 414 Глава 19. Взаимодействие с файловой системой и сервером
- 414 Выгрузка файлов
- 415 HTML-код для загрузки файла
- 417 Написание PHP-сценария для работы с файлами
- 420 Устранение часто встречающихся проблем
- 421 Использование функций работы с каталогами
- 421 Чтение содержимого каталога
- 424 Получение информации о текущем каталоге
- 424 Создание и удаление каталогов
- 425 Взаимодействие с файловой системой
- 425 Получение информации о файле
- 427 Изменение свойств файла
- 428 Создание, удаление и перемещение файлов
- 428 Использование функций запуска программ
- 431 Взаимодействие со средой: функции getenv() и putenv()
- 431 Дополнительные источники информации
- 431 Что дальше
- 414 Выгрузка файлов
- 432 Глава 20. Использование функций работы с сетью и протоколами
- 432 Обзор сетевых протоколов
- 433 Отправка и получение почты
- 433 Использование данных с других веб-сайтов
- 436 Использование функций сетевого контроля
- 439 Создание резервных и зеркальных копий файлов
- 440 Использование FTP для резервного и зеркального копирования файла
- 445 Выгрузка файлов на сервер
- 446 Как избежать тайм-аутов
- 446 Другие функции работы с FTP
- 447 Дополнительные источники информации
- 447 Что дальше
- 448 Глава 21. Работа с датой и временем
- 448 Получение даты и времени средствами PHP
- 448 Использование функции date()
- 450 Работа с метками времени Unix
- 451 Использование функции getdate()
- 453 Проверка правильности дат с помощью функции checkdate()
- 453 Форматирование меток времени
- 455 Преобразования дат между форматами PHP и MySQL
- 456 Операции над датами в PHP
- 457 Операции над датами в MySQL
- 458 Использование микросекунд
- 459 Использование календарных функций
- 460 Дополнительные источники информации
- 460 Что дальше
- 448 Получение даты и времени средствами PHP
- 461 Глава 22. Генерация изображений
- 462 Настройка поддержки изображений в PHP
- 462 Форматы изображений
- 462 JPEG
- 463 PNG
- 463 WBMP
- 463 GIF
- 464 Создание изображений
- 465 Создание холста
- 465 Рисование и вывод текста в изображении
- 467 Вывод полученного изображения
- 468 Освобождение ресурсов
- 468 Использование автоматически сгенерированных изображений на других страницах
- 469 Использование текста и шрифтов при создании изображений
- 471 Настройка базового холста
- 472 Подбор размера текста на кнопке
- 474 Позиционирование текста
- 474 Вывод текста на кнопку
- 475 Заключительные действия
- 475 Вычерчивание фигур и построение графиков
- 482 Другие функции обработки изображений
- 482 Дополнительные источники информации
- 482 Что дальше
- 483 Глава 23. Управление сеансами в PHP
- 483 Что такое управление сеансами
- 483 Базовая функциональность сеансов
- 484 Что такое cookie-набор?
- 484 Установка cookie-наборов из PHP
- 485 Использование cookie-наборов в сеансах
- 485 Сохранение идентификатора сеанса
- 486 Реализация простых сеансов
- 486 Запуск сеанса
- 487 Регистрация переменных сеанса
- 487 Использование переменных сеанса
- 487 Разрегистрация переменных и уничтожение сеанса
- 488 Пример простого сеанса
- 489 Конфигурирование управления сеансами
- 490 Реализация аутентификации средствами управления сеансами
- 495 Дополнительные источники информации
- 495 Что дальше
- 496 Глава 24. Другие полезные возможности
- 496 Выполнение команд, содержащихся в строке, с помощью функции eval()
- 497 Прекращение выполнения с помощью die и exit
- 497 Сериализация переменных и объектов
- 498 Получение информации о среде PHP
- 498 Определение загруженных расширений
- 499 Определение владельца сценария
- 499 Определение даты последнего изменения сценария
- 500 Временное изменение среды выполнения
- 501 Выделение цветом элементов исходного кода
- 501 Использование PHP в командной строке
- 502 Что дальше
- 503 Часть V. Реальные проекты на PHP и MySQL
- 504 Глава 25. Использование PHP и MySQL в крупных проектах
- 505 Применение методов проектирования программного обеспечения при разработке Web-приложений
- 505 Планирование и сопровождение проекта Web-приложения
- 506 Многократное использование кода
- 507 Написание удобного в сопровождении кода
- 507 Стандарты написания кода
- 511 Управление версиями
- 513 Выбор среды разработки
- 513 Документирование проектов
- 514 Создание прототипов
- 515 Разделение логики и содержимого
- 516 Оптимизация кода
- 516 Использование простой оптимизации
- 516 Использование продуктов Zend
- 517 Тестирование
- 518 Дополнительные источники информации
- 518 Что дальше
- 519 Глава 26. Отладка
- 519 Программные ошибки
- 519 Синтаксические ошибки
- 521 Ошибки времени выполнения
- 526 Логические ошибки
- 527 Вспомогательное средство отладки переменных
- 529 Уровни выдачи сообщений об ошибках
- 530 Изменение настроек уровня сообщения об ошибках
- 532 Генерация собственных ошибок
- 532 Изящная обработка ошибок
- 535 Что дальше
- 519 Программные ошибки
- 536 Глава 27. Реализация задачи аутентификации и персонализации посетителей
- 536 Компоненты решения
- 537 Идентификация и персонализация пользователей
- 538 Хранение закладок
- 538 Рекомендация закладок
- 538 Обзор решения
- 540 Реализация базы данных
- 541 Реализация базового варианта сайта
- 543 Реализация аутентификации пользователей
- 543 Регистрация пользователей
- 549 Вход в систему
- 552 Выход из системы
- 553 Смена пароля
- 555 Переустановка забытых паролей
- 559 Реализация хранения и извлечения закладок
- 559 Добавление закладок
- 561 Отображение закладок
- 562 Удаление закладок
- 564 Выработка рекомендаций
- 567 Возможные расширения
- 567 Что дальше
- 536 Компоненты решения
- 568 Глава 28. Разработка покупательской тележки
- 568 Компоненты решения
- 569 Построение онлайнового каталога
- 569 Отслеживание выбираемого товара
- 570 Реализация платежной системы
- 570 Разработка интерфейса администрирования
- 571 Обзор решения
- 574 Создание базы данных
- 576 Реализация онлайнового каталога
- 578 Вывод списка категорий
- 580 Вывод списка книг, относящихся к заданной категории
- 581 Вывод информации о конкретной книге
- 583 Реализация покупательской тележки
- 583 Использование сценария show_cart.php
- 586 Вывод содержимого тележки
- 588 Добавление элементов в тележку
- 589 Сохранение изменений содержимого тележки
- 590 Печать итоговых данных в строке заголовка
- 591 Выполнение окончательного расчета
- 596 Реализация платежа
- 598 Реализация интерфейса администрирования
- 605 Расширение проекта
- 606 Использование существующей системы
- 606 Что дальше
- 568 Компоненты решения
- 607 Глава 29. Разработка службы веб-почты
- 607 Компоненты решения
- 607 Почтовые протоколы: POP3 и IMAP
- 608 Поддержка POP3 и IMAP в PHP
- 609 Обзор решения
- 611 Создание базы данных
- 612 Архитектура сценария
- 617 Вход и выход из системы
- 620 Настройка учетных записей
- 622 Создание новой учетной записи
- 623 Изменение существующей учетной записи
- 623 Удаление учетной записи
- 624 Чтение почтовых сообщений
- 624 Выбор учетной записи
- 626 Просмотр содержимого почтового ящика
- 629 Чтение почтовых сообщений
- 631 Просмотр заголовков сообщений
- 632 Удаление почтовых сообщений
- 633 Отправка почты
- 633 Отправка нового сообщения
- 635 Ответ или переадресация сообщения
- 636 Расширение проекта
- 637 Что дальше
- 607 Компоненты решения
- 638 Глава 30. Разработка диспетчера списков рассылки
- 639 Компоненты решения
- 639 Создание базы данных списков и подписчиков
- 640 Загрузка файлов
- 640 Отправка сообщений электронной почты с вложениями
- 641 Обзор решения
- 643 Создание базы данных
- 645 Архитектура сценария
- 652 Реализация процедуры входа в систему
- 652 Создание новой учетной записи
- 655 Вход в систему
- 657 Реализация функций пользователя
- 658 Просмотр списков рассылки
- 662 Просмотр сведений о списке рассылки
- 664 Просмотр архивов списков рассылки
- 665 Подписка и отмена подписки
- 666 Изменение параметров настройки учетной записи
- 667 Изменение пароля
- 668 Выход из системы
- 669 Реализация функций администратора
- 669 Создание нового списка рассылки
- 671 Загрузка нового информационного бюллетеня
- 674 Обработка загрузки нескольких файлов
- 678 Предварительный просмотр информационного бюллетеня
- 679 Отправка сообщения
- 684 Расширение проекта
- 685 Что дальше
- 639 Компоненты решения
- 686 Глава 31. Разработка веб-форумов
- 686 Процесс создания
- 687 Компоненты решения
- 688 Обзор решения
- 689 Создание базы данных
- 692 Просмотр дерева статей
- 694 Разворачивание и сворачивание
- 697 Отображение статей
- 698 Использование класса treenode
- 703 Просмотр отдельных статей
- 705 Добавление новых статей
- 712 Расширение проекта
- 712 Использование существующих систем
- 712 Что дальше
- 713 Глава 32. Генерация персонифицированных PDF-документов
- 713 Обзор проекта
- 714 Оценка форматов документов
- 714 Бумажная копия
- 715 ASCII-формат
- 715 HTML-формат
- 715 Форматы текстовых процессоров
- 716 Расширенный текстовый формат
- 717 PostScript-формат
- 718 PDF-формат
- 718 Компоненты решения
- 719 Система вопросов и ответов
- 719 Программное обеспечение для генерации документов
- 719 Программное обеспечение для создания шаблона RTF-документов
- 719 Программное обеспечение для создания шаблона PDF-документов
- 721 Программное обеспечение для создания PDF-документов с помощью кода
- 722 Обзор решения
- 723 Задание вопросов
- 724 Оценка ответов
- 726 Генерация RTF-сертификата
- 730 Генерация PDF-сертификата из шаблона
- 733 Генерация PDF-документа с использованием библиотеки PDFlib
- 733 Простейший сценарий для PDFlib
- 737 Генерация сертификата с помощью PDFlib
- 744 Решение проблем, связанных с заголовками
- 744 Расширение проекта
- 744 Что дальше
- 745 Глава 33. Подключение к веб-службам с помощью XML и SOAP
- 745 Обзор проекта: работа с XML и веб-службами
- 746 Основы XML
- 749 Основы веб-служб
- 750 Компоненты решения
- 751 Использование интерфейсов веб-служб Amazon
- 752 Разбор XML: ответы REST
- 752 Использование SOAP с PHP
- 752 Кэширование
- 752 Обзор решения
- 757 Ядро приложения
- 762 Отображение книг конкретной категории
- 764 Извлечение класса AmazonResultSet
- 771 Использование REST для выдачи запроса и извлечения результата
- 777 Использование метода SOAP
- 778 Кэширование данных запроса
- 780 Построение покупательской тележки
- 783 Оплата на сайте Amazon
- 784 Инсталляция кода проекта
- 785 Расширение проекта
- 785 Дополнительные источники информации
- 745 Обзор проекта: работа с XML и веб-службами
- 786 Глава 34. Создание приложений Web 2.0 с помощью Ajax
- 787 Что такое Ajax?
- 787 HTTP-запросы и ответы
- 788 DHTML и XHTML
- 789 Каскадные стилевые таблицы (CSS)
- 790 Программирование на стороне клиента
- 790 Программирование на стороне сервера
- 791 XML и XLST
- 791 Основы Ajax
- 791 Объект XMLHTTPRequest
- 793 Коммуникации с сервером
- 794 Работа с ответом сервера
- 796 Сборка
- 798 Добавление элементов Ajax в созданные ранее проекты
- 799 Добавление элементов Ajax в приложение PHPBookmark
- 810 Дополнительные источники информации
- 810 Дополнительная информация по объектной модели документов (DOM)
- 811 JavaScript-библиотеки для Ajax-приложений
- 811 Веб-сайты разработчиков на Ajax
- 787 Что такое Ajax?
- 813 Часть VI. Приложения
- 814 Приложение А. Инсталляция PHP и MySQL
- 815 Инсталляция Apache, PHP и MySQL на Unix-машине
- 815 Инсталляция бинарных файлов
- 816 Инсталляция исходных кодов
- 822 Фрагменты файла httpd.conf
- 823 Работает ли поддержка PHP?
- 824 Работает ли SSL?
- 825 Инсталляция Apache, PHP и MySQL на Windows-машине
- 826 Инсталляция MySQL под Windows
- 827 Инсталляция Apache под Windows
- 829 Инсталляция PHP под Windows
- 831 Инсталляция PEAR
- 832 Настройка других конфигураций
- 815 Инсталляция Apache, PHP и MySQL на Unix-машине
- 833 Приложение Б. Ресурсы в Интернете
- 833 Ресурсы, посвященные PHP
- 835 Ресурсы, посвященные MySQL и SQL
- 836 Ресурсы, посвященные Apache
- 836 Разработка веб-приложений
- 837 Предметный указатель
Инструкция как скачать книгу Люк Веллинг, Лора Томсон: Разработка веб-приложений с помощью PHP и MySQL в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.