На главную | Где купить | Авторам и заказчикам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты | Прайс листы

PHP и MySQL. Разработка веб-приложений. 5-е изд.

Автор Колисниченко Д.
Название PHP и MySQL. Разработка веб-приложений. 5-е изд.
Серия Профессиональное программирование
ISBN 978-5-9775-3514-4
Формат 70*100 1/16
Объем 592
Тематика
Оптовая цена
    Вернуться к описанию книги

Полное содержание

Оглавление Предисловие 15
Что нового в 5-м издании? 15
Немного истории 16
PHP 5.5, или что случилось с PHP 6? 17
Основные нововведения в PHP версии 5.4 19
Типажи 19
Разыменовывание массива 19
Встроенный веб-сервер 19
Индикатор загрузки файла 19
Основные нововведения в PHP версии 5.5 20
Генераторы 20
Ключевые слова finally и class 20
API хэширования паролей 20
Разыменовывание строк 20
Изменения в работе конструкции foreach 20
Поддержка графического формата WebP 20
Исключенные возможности 20
MySQL 21
Поддержка читателей 21

Часть I. Теория

23
Раздел 1. Быстрый старт 25

Глава 1. Установка необходимого программного обеспечения

27
1.1. Нужно ли устанавливать программное обеспечение? 27
1.2. Выбор PHP-редактора и FTP-клиента 29
1.3. Установка связки Apache + PHP + MySQL в Windows 31
1.3.1. Для опытных пользователей: установка вручную 31
1.3.2. Установка для новичков (рекомендуется) 38
1.4. Установка Apache + PHP + MySQL в Linux 42
1.5. Конфликты с другим программным обеспечением 43
1.6. Функция phpinfo(): получение информации о PHP 44
1.7. Несколько советов 46

Глава 2. Программа на PHP

47
2.1. Ваша первая программа 47
2.2. Запуск PHP-программы 48
2.3. Вывод текста без echo 49

Глава 3. Основы синтаксиса PHP

51
3.1. Переменные 51
3.1.1. Правила объявления переменных. Имена переменных 51
3.1.2. Типы данных переменных 52
3.1.3. Булевы переменные 53
3.1.4. Операции над переменными 54
3.1.5. Ссылки 55
3.2. Константы 56
3.3. Выражения и операции 57
3.3.1. Что такое выражение 57
3.3.2. Арифметические операции 57
3.3.3. Логические выражения 58
3.3.4. Приоритеты операций 58
3.3.5. Операторы эквивалентности == и === 59
3.3.6. Операции со строками 60
3.4. Условный оператор 61
3.5. Циклы 62
3.5.1. Цикл со счетчиком for 62
3.5.2. Цикл while 62
3.5.3. Цикл do-while 63
3.5.4. Принудительное завершение цикла и пропуск итерации 63
3.6. Оператор выбора switch-case 64
Раздел 2. Передача параметров PHP-программам 67

Глава 4. Методы GET и POST

69
4.1. Интерфейс CGI 69
4.2. Метод GET 71
4.3. Метод POST 71

Глава 5. Протокол HTTP и интерфейс CGI

73
5.1. Специальные переменные окружения CGI 73
5.2. Заголовки протокола HTTP 74
5.3. Коды ответов протокола HTTP 75

Глава 6. Передача параметров посредством HTML-формы

77
6.1. Создание простейшей формы и ее обработка в сценарии 77
6.2. Создание пользовательского интерфейса с помощью формы 80
6.2.1. Ввод текста. Теги INPUT и TEXTAREA 81
6.2.2. Зависимые и независимые переключатели 82
6.2.3. Списки выбора 83
6.2.4. Форма для передачи файлов 85
6.2.5. Кнопки 85
6.3. Проверка параметров формы 86
6.3.1. Проверка корректности e-mail 87
6.3.2. Проверка правильности номера кредитной карты 88
6.3.3. Удаление лишних пробелов 90
6.4. Защита от спама с помощью формы CAPTCHA 90
6.5. Форма поиска в Яндексе 92

Глава 7. Запоминание параметров с помощью Cookies и сессий

94
7.1. Что такое Cookies и как с ними работать? 94
7.2. Механизм сессий 96
7.2.1. Сессии и Cookies: преимущества и недостатки 96
7.2.2. Для чего нужны сессии? 96
7.2.3. Как работает механизм сессий? 98
7.2.4. Обход Cookies 99
7.3. Массивы и Cookies 100

Глава 8. Отдельное слово о директиве register_globals

