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

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

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

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

Оглавление Введение 14
Что нового в 4-м издании 14
Немного истории 15
PHP 5.4, или Что случилось с PHP 6 15
Новое в версии 5.4 16
Типажи 16
Разыменовывание массива 17
Встроенный Web-сервер 17
Индикатор загрузки файла 17
MySQL 18
Поддержка читателей 18

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

19
Раздел 1. Быстрый старт 21

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

23
1.1. Нужно ли устанавливать программное обеспечение 23
1.2. Выбор PHP-редактора и FTP-клиента 24
1.3. Установка Apache + PHP + MySQL в Windows 27
1.4. Связываем PHP 5.4 и Apache 34
1.5. Установка Apache + PHP + MySQL в Linux 36
1.6. Несколько советов 37

Глава 2. Первая PHP-программа

38
2.1. Ваша первая программа 38
2.2. Запуск PHP-программы 39
2.3. Вывод текста без echo 40
2.4. Совместимость с PHP 4 41

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

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

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

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

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

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

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

69
6.1. Создание простейшей формы и ее обработка в сценарии 69
6.2. Создание пользовательского интерфейса с помощью формы 72
6.2.1. Ввод текста. Теги INPUT и TEXTAREA 73
6.2.2. Зависимые и независимые переключатели 74
6.2.3. Списки выбора 75
6.2.4. Форма для передачи файлов 77
6.2.5. Кнопки 77
6.3. Проверка параметров формы 78
6.3.1. Проверка корректности e-mail 79
6.3.2. Проверка правильности номера кредитной карты 80
6.3.3. Удаление лишних пробелов 81
6.4. Защита от спама с помощью CAPTCHA 81
6.5. Форма поиска в Яндексе 84

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

85
7.1. Что такое Cookies и как с ними работать 85
7.2. Механизм сессий 87
7.2.1. Сессии и Cookies: преимущества и недостатки 87
7.2.2. Для чего нужны сессии 87
7.2.3. Как работает механизм сессий 89
7.2.4. Обход Cookies 90
7.3. Массивы и Cookies 91

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

92
8.1. Почему опасно использовать register_globals 92
8.2. Если register_globals отключена 96
8.3. PHP 6 и register_globals 98
Раздел 3. Массивы и списки 99

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

101
9.1. Массив и список. Цикл foreach 101
9.2. Функции list() и array() 103
9.3. Удаление массива 104
9.4. Слияние массивов 104
9.5. Функция print_r() 106

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

108
10.1. Функции для сортировки массивов 108
10.2. Функция sort() — сортировка списка 108
10.3. Функция asort() — сортировка массива по значениям 109
10.4. Функция ksort() — сортировка по ключам 110
10.5. Функции array_reverse() и shuffle() 111
10.6. Собственная функция сортировки 111
10.7. Натуральная сортировка 112

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

114
11.1. Добавление и удаление элементов массива 114
11.2. Упаковка переменных в массив и их извлечение 115
11.3. Получение части массива 117
11.4. Функции автоматического заполнения массива 117
11.5. Сравнение массивов 118
11.6. Полезные операции над массивом 119
11.6.1. Вычисление суммы и произведения всех элементов массива 119
11.6.2. Проверка существования элемента в массиве 119
11.6.3. Получение случайного элемента из массива 120
11.6.4. Удаление дубликатов из массива 120
11.6.5. Получение значений и ключей массива 121
11.6.6. Замена местами значений и ключей 121
11.6.7. Подсчет значений в массиве 121
11.6.8. Замена в массиве 122
11.6.9. Поиск в массиве 122
11.6.10. Прогулка по массиву 123
Раздел 4. Функции в PHP 125

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

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

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

132
13.1. Основные строковые функции 132
13.2. Специальные функции замены 135
13.3. Преобразование строки 137
13.4. Функции преобразования кодировок 139
13.5. Функции для работы с отдельными символами строки 140
13.6. Функция md5() и другие функции шифрования/хэширования 140
13.7. Функция explode(): выделение подстрок 141
13.8. Статистические функции 142
13.9. Функции вывода текста 142
13.10. Установка локали 144
13.11. Форматирование чисел и денежных величин 145
13.12. Преобразование систем счисления 146

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

