|
|
|
Книги: [Классика] [Базы данных] [Internet/WWW] [Сети] [Программирование] [UNIX] [Windows] [Безопасность] [Графика] [Software Engineering] [ERP-системы] [Hardware]
Содержание
Часть 1. Использование РНР
Глава 1. Краткий обзор РНР
Использование РНР
Пример приложения: Bob's Auto Parts
Форма заказа
Обработка формы
Встраивание РНР в HTML
Использование РНР-дескрипторов
Стили РНР-дескрипторов
РНР-операторы
Пробелы
Комментарии
Добавление динамического содержимого
Вызов функций
Функция date()
Доступ к переменным формы
Переменные формы
Конкатенация строк
Переменные и литералы
Идентификаторы
Переменные, объявляемые пользователем
Присвоение значений переменным
Типы переменных
Типы данных РНР
Преимущества типов
Приведение типов
Переменные переменных
Константы
Область действия переменных
Знаки операций
Арифметические операции
Строковые операции
Операции присваивания
Операции сравнения
Логические операции
Поразрядные операции
Другие операции
Использование операций: вычисление итога по форме
Приоритет и ассоциативность: вычисление выражений
Функции для работы с переменными
Проверка и установка типов переменных
Проверка состояния переменных
Повторная интерпретация переменных
Управляющие структуры
Принятие решений с помощью условных операторов
Операторы if
Блоки кода
Примечание: выравнивание кода при помощи отступов
Операторы else
Операторы elseif
Операторы switch
Сравнение различных условных операторов
Итерация: повторение действий
Циклы while
Циклы for
Циклы do..while
Выход из управляющей структуры или сценария
Глава 2. Хранение и получение данных
Сохранение данных с целью дальнейшего использования
Сохранение и получение заказов в компании Боба
Обзор обработки файлов
Открытие файла
Режимы файлов
Использование функции fopen() для открытия файла
Открытие удаленных файлов через FTP или HTTP
Проблемы, возникающие при открытии файлов
Запись в файл
Параметры функции fwrite()
Форматы файлов
Закрытие файла
Считывание из файла
Открытие файла для чтения: fopen()
Определение конца файла: feof()
Построчное считывание: fgets(),-fgetss() и fgetasv()
Считывание всего файла: readfile(), fpassthru(), file()
Считывание символа: fgetc()
Считывание строк произвольной длины: fread()
Другие полезные файловые функции
Проверка существования файла: file_exists()
Выяснение размера файла: filesize()
Удаление файла unlink()
Перемещение внутри файла: rewind(), fseek и ftell()
Блокирование файлов
Более рациональный способ обработки:
системы управления базами данных
Проблемы, связанные с использованием двумерных файлов
Как эти проблемы решаются с помощью СУРБД
Глава 3. Использование массивов
Что такое массив
Численно индексированные массивы
Инициализация численно индексированных массивов
Доступ к содержимому массива
Использование циклов для доступа к массиву
Ассоциативные массивы
Инициализация ассоциативного массива
Доступ к элементам массива
Организация циклов с использованием each() и list()
Многомерные массивы
Сортировка массивов
Использование функции sort()
Использование функций asort() и ksort() для
сортировки ассоциативных массивов
Сортировка в обратном порядке
Сортировка многомерных массивов
Определяемые пользователем функции сортировки
Определяемые пользователем функции сортировки в обратном порядке
Изменение порядка следования элементов в массивах
Использование функции shunle()
Использование функции array_reverse()
Загрузка массивов из файлов
Другие манипуляции с массивами
Перемещение внутри массива: функции each, current(),
reset(), end(), next(), pos() и prev()
Применение любой функции к каждому элементу массива: array_walk()
Подсчет элементов в массиве: функции count(), sizeof() и
array_count_values()
Преобразование массивов в скалярные переменные: функция extract()
Глава 4. Манипулирование строками и регулярные выражения
Пример приложения: Smart Form Mail
Форматирование строк
Усечение строк: функции chop(), ltrim() и trim()
Форматирование строк для представления
Форматирование строк для хранения: функции AddSlashes()
и StripSlashes()
Объединение и разделение строк с помощью строковых функций
Использование функций explode(), imploded и join()
Использование функции strtok()
Использование функции substr()
Сравнение строк
Упорядочение строк: функции strcmp(), strcasecmp() и strnatamp()
Проверка длины строки с помощью функции strlen()
Сопоставление и замена подстрок с помощью строковых функций
Поиск строк в строках: функции strstr(), strchr(),
strrchr(), stristr()
Определение позиции подстроки: функции strpos(), strrpos()
Замена подстрок: str_replace(), substr_replace()
Введение в регулярные выражения
Наборы символов и классы
Повторение
Подвыражения
Подсчитываемые подвыражения
Привязка к началу или концу строки
Ветвление
Сопоставление с литеральными значениями специальных символов
Краткое описание специальных символов
Использование регулярных выражений в приложении Smart Form
Поиск подстрок с помощью регулярных выражений
Замена подстрок с помощью регулярных выражений
Разделение строк с помощью регулярных выражений
Сравнение строковых функций и функций регулярных выражений
Глава 5. Повторное использование кода и создание функций
Для чего требуется повторное использование кода?
Стоимость
Надежность
Единообразие
Использование операторов required и include()
Использование оператора required
Расширения имен файлов и оператор require()
РНР-дескрипторы и оператор require()
Использование оператора required для шаблонов Web-сайта
Использование директив auto_prepend_file и auto_append_file
Использование оператора included
Использование функций в РНР
Вызов функций
Обращение к неопределенной функции
Регистр и имена функций
Для чего нужно определять собственные функции?
Базовая структура функции
Именование функций
Параметры
Область действия
Передача по ссылке и передача по значению
Возврат из функций
Возврат значений из функций
Блоки кода
Рекурсия
Глава 6. Объектно-ориентированное программирование на РНР
Концепции объектно-ориентированного программирования
Классы и объекты
Полиморфизм
Наследование
Создание классов, атрибутов и операций в РНР
Структура класса
Конструкторы
Создание экземпляров класса
Использование атрибутов класса
Вызов операций класса
Реализация наследования в РНР
Перекрытие
Множественное наследование
Разработка классов
Написание кода класса
Часть 2. Использование MySQL
Глава 7. Проектирование Web-баз данных
Общее представление о реляционных базах данных
Таблицы
Столбцы
Строки
Значения
Ключи
Схемы
Отношения
Как спроектировать собственную Web-базу данных
Подумайте о реальных объектах, которые вы моделируете
Избегайте хранения избыточной информации
Используйте атомарные значения столбцов
Выбирайте подходящие ключи
Подумайте над вопросами, которые потребуется задать базе данных
Избегайте проектов с большим количеством пустых атрибутов
Типы таблиц
Архитектура Web-баз данных
Архитектура
Глава 8. Создание Web-базы данных
Замечания к использованию монитора MySQL
Вход в систему MySQL
Создание баз данных и подключение пользователей
Создание базы данных
Пользователи и привилегии
Знакомство с системами привилегий MySQL
Принцип наименьших привилегий
Установка пользователей: команда GRANT
Типы и уровни привилегий
Команда REVOKE
Установка пользователя для доступа из Web
Выход из системы пользователя root
Использование требуемой базы данных
Создание таблиц баз данных
Что означают другие ключевые слова
Что означают типы столбцов
Просмотр базы данных с помощью команд SHOW и DESCRIBE
Идентификаторы MySQL
Типы данных столбцов
Числовые типы
Глава 9. Работа с базой данных MySQL
Что такое SQL?
Вставка данных в базу данных
Извлечение данных из базы данных
Извлечение данных по определенному критерию
Извлечение данных из нескольких таблиц
Использование других имен таблиц: псевдонимы
Извлечение данных в определенном порядке
Группировка и агрегирование данных
Выбор количества отображаемый строк
Обновление записей в базе данных
Изменение таблиц после создания
Удаление записей из базы данных
Удаление таблиц
Удаление целой базы данных
Глава 10. Доступ к базе данных MySQL из Web с помощью РНР
Как работает архитектура Web-баз данных
Основные шаги выполнения запросов к базе данных через Web
Проверка и фильтрация данных, исходящих от пользователя
Установка соединения
Выбор базы данных
Выполнение запроса к базе данных
Получение результатов запроса
Отсоединение от базы данных
Внесение новой информации в базу данных
Прочие полезные функции PHP-MySQL
Освобождение ресурсов
Создание и удаление баз данных
Другие интерфейсы РНР-баз данных
Глава 11. Дополнительные возможности MySQL
Детальное описание системы привилегий
Таблица user
Таблицы db и host
Таблицы tables_priv и columns_priv
Управление доступом: как MySQL использует таблицы привилегий
Обновление привилегий: когда изменения вступают в силу?
Обеспечение безопасности баз данных MySQL
MySQL с точки зрения операционной системы
Пароли
Привилегии пользователей
Тонкости Web
Получение дополнительной информации о базах данных
Получение информации с помощью SHOW
Получение информации о столбцах с помощью DESCRIBE
Как запросы работают с EXPLAIN
Ускорение использования базы данных при помощи индексов
Советы по оптимизации
Оптимизация проектирования
Права доступа
Оптимизация таблиц
Применение индексов
Использование значений, принятых по умолчанию
Применяйте постоянные соединения
Другие советы
Различные типы таблиц
Загрузка данных из файла
Часть 3. Системы электронной торговли и безопасность
Глава 12. Эксплуатация сайта электронной коммерции
Преследуемые цели
Типы коммерческих Web-сайтов
Сетевые брошюры
Прием заказов на товары и услуги
Предоставление услуг и цифровой продукции
Дополнительные товары и услуги
Снижение расходов
Риски и угрозы
Взломщики
Невозможность привлечения компаньонов
Отказы оборудования
Сбои питания, коммуникационных линий или сети,
отказы службы доставки
Интенсивная конкуренция
Сбои программного обеспечения
Изменения в политике и налогообложении
Ограниченная пропускная способность системы
Глава 13. Вопросы безопасности в электронной коммерции
Насколько важна ваша информация?
Угрозы безопасности
Вскрытие конфиденциальных данных
Потеря или разрушение данных
Изменение данных
Отказ в обслуживании
Ошибки программного обеспечения
Отказ от обязательств
Достижение баланса между практичностью, производительностью,
стоимостью и защитой
Разработка стратегии защиты
Принципы аутентификации
Использование аутентификации
Основы шифрования
Шифрование с закрытым ключом
Шифрование с открытым ключом
Цифровые подписи
Цифровые сертификаты
Безопасные Web-серверы
Аудит и регистрация
Брандмауэры
Резервное копирование данных
Резервное копирование общих файлов
Резервное копирование и восстановление баз данных MySQL
Физическая безопасность
Глава 14. Аутентификация с помощью РНР и MySQL
Идентификация пользователей
Реализация контроля доступа
Хранение паролей
Шифрование паролей
Защита множества страниц
Базовая аутентификация
Использование базовой аутентификации в РНР
Использование базовой аутентификации при помощи файлов
htaccess сервера Apache
Использование базовой аутентификации в IIS
Использование аутентификации через модуль mod_auth mysql
Установка модуля mod_auth_mysql
Заработало?
Использование модуля mod_auth_mysql
Создание собственного метода аутентификации
Глава 15. Реализация безопасных транзакций в РНР и MySQL
Обеспечение безопасности транзакций
Пользовательская машина
Internet
Ваша система
Использование слоя безопасных сокетов
Проверка данных, вводимых пользователем
Обеспечение безопасного хранения данных
Зачем хранить номера кредитных карточек?
Использование шифрования в РНР
Инсталляция GPG
Тестирование GPG
Часть 4. Усложненные технологии применения РНР
Глава 16. Взаимодействие с файловой системой и сервером
Основы загрузки 'файлов на сервер
HTML-код загрузки файлов на сервер
Реализация РНР-кода для работы с файлом
Часто возникающие затруднения
Использование функций работы с каталогами
Считывание из каталогов
Получение сведении о текущем каталоге
Создание и удаление каталогов
Взаимодействие с файловой системой
Считывание информации из файла
Изменение свойств файла
Создание, перемещение и удаление файлов
Функции запуска программ
Взаимодействие со средой: getenv() и putenv()
Глава 17. Использование функций работы с сетью и протоколами
Обзор доступных протоколов
Отправка и получение почты
Использование других Web-служб через NTTP
Применение функций сетевого поиска
Использование FTP
Использование FTP для создания резервной или
зеркальной копии файла
Загрузка файлов на сервер
Как избежать тайм-аутов
Другие функции работы с FTP
Использование общих сетевых соединений с помощью библиотеки cURL
Глава 18. Управление датой и временем
Получение даты и времени средствами РНР
Использование функции date()
Работа с метками времени UNIX
Использование функции getdate()
Проверка правильности дат
Преобразования даты в форматах РНР и MySQL
Операции над датами
Использование календарных функций
Глава 19. Создание изображений
Настройка поддержки изображений в РНР
Форматы изображений
JPEG
PNG
WBMP
GIF
Создание изображений
Создание холста
Рисование или вывод текста в изображение
Вывод окончательного рисунка
Освобождение ресурсов
Использование автоматически создаваемых изображений
на других страницах
Использование текста и шрифтов при создании изображений
Настройка холста
Подбор размера текста на кнопке
Позиционирование текста
Вывод текста на кнопку
Заключительные действия
Рисование фигур и построение графиков
Другие функции обработки изображений
Глава 20. Управление сеансами в РНР
Что такое управление сеансом
Основные функциональные средства управления сеансом
Что такое cookie-набор?
Установка cookie-наборов из РНР
Использование cookie-наборов в сеансах
Сохранение идентификатора сеанса
Реализация управления простым сеансом
Запуск сеанса
Регистрация переменных сеанса
Использование переменных сеанса
Отмена регистрации переменных и завершение сеанса
Пример простого сеанса
Конфигурирование управления сеанса
Выполнение аутентификации пользователей средствами
управления сеансом
Глава 21. Другие полезные свойства РНР
Использование магических кавычек
Выполнение команд, содержащихся в строке, - функция eval()
Прерывание выполнения: die и exit
Сериализация
Получение информации о рабочей среде РНР
Определение загруженных расширений
Определение владельца сценария
Определение даты последнего изменения сценария
Динамическая загрузка расширений
Временное изменение среды исполнения
Выделение элементов исходного кода.
Часть 5. Разработка практических приложений на РНР и MySQL
Глава 22. Применение РНР и MySQL при разработке крупных проектов
Применение методов проектирования программного
обеспечения при разработке Web-приложений
Планирование и сопровождение проекта Web-приложения
Повторное использование кода
Написание удобного для сопровождения кода
Стандарты написания кода
фрагментирование кода
Использование стандартной структуры каталогов
Документирование и распределение функций
собственной разработки
Управление версиями
Выбор среды разработки
Документирование проектов
Создание прототипов
Разделение логики и содержимого
Оптимизация кода
Использование простой оптимизации
Использование продуктов компании Zend
Тестирование
Дополнительная информация
Что дальше
Глава 23. Отладка
Программные ошибки
Синтаксические ошибки
Ошибки времени выполнения
Логические ошибки
Вспомогательное средство отладки переменных
Уровни сообщений об ошибках
Изменение настроек сообщений об ошибках
Генерация собственных ошибок
Эффективная обработка ошибок
Удаленная отладка
Глава 24. Аутентификация и персонализация пользователей
Задача
Компоненты решения
Идентификация и персонализация пользователей
Хранение закладок
Рекомендация закладок
Обзор проекта
Реализация базы данных
Реализация основы сайта
Аутентификация пользователей
Регистрация
Вход в систему
Выход из системы
Смена паролей
Переустановка забытых паролей
Хранение и извлечение закладок
Добавление закладок
Отображение закладок
Удаление закладок
Выработка рекомендаций
Заключение и возможные расширения
Глава 25. Создание покупательской тележки
Задача
Компоненты решения
Построение интерактивного каталога
Отслеживание выбираемого товара
Платежи
Интерфейс администрирования
Обзор решения
Реализация базы данных
Реализация интерактивного каталога
Список категорий
Список книг в категории
Отображение информации о книгах
Реализация покупательской тележки
Использование сценария show_cart.php
Просмотр содержимого тележки
Добавление элементов в тележку
Сохранение изменений содержимого тележки
Печать итоговых данных в строке заголовка
Выполнение расчета
Реализация платежа
Реализация интерфейса администрирования
Расширение проекта
Использование существующей системы
Глава 26. Построение системы управления содержимым
Задача
Требования к проекту
Редактирование содержимого
Ввод содержимого в систему
FTP
Преимущество баз данных перед файлами для хранения содержимого
Структура документов
Использование метаданных
Форматирование вывода
Управление изображениями
Обзор проекта
Создание базы данных
Реализация
Интерфейсная часть
Прикладная часть
Поиск статей
Окно редактора
Расширение проекта
Глава 27. Построение почтовой службы, основанной на Web
Задача
Компоненты решения
Обзор проекта
Создание базы данных
Архитектура сценария
Вход и выход из системы
Создание учетных записей
Создание новой учетной записи
Изменение существующей учетной записи
Удаление учетной записи
Чтение почтовых сообщений
Выбор учетной записи
Просмотр содержимого почтового ящика
Чтение почтовых сообщений
Просмотр заголовков сообщений
Удаление почтовых сообщений
Отправка почты
Отправка нового сообщения
Ответ на сообщение или его переадресация
Расширение проекта
Глава 28. Создание менеджера списков рассылки
Задача
Компоненты решения
Определение базы данных списков и подписчиков
Загрузка файлов
Отправка сообщений электронной почты с присоединениями
Обзор решения
Создание базы данных
Архитектура сценария
Реализация регистрации
Создание новой учетной записи
Регистрация
Реализация функций пользователя
Просмотр списков рассылки
Просмотр сведений о списке рассылки
Просмотр архивов списков рассылки
Подписка и отмена подписки
Изменение параметров настройки учетной записи
Изменение паролей
Выход из системы
Реализация функций администратора
Создание нового списка рассылки
Загрузка нового информационного бюллетеня
Выполнение загрузки нескольких файлов
Предварительный просмотр информационного бюллетеня
Отправка сообщения
Расширение проекта
Глава 29. Создание Web-форумов
Компоненты решения
Обзор решения
Разработка базы данных
Просмотр дерева статей
Раскрытие и свертывание
Отображение статей
Использование класса treenode
Просмотр отдельных статей
Добавление новых статей
Расширение проекта
Использование существующих систем
Глава 30. Генерация персонифицированных документов в
формате переносимых документов (PDF)
Задача
Оценка форматов документов
Бумажный документ
ASCII
HTML
Форматы текстовых процессоров
Расширенный текстовый формат
PostScript
Переносимый формат документов
Компоненты решения
Система вопросов и ответов
Программное обеспечение для генерации документов
Обзор решения
Задание вопросов
Оценка ответов
Генерация RTF-сертификата
Генерация PDF-сертификата из шаблона
Генерация PDF-документа с использованием PDFlib
Сценарий Hello World для PDFlib
Генерация сертификата с помощью PDFlib
Проблемы, связанные с заголовками
Расширение проекта
Часть 6. Приложения
Приложение А. Инсталляция РНР 4 и MySQL
Запуск РНР в качестве интерпретатора CGI или модуля
Установка Apache, РНР и MySQL под UNIX
Apache и mod_SSL
Фрагменты файла httpd.conf
Работает ли поддержка РНР?
Работает ли SSL?
Установка Apache, РНР и MySQL под Windows
Установка MySQL под Windows
Установка Apache под Windows
Различия между версиями Apache для Windows и UNIX
Установка РНР под Windows
Заметки по инсталляции для Microsoft US
Замечания по инсталляции для Microsoft FWS
Другие конфигурации
Приложение В. Ресурсы Internet
Ресурсы, посвященные РНР
Ресурсы, посвященные MySQL и SQL
Ресурсы, посвященные Apache
Разработка для Web
Предметный указатель
Начало
Краткое содержание
Введение
Структура книги
Об авторах
Компакт-диск
Заказать книгу в магазине "Мистраль"
|
|
|
|
|
|
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее... |
|