101
8.1. Почему опасно использовать register_globals? 101
8.2. Если register_globals отключена 105
Раздел 3. Массивы и списки 107

Глава 9. Основные операции над массивами и списками

109
9.1. Массив и список. Цикл foreach 109
9.2. Функции list() и array() 111
9.3. Удаление массива 113
9.4. Слияние массивов 113
9.5. Функция print_r() 115
9.6. Разыменовывание массива 116

Глава 10. Функции сортировки массивов

118
10.1. Сортировка массивов 118
10.2. Функция sort() — сортировка списка 118
10.3. Функция asort() — сортировка массива по значениям 119
10.4. Функция ksort() — сортировка по ключам 120
10.5. Функции array_reverse() и shuffle() 121
10.6. Собственная функция сортировки 121
10.7. Натуральная сортировка 122

Глава 11. Особые операции над массивами

124
11.1. Добавление и удаление элементов массива 124
11.2. Упаковка переменных в массив и их извлечение 125
11.3. Получение части массива 127
11.4. Функции автоматического заполнения массива 127
11.5. Сравнение массивов 128
11.6. Полезные операции над массивом 129
11.6.1. Вычисление суммы и произведения всех элементов массива 129
11.6.2. Проверка существования элемента в массиве 129
11.6.3. Получение случайного элемента из массива 130
11.6.4. Удаление дубликатов из массива 130
11.6.5. Получение значений и ключей массива 131
11.6.6. Замена местами значений и ключей 131
11.6.7. Подсчет значений в массиве 131
11.6.8. Замена в массиве 132
11.6.9. Поиск в массиве 132
11.6.10. Прогулка по массиву 133
Раздел 4. Функции в PHP 135

Глава 12. Полезные стандартные функции

137
12.1. Генератор случайных чисел 137
12.2. Дата и время 138
12.2.1. Кратко о timestamp 138
12.2.2. Функции strtotime() и checkdate() 138
12.2.3. Вывод даты 139
12.3. Математические функции 141

Глава 13. Функции для работы со строками

142
13.1. Основные строковые функции 142
13.2. Специальные функции замены 145
13.3. Преобразование строки 147
13.4. Функции преобразования кодировок 149
13.5. Функции для работы с отдельными символами строки. Разыменовывание строки 150
13.6. Функция md5() и другие функции шифрования/хэширования. API хэширования паролей 151
13.7. Функция explode(): выделение подстрок 152
13.8. Статистические функции 153
13.9. Функции вывода текста 154
13.10. Установка локали 156
13.11. Форматирование чисел и денежных величин 157
13.12. Преобразование систем счисления 157

Глава 14. Работаем с файлами и каталогами

158
14.1. Права доступа в UNIX 158
14.2. Чтение файла 160
14.2.1. Функции fopen() и fread() 161
14.2.2. Функция file(): построчное чтение файла 163
14.2.3. Чтение всего файла: функция file_get_contents() 164
14.3. Запись файла 164
14.4. Создание временных файлов 165
14.5. Работа с CSV-файлами 165
14.6. Специальные функции для работы с файлами 167
14.6.1. Функции для работы с именами файлов 168
14.6.2. Работа с правами доступа 168
14.6.3. Копирование, переименование и удаление файлов 169
14.6.4. Время доступа к файлу 170
14.6.5. Другие полезные функции 170
14.7. Совместный доступ к файлу 171
14.8. Функции для работы с каталогами 172

Глава 15. Вывод графических изображений средствами PHP

174
15.1. Библиотека GD 174
15.1.1. Получение информации об изображении 174
15.1.2. Конвертирование графических форматов 177
15.1.3. Вывод текста поверх картинки. Задание цвета 179
15.1.4. Прозрачность 182
15.1.5. Рисование графических примитивов 183
15.1.6. Поворот изображения 185
15.2. Изменение размера изображения 185
15.3. Создание водяных знаков 187
15.4. Поддержка графического формата WebP в PHP 5.5 189

Глава 16. Работа с сетевыми сокетами в PHP. Сетевые функции

191
16.1. Еще раз о том, что такое сокет 191
16.2. Использование сокетов 191
16.3. Пример использования сокетов 192
16.4. Блокирующий и неблокирующий режимы сокета 195
16.5. DNS-функции 196

Глава 17. Собственные функции

197
17.1. Зачем нужны собственные функции? 197
17.2. Особенности функций в PHP 197
17.3. Объявление функции 198
17.4. Области видимости функции 199
17.5. Вложенность функций 199
17.6. Переменное число аргументов 201
17.7. Передача массивов в качестве параметров 202
17.8. Генераторы 202
17.9. Особенности использования функции empty() 203
Раздел 5. Серверы баз данных MySQL 6 и SQLite 205

