PHP 5/6 и MySQL 6. Разработка Web-приложений (+ CD-ROM)
Д.Н. Колисниченко
Даны начала программирования на PHP: установка и настройка PHP и MySQL, выбор редактора PHP-кода, основы синтаксиса и самые полезные функции PHP. Рассмотрено создание дополнительных модулей - фотогалереи, RSS-граббера, гостевой книги, собственного шаблонизатора, применение шаблонизатора Smarty, работа с SMTP, POP, MP3 и сервисом reCAPTCHA. В качестве хранилища данных использованы два сервера - самая современная версия MySQL 6 и «суперлегкий» сервер баз данных SQLite. Показано, как с помощью технологии Ajax добиться обновления данных на странице без ее перезагрузки. Представлены два реальных проекта: универсальная CMS и система продажи недвижимости. В третьем издании подробно рассмотрена программа phpMyAdmin, интеграция PHP-сценариев и Flash-приложений, оптимизация PHP-кода, добавлен новый материал в 12 глав.
Прилагаемый компакт-диск содержит дополнительные главы, все листинги из книги, а также необходимое программное обеспечение.
Издательство: БХВ-Петербург, 3-е издание, 2011 г.
ISBN 978-5-9775-0704-2
Количество страниц: 528.
Содержание книги «PHP 5/6 и MySQL 6. Разработка Web-приложений (+ CD-ROM)»:
- 1 Введение
- 1 Что нового в 3-м издании
- 2 Немного истории
- 3 PHP 6
- 4 MySQL
- 4 Поддержка читателей
- 5 ЧАСТЬ I. ТЕОРИЯ
- 7 РАЗДЕЛ 1. БЫСТРЫЙ СТАРТ
- 9 Глава 1. Установка необходимого программного обеспечения
- 9 1.1. Нужно ли устанавливать программное обеспечение
- 10 1.2. Выбор PHP-редактора и FTP-клиента
- 13 1.3. Установка Apache + PHP + MySQL в Windows
- 20 1.4. Установка Apache + PHP + MySQL в Linux
- 21 1.5. Несколько советов
- 22 Глава 2. Первая PHP-программа
- 22 2.1. Ваша первая программа
- 23 2.2. Запуск PHP-программы
- 24 2.3. Вывод текста без echo
- 25 2.4. Совместимость с PHP 4
- 27 Глава 3. Основы синтаксиса PHP
- 27 3.1. Переменные
- 27 3.1.1. Правила объявления переменных. Имена переменных
- 28 3.1.2. Типы данных переменных
- 29 3.1.3. Булевы переменные
- 30 3.1.4. Операции над переменными
- 31 3.1.5. Ссылки
- 32 3.2. Константы
- 33 3.3. Выражения и операции
- 33 3.3.1. Что такое выражение
- 33 3.3.2. Арифметические операции
- 34 3.3.3. Логические выражения
- 34 3.3.4. Приоритеты операций
- 35 3.3.5. Операторы эквивалентности == и ===
- 36 3.3.6. Операции со строками
- 37 3.4. Условный оператор
- 38 3.5. Циклы
- 38 3.5.1. Цикл со счетчиком
- 38 3.5.2. Цикл while
- 39 3.5.3. Цикл do-while
- 39 3.5.4. Принудительное завершение цикла и пропуск итерации
- 40 3.6. Оператор выбора switch-case
- 27 3.1. Переменные
- 43 РАЗДЕЛ 2. ПЕРЕДАЧА ПАРАМЕТРОВ PHP-ПРОГРАММАМ
- 45 Глава 4. Методы GET и POST
- 45 4.1. Интерфейс CGI
- 47 4.2. Метод GET
- 47 4.3. Метод POST
- 49 Глава 5. Протокол HTTP и интерфейс CGI
- 49 5.1. Специальные переменные окружения CGI
- 50 5.2. Заголовки протокола HTTP
- 51 5.3. Коды ответов протокола HTTP
- 53 Глава 6. Передача параметров посредством HTML-формы
- 53 6.1. Создание простейшей формы и ее обработка в сценарии
- 56 6.2. Создание пользовательского интерфейса с помощью формы
- 57 6.2.1. Ввод текста. Теги INPUT и TEXTAREA
- 58 6.2.2. Зависимые и независимые переключатели
- 59 6.2.3. Списки выбора
- 61 6.2.4. Форма для передачи файлов
- 61 6.2.5. Кнопки
- 62 6.3. Проверка параметров формы
- 63 6.3.1. Проверка корректности e-mail
- 64 6.3.2. Проверка правильности номера кредитной карты
- 65 6.3.3. Удаление лишних пробелов
- 65 6.4. Защита от спама с помощью CAPTCHA
- 68 6.5. Форма поиска в Яндексе
- 69 Глава 7. Запоминание параметров с помощью Cookies и сессий
- 69 7.1. Что такое Cookies и как с ними работать
- 71 7.2. Механизм сессий
- 71 7.2.1. Сессии и Cookies: преимущества и недостатки
- 71 7.2.2. Для чего нужны сессии
- 73 7.2.3. Как работает механизм сессий
- 74 7.2.4. Обход Cookies
- 75 7.3. Массивы и Cookies
- 76 Глава 8. Отдельное слово о директиве register_globals
- 76 8.1. Почему опасно использовать register_globals
- 80 8.2. Если register_globals отключена
- 82 8.3. PHP 6 и register_globals
- 83 РАЗДЕЛ 3. МАССИВЫ И СПИСКИ
- 85 Глава 9. Основные операции над массивами и списками
- 85 9.1. Массив и список. Цикл foreach
- 87 9.2. Функции list() и array()
- 88 9.3. Удаление массива
- 88 9.4. Слияние массивов
- 90 9.5. Функция print_r()
- 92 Глава 10. Функции сортировки массивов
- 92 10.1. Функции для сортировки массивов
- 92 10.2. Функция sort() – сортировка списка
- 93 10.3. Функция asort() – сортировка массива по значениям
- 94 10.4. Функция ksort() – сортировка по ключам
- 95 10.5. Функции array_reverse() и shuffle()
- 95 10.6. Собственная функция сортировки
- 96 10.7. Натуральная сортировка
- 98 Глава 11. Особые операции над массивами
- 98 11.1. Добавление и удаление элементов массива
- 99 11.2. Упаковка переменных в массив и их извлечение
- 101 11.3. Получение части массива
- 101 11.4. Функции автоматического заполнения массива
- 102 11.5. Сравнение массивов
- 103 11.6. Полезные операции над массивом
- 103 11.6.1. Вычисление суммы и произведения всех элементов массива
- 103 11.6.2. Проверка существования элемента в массиве
- 104 11.6.3. Получение случайного элемента из массива
- 104 11.6.4. Удаление дубликатов из массива
- 105 11.6.5. Получение значений и ключей массива
- 105 11.6.6. Замена местами значений и ключей
- 105 11.6.7. Подсчет значений в массиве
- 106 11.6.8. Замена в массиве
- 106 11.6.9. Поиск в массиве
- 107 11.6.10. Прогулка по массиву
- 109 РАЗДЕЛ 4. ФУНКЦИИ В PHP
- 111 Глава 12. Полезные стандартные функции
- 111 12.1. Генератор случайных чисел
- 112 12.2. Дата и время
- 112 12.2.1. Кратко о timestamp
- 112 12.2.2. Функции strtotime() и checkdate()
- 113 12.2.3. Вывод даты
- 115 12.3. Математические функции
- 116 Глава 13. Функции для работы со строками
- 116 13.1. Основные строковые функции
- 119 13.2. Специальные функции замены
- 120 13.3. Преобразование строки
- 122 13.4. Функции преобразования кодировок
- 122 13.5. Функции для работы с отдельными символами строки
- 123 13.6. Функция md5() и другие функции шифрования/хэширования
- 124 13.7. Функция explode(): выделение подстрок
- 124 13.8. Статистические функции
- 125 13.9. Функции вывода текста
- 127 13.10. Установка локали
- 128 13.11. Форматирование чисел и денежных величин
- 129 Глава 14. Работаем с файлами и каталогами
- 129 14.1. Права доступа в UNIX
- 131 14.2. Чтение файла
- 132 14.2.1. Использование функций fopen() и fread()
- 134 14.2.2. Использование функции file(): построчное чтение файла
- 135 14.2.3. Чтение всего файла: функция file_get_contents()
- 135 14.3. Запись файла
- 136 14.4. Создание временных файлов
- 136 14.5. Работа с CSV-файлами
- 139 14.6. Специальные функции для работы с файлами
- 139 14.6.1. Функции для работы с именами файлов
- 139 14.6.2. Работа с правами доступа
- 140 14.6.3. Копирование, переименование и удаление файлов
- 141 14.6.4. Время доступа к файлу
- 142 14.6.5. Другие полезные функции
- 142 14.7. Совместный доступ к файлу
- 143 14.8. Функции для работы с каталогами
- 145 Глава 15. Вывод графических изображений средствами PHP
- 145 15.1. Библиотека GD
- 145 15.1.1. Получение информации об изображении
- 148 15.1.2. Конвертирование графических форматов
- 150 15.1.3. Вывод текста поверх картинки
- 153 15.1.4. Прозрачность
- 153 15.2. Изменение размера изображения
- 155 15.3. Создание водяных знаков
- 145 15.1. Библиотека GD
- 157 Глава 16. Работа с сетевыми сокетами в PHP. Сетевые функции
- 157 16.1. Еще раз о том, что такое сокет
- 157 16.2. Использование сокетов
- 158 16.3. Пример использования сокетов
- 161 16.4. Блокирующий и неблокирующий режимы сокета
- 162 16.5. DNS-функции
- 163 Глава 17. Собственные функции
- 163 17.1. Зачем нужны собственные функции
- 163 17.2. Особенности функций в PHP
- 164 17.3. Объявление функции
- 165 17.4. Области видимости функции
- 165 17.5. Вложенность функций
- 167 17.6. Переменное число аргументов
- 168 17.7. Передача массивов в качестве параметров
- 169 РАЗДЕЛ 5. СЕРВЕРЫ БАЗ ДАННЫХ MYSQL 6 И SQLITE
- 171 Глава 18. Основы SQL
- 171 18.1. Немного истории
- 171 18.2. Преимущества SQL
- 172 18.3. Как выглядят запросы
- 173 18.4. Что такое база данных
- 174 18.5. Создание таблиц
- 177 18.6. Добавление записей в таблицу
- 178 18.7. Обновление записей
- 179 18.8. Выборка записей
- 180 18.9. Удаление записей
- 181 18.10. Встроенные функции
- 181 18.11. Группировка записей. Сложные запросы
- 185 Глава 19. Функции для работы с MySQL
- 185 19.1. Подключение к серверу MySQL
- 187 19.2. Несколько MySQL-соединений
- 188 19.3. Передача запросов серверу
- 191 19.4. Работа с базой данных. Создание базы данных
- 192 19.5. Функция mysql_real_escape_string($content)
- 193 Глава 20. Альтернативная база данных SQLite
- 193 20.1. MySQL vs SQLite: что лучше
- 195 20.2. Открытие базы данных
- 195 20.3. Передача запросов
- 196 20.4. Работа с результатом запроса
- 197 20.5. Список PHP-функций для работы с SQLite
- 199 Глава 21. Полезные приемы при работе с MySQL 6
- 199 21.1. Выбор кодировки
- 200 21.2. Сортировка: вывод новинок. Вывод случайных записей
- 201 21.3. Постраничный вывод таблицы
- 207 РАЗДЕЛ 6. ИНСТРУМЕНТЫ ДЛЯ СОЗДАНИЯ СЛОЖНЫХ ПРОЕКТОВ
- 209 Глава 22. Разработка собственного шаблонизатора
- 209 22.1. Организация файлов и каталогов проекта
- 212 22.2. Выносим параметры в отдельный файл
- 213 22.3. Подключение дополнительных файлов
- 213 22.3.1. Инструкции include и require
- 213 22.3.2. Альтернативный способ подключения сценариев
- 215 22.3.3. Инструкции include_once и require_once
- 215 22.4. Шаблоны
- 219 Глава 23. Шаблонизатор Smarty
- 219 23.1. Что такое Smarty
- 219 23.2. Установка Smarty
- 222 23.3. Создание setup.php
- 223 23.4. Разработка шаблонов Smarty
- 223 23.4.1. Комментарии в шаблонах
- 224 23.4.2. Переменные в Smarty
- 225 23.4.3. Файлы конфигурации шаблонов
- 226 23.4.4. Служебная переменная {$smarty}
- 227 23.4.5. Модификаторы переменных
- 230 23.4.6. Стандартные (встроенные) функции Smarty
- 230 Функции {include} и {insert}
- 230 Функция {foreach}
- 232 Функции {if}, {elseif}, {else}
- 233 Функция {capture}
- 233 Функция {php}
- 233 Функция {strip}
- 234 23.4.7. Пользовательские функции Smarty
- 234 Функция {assign}
- 234 Функция {cycle}
- 235 Функция {fetch}
- 235 Функции {html_checkboxes} и {html_radios}
- 236 Функция {html_image}
- 236 Функция {html_select_date}
- 237 Функция {html_select_time}
- 238 Функция {html_table}
- 239 23.5. Smarty для программиста
- 239 23.5.1. Специальные переменные
- 241 23.5.2. Полезные методы класса Smarty
- 242 Глава 24. Объектно-ориентированное программирование
- 242 24.1. Основы ООП
- 243 24.2. Классы и объекты
- 245 24.3. Конструкторы и деструкторы класса
- 246 24.4. Наследование классов. Полиморфизм
- 247 24.5. Новые возможности PHP 5/6
- 247 24.5.1. Область видимости членов класса
- 248 24.5.2. Абстрактные классы и методы
- 248 24.5.3. Служебное слово final
- 249 24.5.4. Клонирование объектов
- 250 24.5.5. Обработка исключительных ситуаций
- 251 24.5.6. Константы-члены класса
- 251 24.5.7. Статические члены класса
- 252 24.5.8. Оператор instanceof
- 252 24.5.9. Итераторы
- 252 24.5.10. Пространства имен
- 254 Глава 25. Механизм сессий
- 254 25.1. Для чего нужны сессии
- 255 25.2. Как работает механизм сессий
- 257 25.3. Обход Cookies
- 257 25.4. Сценарий аутентификации
- 262 Глава 26. Введение в PEAR
- 262 26.1. Серьезные проекты и PEAR
- 263 26.2. Пример использования класса DB
- 267 Глава 27. Контроль версий
- 267 27.1. Выбор системы контроля версий
- 268 27.2. Практическое использование TortoiseHG (Mercurial)
- 269 27.3. Просмотр внесенных изменений
- 273 Глава 28. Тестирование PHP-сценариев
- 273 28.1. Программа работает, но не так, как нам нужно
- 274 28.2. «Самодельные» точки останова
- 275 28.3. Система автоматического тестирования
- 279 28.4. Директива error_reporting
- 281 ЧАСТЬ II. ПРАКТИКА
- 283 РАЗДЕЛ 7. РАЗРАБОТКА ОСНОВНЫХ ЭЛЕМЕНТОВ САЙТА
- 285 Глава 29. Загрузка файлов на сервер
- 285 29.1. Что нужно знать о загрузке файлов на сервер
- 288 29.2. Реализация загрузки файла
- 290 29.3. Загрузка нескольких файлов
- 292 29.4. Проблемы при загрузке файлов
- 293 Глава 30. Использование FTP-функций
- 293 30.1. Функции для работы с FTP
- 296 30.2. Примеры использования FTP-функций
- 299 Глава 31. Отправка и прием почты
- 299 31.1. Отправка почты средствами PHP – функция mail()
- 300 31.2. Отправка писем с вложениями – класс HtmlMimeMail
- 300 31.2.1. Отправка сообщения
- 304 31.2.2. Проблемы при отправке сообщения
- 305 31.2.3. MIME-типы
- 306 31.3. Класс PHPMailer. Разработка сценария автоматической рассылки прайс-листа
- 310 31.4. Получение писем по протоколу POP3
- 314 Глава 32. Работа с RSS: получаем новости на сайт
- 314 32.1. Краткие сведения о RSS
- 314 32.2. Формат RSS-файла
- 317 32.3. Написание сценария импорта новостей
- 319 32.4. Подключение файла import.php к сайту
- 320 32.5. Создание граббера новостей
- 324 Глава 33. Поиск с использованием регулярных выражений
- 324 33.1. Нужно что-то найти
- 325 33.2. Язык регулярных выражений RegEx
- 327 33.3. Управляющие конструкции
- 327 33.3.1. Квантификаторы
- 327 33.3.2. Альтернативный оператор
- 327 33.3.3. Скобки
- 328 33.4. Псевдосимволы
- 328 33.5. Практическое использование RegEx-функций
- 332 33.6. Фильтры, или Конец эры регулярных выражений
- 334 Глава 34. Работаем с MP3
- 334 34.1. Формат MP3
- 335 34.2. Библиотека PEAR
- 336 34.3. Вывод ID3-тегов
- 337 34.4. Редактирование ID3-тегов
- 338 34.5. Удаление тега
- 339 Глава 35. Технология Ajax
- 339 35.1. Что такое Ajax
- 340 35.2. Ваше первое Ajax-приложение
- 345 РАЗДЕЛ 8. РАЗРАБОТКА ТИПИЧНОГО САЙТА
- 347 Глава 36. Создание простейшего движка сайта
- 347 36.1. Планирование движка
- 347 36.1.1. Зачем нужно разрабатывать собственный движок
- 348 36.1.2. Необходимые нам функции движка
- 350 36.1.3. «Принципиальная схема» движка
- 351 36.2. Основные функции движка
- 351 36.2.1. Разработка TPL-шаблона
- 352 36.2.2. Файл настроек
- 353 36.2.3. Основной файл CMS – index.php
- 355 36.2.4. Проектирование базы данных
- 355 Таблица static
- 356 Таблица cats
- 357 Таблица pages
- 358 36.2.5. Иерархическая структура сайта
- 358 Алгоритм работы меню
- 360 Сценарий menu.php
- 365 Вывод содержимого раздела и страницы
- 369 36.3. Дополнительные функции движка
- 369 36.3.1. Вывод информации из таблицы static
- 370 36.3.2. Функция вывода содержимого HTML-файла
- 371 36.3.3. Версия для печати
- 372 36.4. Где взять листинги этой главы
- 347 36.1. Планирование движка
- 373 Глава 37. Создание фотогалереи
- 373 37.1. Постановка задачи
- 373 37.2. Загрузка изображений на сервер
- 377 37.3. Вывод галереи
- 380 Глава 38. Гостевая книга
- 380 38.1. Пережиток прошлого?
- 381 38.2. Разработка базы данных и структура гостевой книги
- 381 38.3. Вывод гостевой книги
- 384 38.4. Добавление записей в гостевую книгу
- 387 38.5. Сервисный сценарий gb_service.php
- 389 Глава 39. Интеграция галереи LiveJournal и вашего сайта
- 389 39.1. Что такое Живой журнал
- 390 39.2. Интеграция фотогалереи LiveJournal и сайта
- 394 39.3. Настройка внешнего вида галереи
- 396 Глава 40. Создание счетчика сайта
- 396 40.1. Постановка задачи
- 396 40.2. Файл конфигурации
- 397 40.3. Разработка таблиц counter и ipaddr
- 398 40.4. Сценарий counter.php
- 402 40.5. Сценарий reset_counter.php
- 404 Глава 41. Статистика сайта
- 404 41.1. Методы сбора статистики
- 405 41.2. Программы-анализаторы журналов Web-сервера
- 407 41.3. Системы статистики
- 410 Глава 42. Голосования (опросы)
- 410 42.1. Разработка собственной системы голосования
- 412 42.2. Разработка сценария poll_form.php
- 413 42.3. Сценарий poll_process.php
- 414 42.4. Сценарий poll_results.php
- 419 РАЗДЕЛ 9. СЛОЖНЫЙ ПРОЕКТ: САЙТ ПО ПРОДАЖЕ НЕДВИЖИМОСТИ
- 421 Глава 43. Постановка задачи
- 421 43.1. Функции будущего проекта
- 422 43.2. Разработка базы данных
- 431 Глава 44. Разработка основной части сайта
- 431 44.1. С чего начать
- 432 44.2. Реализация основных функций системы
- 432 44.2.1. Аутентификация пользователей
- 435 44.2.2. Вывод VIP-объявлений
- 437 44.2.3. Вывод объявлений об услугах
- 438 44.2.4. Вывод рекламных баннеров
- 438 44.2.5. Постраничный вывод объявлений
- 441 44.3. На что обратить внимание
- 447 Глава 45. Разработка панели администрирования
- 447 45.1. Функции панели управления
- 448 45.2. Управление VIP-объявлениями
- 449 45.3. Массовая отправка электронного сообщения
- 450 45.4. Общие операции с базой данных
- 450 45.5. Редактирование статей, новостей и контактов
- 451 РАЗДЕЛ 10. ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ САЙТА
- 453 Глава 46. SSL-соединения
- 453 46.1. Защищаем передаваемые данные
- 454 46.2. Настройка SSL в DirectAdmin
- 456 46.3. SSL-переменные
- 458 Глава 47. Защита PHP с помощью конфигурационного файла
- 458 47.1. Конфигурационный файл php.ini
- 460 47.2. Отключение потенциально опасных функций
- 460 47.3. Рекомендованные значения некоторых конфигурационных директив
- 461 Глава 48. Защита сайта от атак
- 461 48.1. Сайт в опасности
- 462 48.2. Два самых распространенных метода взлома
- 462 48.3. Межсайтовый скриптинг
- 464 48.4. SQL-инъекции
- 468 48.5. Флуд
- 469 48.6. Защита форума PHPBB2 от спаммеров
- 471 ПРИЛОЖЕНИЯ
- 473 Приложение 1. Программа phpMyAdmin
- 474 Действия над таблицами
- 476 Создание новой таблицы. Изменение структуры таблицы
- 477 Вставка записей
- 477 Обзор таблицы
- 477 Выполнение произвольного SQL-кода
- 479 Резервное копирование БД
- 480 Приложение 2. Flash и PHP
- 484 Приложение 3. Оптимизация PHP-кода
- 484 П3.1. Правильное использование echo
- 485 П3.2. Длина переменных
- 485 П3.3. Правильное обращение к элементам массива
- 486 П3.4. Циклы
- 487 П3.5. Чтение файлов
- 489 П3.6. Вывод текста: echo против printf
- 491 П3.7. «Лишние» вызовы функций
- 492 П3.8. Контрольные замеры
- 492 П3.8.1. Чтение файла
- 493 П3.8.2. Вывод содержимого файла
- 495 П3.9. Выводы
- 496 Приложение 4. Описание компакт-диска
- 499 Предметный указатель
Инструкция как скачать книгу Д.Н. Колисниченко: PHP 5/6 и MySQL 6. Разработка Web-приложений (+ CD-ROM) в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.