Главная » 2013»Август»28 » PHP и MySQL. Разработка Web-приложений. — 4-е изд.
00:25
PHP и MySQL. Разработка Web-приложений. — 4-е изд.
PHP и MySQL. Разработка Web-приложений - Даны начала программирования на PHP: установка и настройка Apache, PHP, MySQL и кроссплатформенной сборки XAMPP, выбор редактора PHP-кода, синтаксис языка и самые полезные функции PHP 5.4. Рассмотрено создание собст-венного движка сайта и ряда дополнительных модулей - фотогалереи, RSS-граббера, модуля для работы с MP3, сервиса reCAPTCHA, а также применение мощного шаблонизатора Smarty и создание простейшего собственного шаблонизатора. Показано, как с помощью технологии Ajax добиться обновления данных на странице без ее перезагрузки. Для закрепления практики разработки Web-приложений рассмотрен сложный проект, приведены его подробное описание, исходный код и интеграция с популярным движком WordPress. В четвертом издании добавлен материал, знакомящий с механизмом кэширования MySQL, продуктом Zend Guard и процессом создания WAP-сервера.
Название: PHP и MySQL. Разработка Web-приложений. — 4-е изд. Автор: Колисниченко Д. Н. Издательство: БХВ-Петербург Год: 2013 Страниц: 543 Формат: PDF Размер: 201 МБ ISBN: 978-5-9775-0876-6 Качество: Отличное Серия или Выпуск: Профессиональное программирование
Содержание:
Введение Что нового в 4-м издании Немного истории РНР 5.4, или Что случилось с РНР 6 Новое в версии 5.4 Типажи Разыменовывание массива Встроенный Web-сервер Индикатор загрузки файла MySQL Поддержка читателей Часть I. Теория Раздел 1. Быстрый старт Глава 1. Установка необходимого программного обеспечения 1.1. Нужно ли устанавливать программное обеспечение 1.2. Выбор РНР-редактора и FTP-клиента 1.3. Установка Apache + РНР + MySQL в Windows 1.4. Связываем РНР 5.4 и Apache 1.5. Установка Apache + РНР + MySQL в Linux 1.6. Несколько советов Глава 2. Первая РНР-программа 2.1. Ваша первая программа 2.2. Запуск РНР-программы 2.3. Вывод текста без echo 2.4. Совместимость с РНР 4 Глава 3. Основы синтаксиса РНР 3.1. Переменные 3.1.1. Правила объявления переменных. Имена переменных 3.1.2. Типы данных переменных 3.1.3. Булевы переменные 3.1.4. Операции над переменными 3.1.5. Ссылки 3.2. Константы 3.3. Выражения и операции 3.3.1. Что такое выражение 3.3.2. Арифметические операции 3.3.3. Логические выражения 3.3.4. Приоритеты операций 3.3.5. Операторы эквивалентности == и === 3.3.6. Операции со строками 3.4. Условный оператор 3.5. Циклы 3.5.1. Цикл со счетчиком 3.5.2. Цикл while 3.5.3. Цикл do-while 3.5.4. Принудительное завершение цикла и пропуск итерации 3.6. Оператор выбора switch-case Раздел 2. Передача параметров РНР-программам Глава 4. Методы GET и PO ST 4.1. Интерфейс CGI 4.2. Метод GET 4.3. Метод POST Глава 5. Протокол HTTP и интерфейс CGI 5.1. Специальные переменные окружения CGI 5.2. Заголовки протокола HTTP 5.3. Коды ответов протокола HTTP Глава 6. Передача параметров посредством HTML-формы 6.1. Создание простейшей формы и ее обработка в сценарии 6.2. Создание пользовательского интерфейса с помощью формы 6.2.1. Ввод текста. Теги INPUT и TEXTAREA 6.2.2. Зависимые и независимые переключатели 6.2.3. Списки выбора 6.2.4. Форма для передачи файлов 6.2.5. Кнопки 6.3. Проверка параметров формы 6.3.1. Проверка корректности e-mail 6.3.2. Проверка правильности номера кредитной карты 6.3.3. Удаление лишних пробелов 6.4. Защита от спама с помощью САРТСНА 6.5. Форма поиска в Яндексе Глава 7. Запоминание параметров с помощью Cookies и сессий 7.1. Что такое Cookies и как с ними работать 7.2. Механизм сессий 7.2.1. Сессии и Cookies: преимущества и недостатки 7.2.2. Для чего нужны сессии 7.2.3. Как работает механизм сессий 7.2.4. Обход Cookies 7.3. Массивы и Cookies Глава 8. Отдельное слово о директиве register globals 8.1. Почему опасно использовать register_globals 8.2. Если registerjglobals отключена 8.3. РНР 6 и register_globals Раздел 3. Массивы и списки Глава 9. Основные операции над массивами и списками 9.1. Массив и список. Цикл foreach 9.2. Функции list() и array() 9.3. Удаление массива 9.4. Слияние массивов 9.5. Функция print_r() Глава 10. Функции сортировки массивов 10.1. Функции для сортировки массивов 10.2. Функция sort() - сортировка списка 10.3. Функция asort() - сортировка массива по значениям 10.4. Функция ksort() - сортировка по ключам 10.5. Функции array_reverse() и shuffle() 10.6. Собственная функция сортировки 10.7. Натуральная сортировка Глава 11. Особые операции над массивами 11.1. Добавление и удаление элементов массива 11.2. Упаковка переменных в массив и их извлечение 11.3. Получение части массива 11.4. Функции автоматического заполнения массива 11.5. Сравнение массивов 11.6. Полезные операции над массивом 11.6.1. Вычисление суммы и произведения всех элементов массива 11.6.2. Проверка существования элемента в массиве 11.6.3. Получение случайного элемента из массива 11.6.4. Удаление дубликатов из массива 11.6.5. Получение значений и ключей массива 11.6.6. Замена местами значений и ключей 11.6.7. Подсчет значений в массиве 11.6.8. Замена в массиве 11.6.9. Поиск в массиве 11.6.10. Прогулка по массиву Раздел 4. Функции в РНР Глава 12. Полезные стандартные функции 12.1. Генератор случайных чисел 12.2. Дата и время 12.2.1. Кратко о timestamp 12.2.2. Функции strtotime() и checkdate() 12.2.3. Вывод даты 12.3. Математические функции Глава 13. Функции для работы со строками 13.1. Основные строковые функции 13.2. Специальные функции замены 13.3. Преобразование строки 13.4. Функции преобразования кодировок 13.5. Функции для работы с отдельными символами строки 13.6. Функция md5() и другие функции шифрования/хэширования 13.7. Функция explode(): выделение подстрок 13.8. Статистические функции 13.9. Функции вывода текста 13.10. Установка локали 13.11. Форматирование чисел и денежных величин 13.12. Преобразование систем счисления Глава 14. Работаем с файлами и каталогами 14.1. Права доступа в UNIX 14.2. Чтение файла 14.2.1. Использование функций fopen() и fread() 14.2.2. Использование функции file(): построчное чтение файла 14.2.3. Чтение всего файла: функция file_get contents() 14.3. Запись файла 14.4. Создание временных файлов 14.5. Работа с CSV-файлами 14.6. Специальные функции для работы с файлами 14.6.1. Функции для работы с именами файлов 14.6.2. Работа с правами доступа 14.6.3. Копирование, переименование и удаление файлов 14.6.4. Время доступа к файлу 14.6.5. Другие полезные функции 14.7. Совместный доступ к файлу 14.8. Функции для работы с каталогами Глава 15. Вывод графических изображений средствами РНР 15.1. Библиотека GD 15.1.1. Получение информации об изображении 15.1.2. Конвертирование графических форматов 15.1.3. Вывод текста поверх картинки. Задание цвета 15.1.4. Прозрачность 15.1.5. Рисование графических примитивов 15.1.6. Поворот изображения 15.2. Изменение размера изображения 15.3. Создание водяных знаков Глава 16. Работа с сетевыми сокетами в РНР. Сетевые функции 16.1. Еще раз о том, что такое сокет 16.2. Использование сокетов 16.3. Пример использования сокетов 16.4. Блокирующий и неблокирующий режимы сокета 16.5. DNS-функции Глава 17. Собственные функции 17.1. Зачем нужны собственные функции 17.2. Особенности функций в РНР 17.3. Объявление функции 17.4. Области видимости функции 17.5. Вложенность функций 17.6. Переменное число аргументов 17.7. Передача массивов в качестве параметров Раздел 5. Серверы баз данных MySQL 6 и SQLite Глава 18. Основы SQL 18.1. Немного истории 18.2. Преимущества SQL 18.3. Как выглядят запросы 18.4. Что такое база данных 18.5. Создание таблиц 18.6. Добавление записей в таблицу 18.7. Обновление записей 18.8. Выборка записей 18.9. Удаление записей 18.10. Встроенные функции 18.11. Группировка записей. Сложные запросы 18.12. Копирование записей из одной таблицы в другую 18.13. Кэширование запросов Глава 19. Функции для работы с MySQL 19.1. Подключение к серверу MySQL 19.2. Несколько MySQL-соединений 19.3. Передача запросов серверу 19.4. Работа с базой данных. Создание базы данных 19.5. Функция mysql_real_escape_string ($content) 19.6. Получение информации о результате запроса Глава 20. Альтернативная база данных SQLite 20.1. MySQL vs SQLite: что лучше 20.2. Открытие базы данных 20.3. Передача запросов 20.4. Работа с результатом запроса 20.5. Список РНР-функций для работы с SQLite Глава 21. Полезные приемы при работе с MySQL 6 21.1. Выбор кодировки 21.2. Сортировка: вывод новинок. Вывод случайных записей 21.3. Постраничный вывод таблицы Раздел 6. Инструменты для создания сложных проектов Глава 22. Разработка собственного шаблонизатора 22.1. Организация файлов и каталогов проекта 22.2. Выносим параметры в отдельный файл 22.3. Подключение дополнительных файлов 22.3.1. Инструкции include и require 22.3.2. Альтернативный способ подключения сценариев 22.3.3. Инструкции include once и require once 22.4. Шаблоны Глава 23. Шаблонизатор Smarty 23.1. Что такое Smarty 23.2. Установка Smarty 23.3. Создание setup.php 23.4. Разработка шаблонов Smarty 23.4.1. Комментарии в шаблонах 23.4.2. Переменные в Smarty 23.4.3. Файлы конфигурации шаблонов 23.4.4. Служебная переменная {$smarty} 23.4.5. Модификаторы переменных 23.4.6. Стандартные (встроенные) функции Smarty Функции {include} и {insert} Функция {foreach} Функции {if}, {elseij}, {else} Функция {capture} Функция {php} Функция {strip} 23.4.7. Пользовательские функции Smarty Функция {assign} Функция {cycle} Функция {fetch} Функции {htmlcheckboxes} и {html radios} Функция {html image} Функция {html_select_date} Функция {html select time} Функция {html table} 23.5. Smarty для программиста 23.5.1. Специальные переменные 23.5.2. Полезные методы класса Smarty Глава 24. Объектно-ориентированное программирование 24.1. Основы ООП 24.2. Классы и объекты 24.3. Конструкторы и деструкторы класса 24.4. Наследование классов. Полиморфизм 24.5. Новые возможности РНР 5 и 5.4 24.5.1. Область видимости членов класса 24.5.2. Абстрактные классы и методы 24.5.3. Служебное слово final 24.5.4. Клонирование объектов 24.5.5. Обработка исключительных ситуаций 24.5.6. Константы-члены класса 24.5.7. Статические члены класса 24.5.8. Оператор instanceof 24.5.9. Итераторы 24.5.10. Пространства имен 24.5.11. Типажи (traits) 25.5.12. Вызов метода или свойства класса выражением Глава 25. Механизм сессий 25.1. Для чего нужны сессии 25.2. Как работает механизм сессий 25.3. Обход Cookies 25.4. Сценарий аутентификации Глава 26. Введение в PEAR 26.1. Серьезные проекты и PEAR 26.2. Пример использования класса DB Глава 27. Контроль версий 27.1. Выбор системы контроля версий 27.2. Практическое использование TortoiseHG (Mercurial) 27.3. Просмотр внесенных изменений Глава 28. Тестирование РНР-сценариев 28.1. Программа работает, но не так, как нам нужно 28.2. «Самодельные» точки останова 28.3. Система автоматического тестирования 28.4. Директива error reporting Часть II. Практика Раздел 7. Разработка основных элементов сайта Глава 29. Загрузка файлов на сервер 29.1. Что нужно знать о загрузке файлов на сервер 29.2. Реализация загрузки файла 29.3. Загрузка нескольких файлов 29.4. Проблемы при загрузке файлов Глава 30. Использование FTP-функций 30.1. Функции для работы с FTP 30.2. Примеры использования FTP-функций Глава 31. Отправка и прием почты 31.1. Отправка почты средствами РНР - функция mail() 31.2. Отправка писем с вложениями - класс HtmlMimeMail 31.2.1. Отправка сообщения 31.2.2. Проблемы при отправке сообщения 31.2.3. MIME-типы 31.3. Класс PHPMailer. Разработка сценария автоматической рассылки прайс-листа 31.4. Получение писем по протоколу POP3 Глава 32. Работа с RSS: получаем новости на сайт 32.1. Краткие сведения о RSS 32.2. Формат RSS-файла 32.3. Написание сценария импорта новостей 32.4. Подключение файла import. php к сайту 32.5. Создание граббера новостей Глава 33. Поиск с использованием регулярных выражений 33.1. Нужно что-то найти 33.2. Язык регулярных выражений RegEx 33.3. Управляющие конструкции 33.3.1. Квантификаторы 33.3.2. Альтернативный оператор | 33.3.3. Скобки 33.4. Псевдосимволы 33.5. Практическое использование RegEx-функций 33.6. Фильтры, или Конец эры регулярных выражений Глава 34. Работаем с MP3 34.1. Формат MP3 34.2. Библиотека PEAR 34.3. Вывод ID3-тегов 34.4. Редактирование ID3-тегов 34.5. Удаление тега Глава 35. Технология Ajax 35.1. Что такое Ajax 35.2. Ваше первое Ajax-приложение Раздел 8. Разработка типичного сайта Глава 36. Создание простейшего движка сайта 36.1. Планирование движка 36.1.1. Зачем нужно разрабатывать собственный движок 36.1.2. Необходимые нам функции движка 36.1.3. «Принципиальная схема» движка 36.2. Основные функции движка 36.2.1. Разработка TPL-шаблона 36.2.2. Файл настроек 36.2.3. Основной файл CMS - index.php 36.2.4. Проектирование базы данных Таблица static Таблица cats Таблица pages 36.2.5. Иерархическая структура сайта Алгоритм работы меню Сценарий menu.php Вывод содержимого раздела и страницы 36.3. Дополнительные функции движка 36.3.1. Вывод информации из таблицы static 36.3.2. Функция вывода содержимого HTML-файла 36.3.3. Версия для печати 36.4. Где взять листинги этой главы Глава 37. Создание фотогалереи 37.1. Постановка задачи 37.2. Загрузка изображений на сервер 37.3. Вывод галереи Глава 38. Гостевая книга 38.1. Пережиток прошлого? 38.2. Разработка базы данных и структура гостевой книги 38.3. Вывод гостевой книги 38.4. Добавление записей в гостевую книгу 38.5. Сервисный сценарий gb_service.php Глава 39. Интеграция галереи LiveJournal и вашего сайта 39.1. Что такое Живой журнал 39.2. Интеграция фотогалереи LiveJournal и сайта 39.3. Настройка внешнего вида галереи Глава 40. Создание счетчика сайта 40.1. Постановка задачи 40.2. Файл конфигурации 40.3. Разработка таблиц counter и ipaddr 40.4. Сценарий counter.php 40.5. Сценарий reset counter.php Глава 41. Статистика сайта 41.1. Методы сбора статистики 41.2. Программы-анализаторы журналов Web-cepeepa 41.3. Системы статистики Глава 42. Голосования и комментарии для сайта 42.1. Разработка собственной системы голосования 42.1.1. Общая структура системы 42.1.2. Разработка сценария poll_form.php 42.1.3. Сценарий poll_process.php 42.1.4. Сценарий poll_results.php 42.2. Комментарии DISQUS 42.2.1. Описание платформы 42.2.2. Установка комментариев на свой сайт Раздел 9. Сложный проект Глава 43. Постановка задачи 43.1. Концепция проекта 43.2. Алгоритм работы 43.3. Структура базы данных Глава 44. Разработка основной части сайта 44.1. Структура проекта 44.2. Основной сценарий index.php 44.2.1. Подключение механизмов WordPress 44.2.2. Аутентификация пользователя 44.2.3. Форма добавления цели 44.2.4. Добавление цели 44.2.5. Просмотр всех целей 44.3. Сценарий v.php - просмотр цели 44.4. Сценарии отправки уведомлений. Сценарии yes.php и no.php Глава 45. Панель управления WordPress 45.1. О чем эта глава? 45.2. Вход в панель управления 45.3. Просмотр целей 45.4. Не забывайте о UTF-8 Раздел 10. Обеспечение безопасности сайта Глава 46. SSL-соединения 46.1. Защищаем передаваемые данные 46.2. Настройка SSL в DirectAdmin 46.3. SSL-переменные Глава 47. Защита РНР с помощью конфигурационного ф айла 47.1. Конфигурационный файл php.ini 47.2. Отключение потенциально опасных функций 47.3. Рекомендованные значения некоторых конфигурационных директив Глава 48. Защита сайта от атак 48.1. Сайт в опасности 48.2. Два самых распространенных метода взлома 48.3. Межсайтовый скриптинг 48.4. SQL-инъекции 48.5. Флуд 48.6. Защита форума РНРВВ2 от спаммеров Раздел 11. Полезные сведения Глава 49. Визуальный редактор SPAW2 для вашего сайта 49.1. Знакомство с визуальным редактором и его базовая настройка 49.2. Адаптация редактора к вашему сайту 49.2.1. Загрузка в редактор текста статьи 49.2.2. Вывод редактора в TPL-шаблоне 49.2.3. Запрет изменения размера редактора 49.2.4. Изменение размеров редактора «на лету» (в процессе выполнения) сценария 49.2.5. Панели инструментов редактора 49.2.6. Ошибка Error 105 (net:: ERR_NAME_NOT_RESOLVED) Глава 50. WAP-сервер средствами РНР 50.1. Есть ли необходимость в WAP? 50.2. Настройка Web-сервера Apache 50.3. РНР-сценарий Глава 51. Пишем коммерческий сценарий 51.1. Zend Guard: за и против 51.2. Установка Zend Guard 51.3. Быстрая защита сценария 51.4. Ошибка Unable to locate XML file 51.5. Лицензии 51.6. Zend Guard - панацея? Приложения Приложение 1. Программа phpMyAdmin Действия над таблицами Создание новой таблицы. Изменение структуры таблицы Вставка записей Обзор таблицы Выполнение произвольного SQL-кода Резервное копирование БД Приложение 2. Flash и РНР Приложение 3. Оптимизация РНР-кода П3.1. Правильное использование echo П3.2. Длина переменных П3. З. Правильное обращение к элементам массива П3.4. Циклы П3.5. Чтение файлов П3.6. Вывод текста: echo противprintf П3.7. «Лишние» вызовы функций П3.8. Контрольные замеры ПЗ.8.1. Чтение файла ПЗ.8.2. Вывод содержимого файла П3.9. Выводы Приложение 4. Описание электронного архива Предметный указатель