Глава 18. Основы SQL

207
18.1. Немного истории 207
18.2. Преимущества SQL 207
18.3. Как выглядят запросы? 208
18.4. Что такое база данных? 209
18.5. Создание таблиц 210
18.6. Добавление записей в таблицу 214
18.7. Обновление записей 214
18.8. Выборка записей 215
18.9. Удаление записей 216
18.10. Встроенные функции 217
18.11. Группировка записей. Сложные запросы 218
18.12. Копирование записей из одной таблицы в другую 221
18.13. Кэширование запросов 222

Глава 19. Функции для работы с MySQL

224
19.1. Подключение к серверу MySQL 224
19.2. Несколько MySQL-соединений 226
19.3. Передача запросов серверу 227
19.4. Работа с базой данных. Создание базы данных 230
19.5. Функция mysql_real_escape_string($content) 231
19.6. Получение информации о результате запроса 231

Глава 20. Альтернативная база данных SQLite

233
20.1. MySQL vs SQLite: что лучше? 233
20.2. Открытие базы данных 235
20.3. Передача запросов 235
20.4. Работа с результатом запроса 236
20.5. Список PHP-функций для работы с SQLite 237

Глава 21. Полезные приемы при работе с MySQL 6

239
21.1. Выбор кодировки 239
21.2. Сортировка: вывод новинок. Вывод случайных записей 240
21.3. Постраничный вывод таблицы 241
Раздел 6. Инструменты для создания сложных проектов 245

Глава 22. Разработка собственного шаблонизатора

247
22.1. Организация файлов и каталогов проекта 247
22.2. Выносим параметры в отдельный файл 250
22.3. Подключение дополнительных файлов 251
22.3.1. Инструкции include и require 251
22.3.2. Альтернативный способ подключения сценариев 251
22.3.3. Инструкции include_once и require_once 253
22.4. Шаблоны 253

Глава 23. Шаблонизатор Smarty

258
23.1. Что такое Smarty? 258
23.2. Установка Smarty 258
23.3. Создание файла setup.php 261
23.4. Разработка шаблонов Smarty 262
23.4.1. Комментарии в шаблонах 262
23.4.2. Переменные в Smarty 263
23.4.3. Файлы конфигурации шаблонов 264
23.4.4. Служебная переменная {$smarty} 265
23.4.5. Модификаторы переменных 266
23.4.6. Стандартные (встроенные) функции Smarty 269
Функции {include} и {insert} 269
Функция {foreach} 269
Функции {if}, {elseif}, {else} 271
Функция {capture} 272
Функция {php} 272
Функция {strip} 272
23.4.7. Пользовательские функции Smarty 273
Функция {assign} 273
Функция {cycle} 273
Функция {fetch} 274
Функции {html_checkboxes} и {html_radios} 274
Функция {html_image} 275
Функция {html_select_date} 275
Функция {html_select_time} 276
Функция {html_table} 277
23.5. Smarty для программиста 278
23.5.1. Специальные переменные 278
23.5.2. Полезные методы класса Smarty 280

Глава 24. Объектно-ориентированное программирование

281
24.1. Основы ООП 281
24.2. Классы и объекты 282
24.3. Конструкторы и деструкторы класса 284
24.4. Наследование классов. Полиморфизм 285
24.5. Новые возможности PHP 5 и 5.4/5.5 286
24.5.1. Область видимости членов класса 286
24.5.2. Абстрактные классы и методы 287
24.5.3. Служебное слово final 288
24.5.4. Клонирование объектов 288
24.5.5. Обработка исключительных ситуаций 289
24.5.6. Константы-члены класса 292
24.5.7. Статические члены класса 293
24.5.8. Оператор instanceof 293
24.5.9. Итераторы 293
24.5.10. Пространства имен 294
24.5.11. Типажи (traits) 294
24.5.12. Вызов метода или свойства класса выражением 295

Глава 25. Механизм сессий

297
25.1. Для чего нужны сессии? 297
25.2. Как работает механизм сессий? 298
25.3. Обход Cookies 300
25.4. Сценарий аутентификации 300

Глава 26. Введение в PEAR

305
26.1. Серьезные проекты и PEAR 305
26.2. Пример использования класса DB 306

Глава 27. Контроль версий

310
27.1. Выбор системы контроля версий 310
27.2. Практическое использование TortoiseHG (Mercurial) 311
27.3. Просмотр внесенных изменений 313