147
14.1. Права доступа в UNIX 147
14.2. Чтение файла 149
14.2.1. Использование функций fopen() и fread() 150
14.2.2. Использование функции file(): построчное чтение файла 152
14.2.3. Чтение всего файла: функция file_get_contents() 153
14.3. Запись файла 153
14.4. Создание временных файлов 154
14.5. Работа с CSV-файлами 154
14.6. Специальные функции для работы с файлами 156
14.6.1. Функции для работы с именами файлов 157
14.6.2. Работа с правами доступа 157
14.6.3. Копирование, переименование и удаление файлов 158
14.6.4. Время доступа к файлу 159
14.6.5. Другие полезные функции 159
14.7. Совместный доступ к файлу 160
14.8. Функции для работы с каталогами 161

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

163
15.1. Библиотека GD 163
15.1.1. Получение информации об изображении 163
15.1.2. Конвертирование графических форматов 165
15.1.3. Вывод текста поверх картинки. Задание цвета 168
15.1.4. Прозрачность 171
15.1.5. Рисование графических примитивов 171
15.1.6. Поворот изображения 174
15.2. Изменение размера изображения 174
15.3. Создание водяных знаков 176

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

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

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

184
17.1. Зачем нужны собственные функции 184
17.2. Особенности функций в PHP 184
17.3. Объявление функции 185
17.4. Области видимости функции 186
17.5. Вложенность функций 186
17.6. Переменное число аргументов 188
17.7. Передача массивов в качестве параметров 189
Раздел 5. Серверы баз данных MySQL 6 и SQLite 191

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

193
18.1. Немного истории 193
18.2. Преимущества SQL 193
18.3. Как выглядят запросы 194
18.4. Что такое база данных 195
18.5. Создание таблиц 196
18.6. Добавление записей в таблицу 199
18.7. Обновление записей 200
18.8. Выборка записей 201
18.9. Удаление записей 202
18.10. Встроенные функции 202
18.11. Группировка записей. Сложные запросы 204
18.12. Копирование записей из одной таблицы в другую 207
18.13. Кэширование запросов 207

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

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

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

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

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

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

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

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

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

243
23.1. Что такое Smarty 243
23.2. Установка Smarty 243
23.3. Создание setup.php 246
23.4. Разработка шаблонов Smarty 247
23.4.1. Комментарии в шаблонах 247
23.4.2. Переменные в Smarty 248
23.4.3. Файлы конфигурации шаблонов 249
23.4.4. Служебная переменная {$smarty} 250
23.4.5. Модификаторы переменных 251
23.4.6. Стандартные (встроенные) функции Smarty 254
Функции {include} и {insert} 254
Функция {foreach} 254
Функции {if}, {elseif}, {else} 256
Функция {capture} 257
Функция {php} 257
Функция {strip} 257
23.4.7. Пользовательские функции Smarty 258
Функция {assign} 258
Функция {cycle} 258
Функция {fetch} 259
Функции {html_checkboxes} и {html_radios} 259
Функция {html_image} 260
Функция {html_select_date} 260
Функция {html_select_time} 261
Функция {html_table} 262
23.5. Smarty для программиста 263
23.5.1. Специальные переменные 263
23.5.2. Полезные методы класса Smarty 265

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

266
24.1. Основы ООП 266
24.2. Классы и объекты 267
24.3. Конструкторы и деструкторы класса 269
24.4. Наследование классов. Полиморфизм 270
24.5. Новые возможности PHP 5 и 5.4 271
24.5.1. Область видимости членов класса 271
24.5.2. Абстрактные классы и методы 272
24.5.3. Служебное слово final 272
24.5.4. Клонирование объектов 273
24.5.5. Обработка исключительных ситуаций 274
24.5.6. Константы-члены класса 275
24.5.7. Статические члены класса 275
24.5.8. Оператор instanceof 276
24.5.9. Итераторы 276
24.5.10. Пространства имен 276
24.5.11. Типажи (traits) 277
25.5.12. Вызов метода или свойства класса выражением 278

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

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

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

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

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

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

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

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

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

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

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

309
29.1. Что нужно знать о загрузке файлов на сервер 309
29.2. Реализация загрузки файла 312
29.3. Загрузка нескольких файлов 314
29.4. Проблемы при загрузке файлов 316

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

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

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