Глава 28. Тестирование PHP-сценариев

315
28.1. Программа работает, но не так, как нам нужно 315
28.2. "Самодельные" точки останова 316
28.3. Система автоматического тестирования 317
28.4. Директива error_reporting 321

Часть II. Практика

323
Раздел 7. Разработка основных элементов сайта 325

Глава 29. Загрузка файлов на сервер

327
29.1. Что нужно знать о загрузке файлов на сервер? 327
29.2. Реализация загрузки файла 330
29.3. Загрузка нескольких файлов 332
29.4. Индикатор загрузки файла на PHP 5.4/5.5 334
29.4.1. Некоторые теоретические предпосылки 334
29.4.2. Пример практической реализации 337
29.5. Проблемы при загрузке файлов 344

Глава 30. Использование FTP-функций

345
30.1. Функции для работы с FTP 345
30.2. Примеры использования FTP-функций 348

Глава 31. Отправка и прием почты

351
31.1. Отправка почты средствами PHP — функция mail() 351
31.2. Отправка писем с вложениями — класс HtmlMimeMail 352
31.2.1. Отправка сообщения 352
31.2.2. Проблемы при отправке сообщения 356
31.2.3. MIME-типы 357
31.3. Класс PHPMailer. Разработка сценария автоматической рассылки прайс-листа 358
31.4. Получение писем по протоколу POP3 362

Глава 32. Работа с RSS: получаем новости на сайт

366
32.1. Краткие сведения о RSS 366
32.2. Формат RSS-файла 366
32.3. Написание сценария импорта новостей 369
32.4. Подключение файла import.php к сайту 371
32.5. Создание граббера новостей 372

Глава 33. Поиск с использованием регулярных выражений

376
33.1. Нужно что-то найти... 376
33.2. Язык регулярных выражений RegExp 377
33.3. Управляющие конструкции 379
33.3.1. Квантификаторы 379
33.3.2. Альтернативный оператор | 379
33.3.3. Скобки 379
33.4. Псевдосимволы 380
33.5. Практическое использование RegExp-функций 380
33.6. Фильтры, или Конец эры регулярных выражений 384

Глава 34. Работаем с MP3

386
34.1. Формат MP3 386
34.2. Библиотека PEAR 387
34.3. Вывод ID3-тегов 388
34.4. Редактирование ID3-тегов 390
34.5. Удаление тега 390

Глава 35. Технология AJAX

392
35.1. Что такое AJAX? 392
35.2. Ваше первое AJAX-приложение 393
Раздел 8. Разработка типичного сайта 399

Глава 36. Создание простейшего движка сайта

401
36.1. Планирование движка 401
36.1.1. Зачем нужно разрабатывать собственный движок? 401
36.1.2. Необходимые нам функции движка 402
36.1.3. Принципиальная схема движка 404
36.2. Основные функции движка 405
36.2.1. Разработка TPL-шаблона 405
36.2.2. Файл настроек 406
36.2.3. Основной файл CMS — index.php 407
36.2.4. Проектирование базы данных 409
Таблица static 409
Таблица cats 410
Таблица pages 411
36.2.5. Иерархическая структура сайта 412
Алгоритм работы меню 412
Сценарий menu.php 414
Вывод содержимого раздела и страницы 419
36.3. Дополнительные функции движка 423
36.3.1. Вывод информации из таблицы static 423
36.3.2. Функция вывода содержимого HTML-файла 424
36.3.3. Версия для печати 425
36.4. Где взять листинги этой главы? 426

Глава 37. Создание фотогалереи

427
37.1. Постановка задачи 427
37.2. Загрузка изображений на сервер 427
37.3. Вывод галереи 431

Глава 38. Гостевая книга

434
38.1. Пережиток прошлого? 434
38.2. Разработка базы данных и структура гостевой книги 435
38.3. Вывод гостевой книги 435
38.4. Добавление записей в гостевую книгу 438
38.5. Сервисный сценарий gb_service.php 441

Глава 39. Импорт новостей с чужого сайта в базу данных WordPress

443
39.1. Постановка задачи 443
39.2. Вспомогательные функции 444
39.3. Вкратце о cURL 446
39.4. Основной сценарий 446

Глава 40. Создание счетчика сайта

451
40.1. Постановка задачи 451
40.2. Файл конфигурации 451
40.3. Разработка таблиц counter и ipaddr 452
40.4. Сценарий counter.php 453
40.5. Сценарий reset_counter.php 457

Глава 41. Статистика сайта

459
41.1. Методы сбора статистики 459
41.2. Программы-анализаторы журналов веб-сервера 460
41.3. Системы статистики 462

Глава 42. Голосования и комментарии для сайта

465
42.1. Разработка собственной системы голосования 465
42.1.1. Общая структура системы 465
42.1.2. Разработка сценария poll_form.php 466
42.1.3. Сценарий poll_process.php 468
42.1.4. Сценарий poll_results.php 469
42.2. Комментарии DISQUS 472
42.2.1. Описание платформы 472
42.2.2. Установка комментариев на свой сайт 473
Раздел 9. Сложный проект 479

Глава 43. Постановка задачи

481
43.1. Концепция проекта 481
43.2. Алгоритм работы 482
43.3. Структура базы данных 483

Глава 44. Разработка основной части сайта

487
44.1. Структура проекта 487
44.2. Основной сценарий index.php 488
44.2.1. Подключение механизмов WordPress 488
44.2.2. Аутентификация пользователя 489
44.2.3. Форма добавления цели 490
44.2.4. Добавление цели 491
44.2.5. Просмотр всех целей 495
44.3. Сценарий v.php — просмотр цели 499
44.4. Сценарии отправки уведомлений. Сценарии yes.php и no.php 500

Глава 45. Панель управления WordPress

508
45.1. О чем эта глава? 508
45.2. Вход в панель управления 508
45.3. Просмотр целей 508
45.4. Не забывайте о UTF-8 510
Раздел 10. Обеспечение безопасности сайта 511

Глава 46. SSL-соединения

513
46.1. Защищаем передаваемые данные 513
46.2. Настройка SSL в DirectAdmin 514
46.3. SSL-переменные 516

Глава 47. Защита PHP с помощью конфигурационного файла

518
47.1. Конфигурационный файл php.ini 518
47.2. Отключение потенциально опасных функций 520
47.3. Рекомендованные значения некоторых конфигурационных директив 520

Глава 48. Защита сайта от атак

521
48.1. Сайт в опасности 521
48.2. Два самых распространенных метода взлома 522
48.3. Межсайтовый скриптинг 522
48.4. SQL-инъекции 524
48.5. Флуд 528
48.6. Защита форума PHPBB2 от спамеров 529
Раздел 11. Полезные сведения 531

Глава 49. Визуальный редактор SPAW2 для вашего сайта

533
49.1. Знакомство с визуальным редактором и его базовая настройка 533
49.2. Адаптация редактора к вашему сайту 537
49.2.1. Загрузка в редактор текста статьи 537
49.2.2. Вывод редактора в TPL-шаблоне 537
49.2.3. Запрет изменения размера редактора 538
49.2.4. Изменение размеров редактора "на лету" — в процессе выполнения сценария 539
49.2.5. Панель инструментов редактора 539
49.2.6. Ошибка Error 105 (net::ERR_NAME_NOT_RESOLVED) 542

Глава 50. WAP-сервер средствами PHP

543
50.1. Есть ли необходимость в WAP? 543
50.2. Настройка веб-сервера Apache 544
50.3. PHP-сценарий 545

Глава 51. Пишем коммерческий сценарий

546
51.1. Zend Guard: за и против 546
51.2. Установка Zend Guard 548
51.3. Быстрая защита сценария 548
51.4. Ошибка Unable to locate XML file 552
51.5. Лицензии 552
51.6. Zend Guard — панацея? 556
Приложения 557
Приложение 1. Программа phpMyAdmin 559
П1.1. Действия над таблицами 560
П1.2. Создание новой таблицы. Изменение структуры таблицы 562
П1.3. Вставка записей 563
П1.4. Обзор таблицы 563
П1.5. Выполнение произвольного SQL-кода 563
П1.6. Резервное копирование БД 565
Приложение 2. Flash и PHP 566
Приложение 3. Оптимизация PHP-кода 570
П3.1. Правильное использование echo 570
П3.2. Длина переменных 571
П3.3. Правильное обращение к элементам массива 571
П3.4. Циклы 572
П3.5. Чтение файлов 573
П3.6. Вывод текста: echo против printf 575
П3.7. "Лишние" вызовы функций 577
П3.8. Контрольные замеры 578
П3.8.1. Чтение файла 578
П3.8.2. Вывод содержимого файла 579
П3.9. Выводы 581
Приложение 4. Описание электронного архива 582
Предметный указатель 584


На главную | Где купить | Авторам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты
© 2001–2019 Издательство «БХВ-Петербург».
Все права защищены. Частичное или полное копирование текстов, слоганов и фотоизображений без письменного согласия Правообладателя запрещено.