323
31.1. Отправка почты средствами PHP — функция mail() 323
31.2. Отправка писем с вложениями — класс HtmlMimeMail 324
31.2.1. Отправка сообщения 324
31.2.2. Проблемы при отправке сообщения 328
31.2.3. MIME-типы 329
31.3. Класс PHPMailer. Разработка сценария автоматической рассылки прайс-листа 330
31.4. Получение писем по протоколу POP3 334

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

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

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

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

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

358
34.1. Формат MP3 358
34.2. Библиотека PEAR 359
34.3. Вывод ID3-тегов 360
34.4. Редактирование ID3-тегов 361
34.5. Удаление тега 362

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

363
35.1. Что такое Ajax 363
35.2. Ваше первое Ajax-приложение 364
Раздел 8. Разработка типичного сайта 369

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

371
36.1. Планирование движка 371
36.1.1. Зачем нужно разрабатывать собственный движок 371
36.1.2. Необходимые нам функции движка 372
36.1.3. "Принципиальная схема" движка 374
36.2. Основные функции движка 375
36.2.1. Разработка TPL-шаблона 375
36.2.2. Файл настроек 376
36.2.3. Основной файл CMS — index.php 377
36.2.4. Проектирование базы данных 379
Таблица static 379
Таблица cats 380
Таблица pages 381
36.2.5. Иерархическая структура сайта 382
Алгоритм работы меню 382
Сценарий menu.php 384
Вывод содержимого раздела и страницы 389
36.3. Дополнительные функции движка 393
36.3.1. Вывод информации из таблицы static 393
36.3.2. Функция вывода содержимого HTML-файла 394
36.3.3. Версия для печати 395
36.4. Где взять листинги этой главы 396

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

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

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

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

Глава 39. Интеграция галереи LiveJournal и вашего сайта

413
39.1. Что такое Живой журнал 413
39.2. Интеграция фотогалереи LiveJournal и сайта 414
39.3. Настройка внешнего вида галереи 418

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

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

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

428
41.1. Методы сбора статистики 428
41.2. Программы-анализаторы журналов Web-сервера 429
41.3. Системы статистики 431

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

434
42.1. Разработка собственной системы голосования 434
42.1.1. Общая структура системы 434
42.1.2. Разработка сценария poll_form.php 435
42.1.3. Сценарий poll_process.php 437
42.1.4. Сценарий poll_results.php 438
42.2. Комментарии DISQUS 441
42.2.1. Описание платформы 441
42.2.2. Установка комментариев на свой сайт 442
Раздел 9. Сложный проект 449

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

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

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

457
44.1. Структура проекта 457
44.2. Основной сценарий index.php 458
44.2.1. Подключение механизмов WordPress 458
44.2.2. Аутентификация пользователя 459
44.2.3. Форма добавления цели 460
44.2.4. Добавление цели 461
44.2.5. Просмотр всех целей 465
44.3. Сценарий v.php — просмотр цели 469
44.4. Сценарии отправки уведомлений. Сценарии yes.php и no.php 470

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

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

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

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

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

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

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

491
48.1. Сайт в опасности 491
48.2. Два самых распространенных метода взлома 492
48.3. Межсайтовый скриптинг 492
48.4. SQL-инъекции 494
48.5. Флуд 498
48.6. Защита форума PHPBB2 от спаммеров 499
Раздел 11. Полезные сведения 501

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

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

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

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

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

516
51.1. Zend Guard: за и против 516
51.2. Установка Zend Guard 517
51.3. Быстрая защита сценария 518
51.4. Ошибка Unable to locate XML file 522
51.5. Лицензии 522
51.6. Zend Guard — панацея? 526
Приложения 527
Приложение 1. Программа phpMyAdmin 529
Действия над таблицами 530
Создание новой таблицы. Изменение структуры таблицы 532
Вставка записей 533
Обзор таблицы 533
Выполнение произвольного SQL-кода 533
Резервное копирование БД 535
Приложение 2. Flash и PHP 536
Приложение 3. Оптимизация PHP-кода 540
П3.1. Правильное использование echo 540
П3.2. Длина переменных 541
П3.3. Правильное обращение к элементам массива 541
П3.4. Циклы 542
П3.5. Чтение файлов 543
П3.6. Вывод текста: echo против printf 545
П3.7. "Лишние" вызовы функций 547
П3.8. Контрольные замеры 548
П3.8.1. Чтение файла 548
П3.8.2. Вывод содержимого файла 549
П3.9. Выводы 551
Приложение 4. Описание электронного архива 552
Предметный указатель 554


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