Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5. 5-е изд.
Новое (5-е) издание признанного бестселлера, описывающее как клиентские, так и серверные аспекты веб-разработки. Эта книга поможет вам освоить динамическое веб-программирование с применением самых современных технологий. Книга наполнена ценными практическими советами, содержит подробный теоретический материал. Для закрепления материала автор рассказывает, как создать полнофункциональный сайт, работающий по принципу социальной сети включая рассказ о React.js.
- Изучите важнейшие аспекты языка PHP и основы объектно-ориентированного программирования.
- Познакомьтесь с базой данных MySQL.
- Управляйте cookie-файлами и сеансами, обеспечивайте высокий уровень безопасности.
- Пользуйтесь фундаментальными возможностями языка JavaScript.
- Применяйте вызовы AJAX, чтобы значительно повысить динамику вашего сайта.
- Изучите основы CSS для форматирования и оформления ваших страниц.
- Освойте продвинутые возможности HTML5: геолокацию, обработку аудио и видео, отрисовку на холсте.
Предисловие...........................................................................................................................................24
Для кого предназначена эта книга............................................................................................24
Предположения, допущенные в книге....................................................................................25
Структура издания.........................................................................................................................25
Дополнительная литература......................................................................................................26
Условные обозначения.................................................................................................................26
Использование примеров кода..................................................................................................27
Благодарности........................................................................................................................................28
Глава 1. Введение в динамическое содержимое веб-страницы............................................29
HTTP и HTML: основы, заложенные Бернерсом-Ли.......................................................30
Процедура «запрос — ответ»......................................................................................................31
Преимущества использования PHP, MySQL, JavaScript и CSS...................................33
MariaDB: клон MySQL..........................................................................................................34
PHP...............................................................................................................................................35
MySQL.........................................................................................................................................36
JavaScript.....................................................................................................................................37
CSS................................................................................................................................................39
А теперь HTML5.............................................................................................................................40
Веб-сервер Apache..........................................................................................................................41
Обслуживание мобильных устройств.....................................................................................41
Несколько слов о программах с открытым исходным кодом.........................................42
А теперь все это, вместе взятое..................................................................................................42
Вопросы.............................................................................................................................................44
Глава 2. Установка сервера, предназначенного для разработки..........................................46
Что такое WAMP, MAMP и LAMP.........................................................................................47
Установка AMPPS в системе Windows..................................................................................47
Тестирование установки.......................................................................................................52
Обращение к исходному источнику документов (Windows)..................................53
Другие системы WAMP........................................................................................................54
Установка AMPPS в системе macOS .....................................................................................55
Обращение к исходному источнику документов (macOS).......................................56
Установка LAMP в Linux............................................................................................................57
Работа в удаленном режиме........................................................................................................58
Вход в систему..........................................................................................................................58
Использование FTP................................................................................................................58
Использование редактора программ.......................................................................................59
Использование IDE.......................................................................................................................60
Вопросы.............................................................................................................................................62
Глава 3. Введение в PHP....................................................................................................................63
Включение PHP в HTML............................................................................................................63
Примеры в этой книге...................................................................................................................65
Структура PHP...............................................................................................................................66
Комментарии.............................................................................................................................66
Основной синтаксис...............................................................................................................67
Переменные...............................................................................................................................68
Операторы..................................................................................................................................73
Присваивание значений переменным..............................................................................76
Многострочные команды......................................................................................................79
Типы переменных....................................................................................................................81
Константы...................................................................................................................................82
Предопределенные константы............................................................................................83
Различие между командами echo и print.........................................................................84
Функции.....................................................................................................................................85
Область видимости переменной.........................................................................................86
Вопросы.............................................................................................................................................92
Глава 4. Выражения и управление процессом выполнения программы в PHP.............94
Выражения........................................................................................................................................94
TRUE или FALSE?.................................................................................................................95
Литералы и переменные........................................................................................................96
Операторы.........................................................................................................................................97
Приоритетность операторов................................................................................................98
Взаимосвязанность операторов........................................................................................100
Операторы отношения.........................................................................................................102
Условия............................................................................................................................................106
Инструкция if..........................................................................................................................106
Инструкция else......................................................................................................................108
Инструкция elseif...................................................................................................................109
Инструкция switch................................................................................................................111
Оператор ?................................................................................................................................113
Организация циклов...................................................................................................................115
Циклы while.............................................................................................................................116
Циклы do...while.....................................................................................................................117
Циклы for..................................................................................................................................118
Прекращение работы цикла...............................................................................................120
Инструкция continue............................................................................................................121
Неявное и явное преобразование типов...............................................................................122
Динамическое связывание в PHP..........................................................................................123
Динамическое связывание в действии..................................................................................124
Вопросы...........................................................................................................................................125
Глава 5. Функции и объекты PHP...............................................................................................126
Функции PHP...............................................................................................................................127
Определение функции.........................................................................................................128
Возвращение значения.........................................................................................................129
Возвращение массива...........................................................................................................131
Передача аргументов по ссылке.......................................................................................131
Возвращение глобальных переменных..........................................................................133
И еще раз об области видимости переменных.............................................................134
Включение и запрос файлов.....................................................................................................134
Инструкция include...............................................................................................................134
Инструкция include_once...................................................................................................135
Инструкции require и require_once..................................................................................135
Совместимость версий PHP.....................................................................................................136
Объекты PHP................................................................................................................................137
Терминология.........................................................................................................................137
Объявление класса................................................................................................................139
Создание объекта...................................................................................................................140
Доступ к объектам.................................................................................................................140
Клонирование объектов......................................................................................................141
Конструкторы.........................................................................................................................143
Деструкторы............................................................................................................................143
Написание методов...............................................................................................................144
Объявление свойств..............................................................................................................144
Объявление констант...........................................................................................................145
Область видимости свойств и методов..........................................................................146
Статические методы..............................................................................................................147
Статические свойства...........................................................................................................148
Наследование..........................................................................................................................149
Вопросы...........................................................................................................................................152
Глава 6. Массивы в PHP..................................................................................................................153
Основные подходы к массивам...............................................................................................153
Массивы с числовой индексацией.........................................................................................154
Ассоциативные массивы.....................................................................................................155
Присваивание с использованием ключевого слова array........................................156
Цикл foreach...as............................................................................................................................157
Многомерные массивы...............................................................................................................159
Использование функций для работы с массивами...........................................................162
is_array.......................................................................................................................................162
count............................................................................................................................................163
sort...............................................................................................................................................163
shuffle..........................................................................................................................................163
explode........................................................................................................................................164
extract.........................................................................................................................................165
compact......................................................................................................................................165
reset.............................................................................................................................................167
end................................................................................................................................................167
Вопросы...........................................................................................................................................167
Глава 7. Практикум по программированию на PHP..............................................................168
Функция printf..............................................................................................................................168
Настройка представления данных...................................................................................170
Дополнение строк..................................................................................................................172
Функция sprintf......................................................................................................................173
Функции даты и времени..........................................................................................................173
Константы, связанные с датами........................................................................................176
Функция checkdate................................................................................................................176
Работа с файлами.........................................................................................................................176
Проверка существования файла.......................................................................................177
Создание файла......................................................................................................................177
Чтение из файлов...................................................................................................................179
Копирование файлов............................................................................................................180
Перемещение файла..............................................................................................................180
Удаление файла......................................................................................................................181
Обновление файлов..............................................................................................................181
Блокирование файлов при коллективном доступе....................................................183
Чтение всего файла целиком.............................................................................................185
Загрузка файлов на веб-сервер.........................................................................................186
Системные вызовы.......................................................................................................................191
XHTML или HTML5?................................................................................................................193
Вопросы...........................................................................................................................................193
Глава 8. Введение в MySQL............................................................................................................195
Основные характеристики MySQL.......................................................................................195
Сводка понятий, используемых в базах данных................................................................196
Доступ к MySQL из командной строки................................................................................197
Начало работы с интерфейсом командной строки....................................................197
Использование интерфейса командной строки..........................................................201
Команды MySQL...................................................................................................................202
Типы данных...........................................................................................................................207
Индексы...........................................................................................................................................218
Создание индекса...................................................................................................................218
Создание запросов к базе данных MySQL....................................................................224
Объединение таблиц.............................................................................................................234
Использование логических операторов.........................................................................237
Функции MySQL.........................................................................................................................237
Работа с MySQL через phpMyAdmin....................................................................................238
Вопросы...........................................................................................................................................239
Глава 9. Освоение MySQL..............................................................................................................240
Проектирование базы данных..................................................................................................240
Первичные ключи: ключи к реляционным базам данных.......................................241
Нормализация...............................................................................................................................242
Первая нормальная форма.................................................................................................244
Вторая нормальная форма..................................................................................................246
Третья нормальная форма..................................................................................................249
Когда не следует проводить нормализацию.................................................................251
Отношения......................................................................................................................................252
«Один к одному»....................................................................................................................252
«Один ко многим».................................................................................................................253
«Многие ко многим».............................................................................................................254
Базы данных и анонимность..............................................................................................255
Транзакции.....................................................................................................................................256
Ядра (механизмы хранения) транзакций......................................................................256
Команда BEGIN.....................................................................................................................257
Команда COMMIT................................................................................................................258
Команда ROLLBACK...........................................................................................................258
Команда EXPLAIN................................................................................................................259
Резервное копирование и восстановление данных..........................................................260
Команда mysqldump..............................................................................................................260
Создание файла резервной копии....................................................................................262
Восстановление данных из файла резервной копии.................................................264
Выгрузка данных в файлы формата CSV......................................................................264
Планирование резервного копирования.......................................................................265
Вопросы...........................................................................................................................................266
Глава 10. Доступ к MySQL с использованием PHP..............................................................267
Запросы к базе данных MySQL с помощью PHP.............................................................267
Процесс......................................................................................................................................267
Создание файла регистрации............................................................................................268
Подключение к базе данных MySQL..............................................................................269
Практический пример.................................................................................................................275
Массив $_POST.....................................................................................................................278
Удаление записи.....................................................................................................................278
Отображение формы............................................................................................................279
Запросы к базе данных.........................................................................................................280
Запуск программы.................................................................................................................281
Практическая работа с MySQL...............................................................................................282
Создание таблицы.................................................................................................................282
Описание таблицы.................................................................................................................283
Удаление таблицы.................................................................................................................284
Добавление данных...............................................................................................................284
Извлечение данных...............................................................................................................285
Обновление данных..............................................................................................................286
Удаление данных...................................................................................................................286
Свойство AUTO_INCREMENT.......................................................................................287
Выполнение дополнительных запросов........................................................................288
Предотвращение попыток взлома..........................................................................................290
Возможные меры противодействия................................................................................291
Указатели мест заполнения...............................................................................................292
Предотвращение внедрения HTML-кода.....................................................................295
Процедурный метод использования mysqli........................................................................296
Вопросы...........................................................................................................................................298
Глава 11. Обработка форм...............................................................................................................299
Создание форм..............................................................................................................................299
Извлечение отправленных данных........................................................................................301
Значения по умолчанию......................................................................................................302
Типы элементов ввода данных..........................................................................................303
Обезвреживание введенных данных...............................................................................312
Пример программы......................................................................................................................314
Усовершенствования, появившиеся в HTML5.................................................................317
Атрибут autocomplete...........................................................................................................317
Атрибут autofocus..................................................................................................................317
Атрибут placeholder...............................................................................................................318
Атрибут required.....................................................................................................................318
Атрибуты подмены................................................................................................................318
Атрибуты width и height......................................................................................................319
Атрибуты min и max..............................................................................................................319
Атрибут step.............................................................................................................................319
Атрибут form............................................................................................................................319
Атрибут list...............................................................................................................................320
Тип ввода color........................................................................................................................320
Типы ввода number и range.................................................................................................320
Окно выбора даты и времени.............................................................................................320
Вопросы...........................................................................................................................................320
Глава 12. Cookie, сессии и аутентификация.............................................................................322
Использование cookie в PHP...................................................................................................322
Установка cookie....................................................................................................................324
Доступ к cookie.......................................................................................................................325
Удаление cookie......................................................................................................................325
HTTP-аутентификация..............................................................................................................326
Сохранение имен пользователей и паролей.................................................................329
Пример программы...............................................................................................................332
Использование сессий................................................................................................................335
Начало сессии.........................................................................................................................336
Завершение сессии................................................................................................................339
Установка времени ожидания...........................................................................................340
Безопасность сессии.............................................................................................................340
Вопросы...........................................................................................................................................345
Глава 13. Изучение JavaScript........................................................................................................346
JavaScript и текст HTML...........................................................................................................347
Использование сценариев в заголовке документа.....................................................349
Устаревшие и нестандартные браузеры.........................................................................349
Включение файлов JavaScript...........................................................................................350
Отладка кода JavaScript.......................................................................................................350
Комментарии.................................................................................................................................351
Точка с запятой.............................................................................................................................352
Переменные....................................................................................................................................352
Строковые переменные.......................................................................................................353
Числовые переменные.........................................................................................................353
Массивы....................................................................................................................................354
Операторы.......................................................................................................................................355
Арифметические операторы..............................................................................................355
Операторы присваивания...................................................................................................355
Операторы сравнения..........................................................................................................356
Логические операторы.........................................................................................................356
Инкремент, декремент переменной и краткая форма присваивания..................357
Объединение строк................................................................................................................357
Управляющие символы.......................................................................................................357
Типизация переменных..............................................................................................................358
Функции..........................................................................................................................................359
Глобальные переменные............................................................................................................360
Локальные переменные..............................................................................................................360
Объектная модель документа..................................................................................................361
Еще одно использование знака $.....................................................................................363
Использование DOM...........................................................................................................364
О функции document.write........................................................................................................365
Использование console.log..................................................................................................365
Использование alert..............................................................................................................365
Запись в элементы.................................................................................................................365
Использование document.write.........................................................................................366
Вопросы...........................................................................................................................................366
Глава 14. Выражения и управление процессом выполнения сценариев
в JavaScript.............................................................................................................................................368
Выражения......................................................................................................................................368
Литералы и переменные............................................................................................................369
Операторы.......................................................................................................................................370
Приоритетность операторов..............................................................................................371
Взаимосвязанность................................................................................................................372
Операторы отношения.........................................................................................................372
Инструкция with...........................................................................................................................375
Использование события onerror.............................................................................................376
Конструкция try...catch...............................................................................................................377
Условия............................................................................................................................................378
Инструкция if..........................................................................................................................379
Инструкция else......................................................................................................................379
Инструкция switch................................................................................................................380
Оператор ?................................................................................................................................382
Циклы...............................................................................................................................................382
Циклы while.............................................................................................................................382
Циклы do...while.....................................................................................................................383
Циклы for..................................................................................................................................384
Прекращение работы цикла...............................................................................................384
Инструкция continue............................................................................................................385
Явное преобразование типов....................................................................................................386
Вопросы...........................................................................................................................................386
Глава 15. Функции, объекты и массивы JavaScript................................................................388
Функции JavaScript.....................................................................................................................388
Определение функции.........................................................................................................388
Возвращение значения.........................................................................................................390
Возвращение массива...........................................................................................................392
Объекты JavaScript......................................................................................................................393
Объявление класса................................................................................................................393
Создание объекта...................................................................................................................395
Доступ к объектам.................................................................................................................395
Ключевое слово prototype...................................................................................................396
Массивы в JavaScript..................................................................................................................399
Числовые массивы.................................................................................................................399
Ассоциативные массивы.....................................................................................................400
Многомерные массивы........................................................................................................401
Методы массивов...................................................................................................................403
Вопросы...........................................................................................................................................408
Глава 16. Проверка данных и обработка ошибок в JavaScript и PHP..............................409
Проверка данных, введенных пользователем, средствами JavaScript.......................409
Документ validate.html (часть первая)...........................................................................410
Документ validate.html (часть вторая)...........................................................................412
Регулярные выражения..............................................................................................................416
Соответствие, закладываемое в метасимволы.............................................................416
Нестрогое символьное соответствие...............................................................................417
Группировка с помощью скобок.......................................................................................419
Символьный класс.................................................................................................................419
Указание диапазона..............................................................................................................420
Инвертирование.....................................................................................................................420
Более сложные примеры.....................................................................................................420
Сводная таблица метасимволов.......................................................................................423
Общие модификаторы.........................................................................................................425
Использование регулярных выражений в JavaScript...............................................426
Использование регулярных выражений в PHP..........................................................426
Повторное отображение формы после проверки данных PHP-программой..........427
Вопросы...........................................................................................................................................433
Глава 17. Использование технологии асинхронного обмена данными...........................435
Что такое асинхронный обмен данными..............................................................................436
XMLHttpRequest..........................................................................................................................436
Ваша первая программа, использующая асинхронный обмен данными............439
Использование GET вместо POST..................................................................................443
Отправка XML-запросов.....................................................................................................446
Использование специальных сред для асинхронного обмена данными............451
Вопросы...........................................................................................................................................451
Глава 18. Введение в CSS ...............................................................................................................452
Импортирование таблицы стилей..........................................................................................453
Импортирование CSS из HTML-кода............................................................................454
Встроенные настройки стиля............................................................................................454
Идентификаторы (ID)................................................................................................................454
Классы..............................................................................................................................................455
Точки с запятой.............................................................................................................................455
Правила CSS..................................................................................................................................456
Множественные задания стиля........................................................................................456
Комментарии...........................................................................................................................457
Типы стилей...................................................................................................................................458
Исходные стили......................................................................................................................458
Пользовательские стили.....................................................................................................458
Внешние таблицы стилей...................................................................................................459
Внутренние стили..................................................................................................................460
Внедренные стили.................................................................................................................460
Селекторы CSS..............................................................................................................................460
Селектор типа..........................................................................................................................460
Селектор потомков................................................................................................................461
Селектор дочерних элементов...........................................................................................462
Селектор элементов, имеющих идентификатор.........................................................463
Селектор класса......................................................................................................................464
Селектор атрибутов..............................................................................................................464
Универсальный селектор....................................................................................................465
Групповая селекция..............................................................................................................466
Каскадность CSS...........................................................................................................................466
Создатели таблиц стилей....................................................................................................467
Методы создания таблиц стилей......................................................................................467
Селекторы таблиц стилей...................................................................................................468
Разница между элементами Div и Span................................................................................470
Измерения.......................................................................................................................................472
Шрифты и оформление.............................................................................................................474
font-family.................................................................................................................................474
font-style....................................................................................................................................475
font-size......................................................................................................................................475
font-weight................................................................................................................................476
Управление стилями текста.....................................................................................................476
Оформление.............................................................................................................................476
Разрядка....................................................................................................................................477
Выравнивание.........................................................................................................................477
Преобразование......................................................................................................................477
Отступы.....................................................................................................................................477
Цвета CSS........................................................................................................................................478
Сокращенные цветовые строки........................................................................................479
Градиенты.................................................................................................................................479
Позиционирование элементов.................................................................................................481
Абсолютное позиционирование.......................................................................................481
Относительное позиционирование.................................................................................482
Фиксированное позиционирование................................................................................482
Псевдоклассы.................................................................................................................................484
Сокращенная запись правил....................................................................................................487
Модель блока и макет страницы.............................................................................................488
Установка полей.....................................................................................................................488
Применение границ...............................................................................................................490
Настройка отступов..............................................................................................................492
Содержимое объекта.............................................................................................................493
Вопросы...........................................................................................................................................493
Глава 19. Расширение CSS с помощью CSS3...........................................................................495
Селекторы атрибутов..................................................................................................................496
Свойство box-sizing......................................................................................................................498
Создание фона в CSS3................................................................................................................498
Свойство background-clip....................................................................................................498
Свойство background-origin...............................................................................................500
Свойство background-size....................................................................................................501
Использование нескольких фонов..................................................................................501
Границы CSS3................................................................................................................................503
Свойство border-color...........................................................................................................503
Свойство border-radius.........................................................................................................504
Прямоугольные тени...................................................................................................................507
Выход элемента за пределы размеров...................................................................................508
Разметка с использованием нескольких колонок.............................................................508
Цвета и непрозрачность.............................................................................................................510
Цвета HSL................................................................................................................................510
Цвета HSLA.............................................................................................................................511
Цвета RGB................................................................................................................................511
Цвета RGBA.............................................................................................................................512
Свойство opacity.....................................................................................................................512
Эффекты, применяемые к тексту...........................................................................................512
Свойство text-shadow...........................................................................................................512
Свойство text-overflow.........................................................................................................513
Свойство word-wrap..............................................................................................................513
Веб-шрифты...................................................................................................................................514
Трансформации.............................................................................................................................516
Переходы.........................................................................................................................................518
Свойства, применяемые к переходам.............................................................................519
Продолжительность перехода...........................................................................................519
Задержка перехода................................................................................................................519
Задание скорости перехода................................................................................................520
Сокращенный синтаксис.....................................................................................................520
Вопросы...........................................................................................................................................522
Глава 20. Доступ к CSS из JavaScript..........................................................................................523
Еще одно обращение к функции getElementByld.............................................................523
Функция O...............................................................................................................................524
Функция S................................................................................................................................524
Функция C...............................................................................................................................525
Включение функций.............................................................................................................526
Обращение к свойствам CSS из JavaScript.........................................................................526
Некоторые общие свойства................................................................................................527
Другие свойства......................................................................................................................528
Встроенный JavaScript...............................................................................................................530
Ключевое слово this..............................................................................................................531
Привязка событий к объектам в сценарии....................................................................532
Прикрепление к другим событиям..................................................................................532
Добавление новых элементов..................................................................................................533
Удаление элементов..............................................................................................................535
Альтернативы добавлению и удалению элементов...................................................535
Использование прерываний.....................................................................................................536
Использование функции setTimeout..............................................................................537
Отмена тайм-аута...................................................................................................................538
Функция setInterval..............................................................................................................538
Использование прерываний для анимации..................................................................540
Вопросы...........................................................................................................................................542
Глава 21. Введение в jQuery............................................................................................................543
Почему же именно jQuery?.......................................................................................................543
Включение jQuery........................................................................................................................544
Выбор подходящей версии.................................................................................................544
Загрузка.....................................................................................................................................546
Использование сети доставки контента........................................................................547
Заказная сборка jQuery........................................................................................................548
Синтаксис jQuery.........................................................................................................................548
Простой пример......................................................................................................................548
Как избежать конфликтов библиотек............................................................................549
Селекторы.......................................................................................................................................550
Метод css...................................................................................................................................550
Селектор элемента.................................................................................................................551
Селектор идентификатора..................................................................................................552
Селектор класса......................................................................................................................552
Сочетание селекторов..........................................................................................................552
Обработка событий......................................................................................................................553
Ожидание готовности документа...........................................................................................555
Функции и свойства событий..................................................................................................556
События blur и focus.............................................................................................................556
Ключевое слово this..............................................................................................................558
События click и dblclick.......................................................................................................558
Событие keypress....................................................................................................................559
Деликатное программирование........................................................................................561
Событие mousemove..............................................................................................................562
Другие события, связанные с мышью.............................................................................565
Альтернативные методы работы с мышью...................................................................566
Событие submit.......................................................................................................................566
Специальные эффекты...............................................................................................................568
Исчезновение и появление.................................................................................................569
Метод toggle.............................................................................................................................570
Проявление и растворение.................................................................................................571
Скольжение элементов вверх и вниз..............................................................................572
Анимация..................................................................................................................................573
Остановка анимации.............................................................................................................577
Работа с DOM................................................................................................................................577
Разница между методами text и html..............................................................................578
Методы val и attr....................................................................................................................579
Добавление и удаление элементов...................................................................................580
Динамическое применение классов.......................................................................................583
Работа с размерами......................................................................................................................583
Методы width и height..........................................................................................................584
Методы innerWidth и innerHeight...................................................................................586
Методы outerWidth и outerHeight...................................................................................586
Обход объектов DOM.................................................................................................................587
Родительские элементы.......................................................................................................587
Дочерние элементы...............................................................................................................592
Одноуровневые элементы...................................................................................................592
Выбор следующих и предыдущих элементов..............................................................594
Обход элементов, выбранных с помощью методов jQuery.....................................595
Метод is.....................................................................................................................................597
Использование jQuery без селекторов..................................................................................599
Метод $.each............................................................................................................................599
Метод $.map.............................................................................................................................600
Использование асинхронного обмена данными................................................................600
Метод POST............................................................................................................................601
Метод GET...............................................................................................................................601
Дополнительные модули (плагины).....................................................................................602
Пользовательский интерфейс jQuery.............................................................................602
Другие дополнительные модули......................................................................................603
Вопросы...........................................................................................................................................604
Глава 22. Введение в jQuery Mobile.............................................................................................605
Включение jQuery Mobile..........................................................................................................606
Начало работы...............................................................................................................................607
Связывание страниц....................................................................................................................609
Синхронная связанность.....................................................................................................610
Связанность внутри многостраничного документа...................................................611
Смена страниц.........................................................................................................................611
Стильные кнопки...................................................................................................................615
Обработка списков.......................................................................................................................618
Фильтруемые списки...........................................................................................................620
Разделители списков............................................................................................................621
А что же дальше?..........................................................................................................................624
Вопросы...........................................................................................................................................625
Глава 23. Введение в HTML5.........................................................................................................626
Холст.................................................................................................................................................626
Геолокация......................................................................................................................................628
Аудио и видео................................................................................................................................630
Формы..............................................................................................................................................631
Локальное хранилище................................................................................................................631
Рабочие веб-процессы.................................................................................................................631
Микроданные.................................................................................................................................632
Вопросы...........................................................................................................................................632
Глава 24. Холсты в HTML5............................................................................................................633
Создание холста и доступ к нему............................................................................................633
Функция toDataURL............................................................................................................635
Указание типа изображения..............................................................................................637
Метод fillRect..........................................................................................................................637
Метод clearRect.......................................................................................................................638
Метод strokeRect....................................................................................................................638
Сочетание всех этих команд...............................................................................................638
Метод createLinearGradient................................................................................................639
Метод addColorStop в подробностях..............................................................................642
Метод createRadialGradient................................................................................................643
Использование узоров для заливки................................................................................644
Запись текста на холсте..............................................................................................................646
Метод strokeText....................................................................................................................647
Свойство textBaseLine.........................................................................................................647
Свойство font...........................................................................................................................647
Свойство textAlign.................................................................................................................648
Метод fillText..........................................................................................................................648
Метод measureText................................................................................................................649
Рисование линий..........................................................................................................................649
Свойство lineWidth...............................................................................................................649
Свойства lineCap и lineJoin.................................................................................................650
Свойство miterLimit..............................................................................................................652
Использование путей..................................................................................................................652
Методы moveTo и lineTo.....................................................................................................653
Метод stroke.............................................................................................................................653
Метод rect.................................................................................................................................653
Заливка областей..........................................................................................................................654
Метод clip........................................................................................................................................655
Метод isPointInPath....................................................................................................................658
Работа с кривыми линиями......................................................................................................659
Метод arc...................................................................................................................................659
Метод arcTo.............................................................................................................................661
Метод quadraticCurveTo......................................................................................................663
Метод bezierCurveTo............................................................................................................664
Обработка изображений............................................................................................................665
Метод drawImage...................................................................................................................665
Изменение размеров изображения..................................................................................666
Выбор области изображения.............................................................................................666
Копирование с холста...........................................................................................................668
Добавление теней...................................................................................................................668
Редактирование на уровне пикселов.....................................................................................670
Метод getImageData..............................................................................................................670
Массив data..............................................................................................................................671
Метод putImageData.............................................................................................................673
Метод createlmageData.........................................................................................................673
Более сложные графические эффекты.................................................................................673
Свойство globalCompositeOperation...............................................................................674
Свойство globalAlpha............................................................................................................676
Преобразования............................................................................................................................677
Метод scale...............................................................................................................................677
Методы save и restore............................................................................................................678
Метод rotate.............................................................................................................................679
Метод translate........................................................................................................................680
Метод transform......................................................................................................................681
Метод setTransform...............................................................................................................683
Вопросы...........................................................................................................................................683
Глава 25. Аудио и видео в HTML5...............................................................................................685
О кодеках.........................................................................................................................................686
Элемент audio................................................................................................................................688
Поддержка браузеров, не работающих с HTML5.............................................................690
Элемент video.................................................................................................................................691
Видеокодеки............................................................................................................................692
Поддержка устаревших браузеров...................................................................................695
Вопросы...........................................................................................................................................696
Глава 26. Другие свойства HTML5..............................................................................................697
Геолокация и служба GPS.........................................................................................................697
Другие методы определения местоположения..................................................................698
Геолокация и HTML5.................................................................................................................699
Локальное хранилище................................................................................................................702
Использование локального хранилища.........................................................................703
Объект localStorage...............................................................................................................704
Рабочие веб-процессы.................................................................................................................706
Перетаскивание.............................................................................................................................709
Обмен сообщениями между документами..........................................................................711
Другие теги HTML5....................................................................................................................715
Вопросы...........................................................................................................................................715
Глава 27. Объединение технологий.............................................................................................716
Проектирование приложения социальной сети................................................................717
Информация на сайте.................................................................................................................717
Файл functions.php.......................................................................................................................718
Файл header.php............................................................................................................................720
Файл setup.php..............................................................................................................................723
Файл index.php..............................................................................................................................724
Файл signup.php............................................................................................................................726
Проверка возможности применения желаемого имени пользователя...............726
Регистрация.............................................................................................................................726
Файл checkuser.php......................................................................................................................729
Файл login.php...............................................................................................................................730
Файл profile.php............................................................................................................................733
Добавление текста в поле About Me (Обо мне)..........................................................733
Добавление изображения профиля.................................................................................734
Обработка изображения......................................................................................................734
Отображение текущего профиля.....................................................................................735
Файл members.php........................................................................................................................737
Просмотр профилей пользователей................................................................................738
Добавление и удаление друзей..........................................................................................738
Вывод списка всех участников..........................................................................................738
Файл friends.php............................................................................................................................741
Файл messages.php........................................................................................................................744
Файл logout.php............................................................................................................................748
Файл styles.css................................................................................................................................749
Файл javascript.js..........................................................................................................................751
Приложение А. Ответы на контрольные вопросы.................................................................752
Глава 1..............................................................................................................................................752
Глава 2..............................................................................................................................................753
Глава 3..............................................................................................................................................753
Глава 4..............................................................................................................................................755
Глава 5..............................................................................................................................................756
Глава 6..............................................................................................................................................757
Глава 7..............................................................................................................................................757
Глава 8..............................................................................................................................................758
Глава 9..............................................................................................................................................759
Глава 10............................................................................................................................................760
Глава 11............................................................................................................................................760
Глава 12............................................................................................................................................761
Глава 13............................................................................................................................................762
Глава 14............................................................................................................................................763
Глава 15............................................................................................................................................764
Глава 16............................................................................................................................................764
Глава 17............................................................................................................................................765
Глава 18............................................................................................................................................766
Глава 19............................................................................................................................................767
Глава 20............................................................................................................................................768
Глава 21............................................................................................................................................769
Глава 22............................................................................................................................................770
Глава 23............................................................................................................................................771
Глава 24............................................................................................................................................771
Глава 25............................................................................................................................................772
Глава 26............................................................................................................................................773
Приложение Б. Интернет-ресурсы..............................................................................................774
Сайты, относящиеся к PHP......................................................................................................774
Сайты, относящиеся к MySQL................................................................................................774
Сайты, относящиеся к JavaScript............................................................................................775
Сайты, относящиеся к CSS.......................................................................................................775
Сайты, относящиеся к HTML5...............................................................................................775
Сайты, относящиеся к асинхронному обмену данными.................................................775
Сайты с разнообразными ресурсами.....................................................................................776
Приложение В. Стоповые слова MySQL для FULLTEXT.................................................777
Приложение Г. Функции MySQL................................................................................................780
Строковые функции....................................................................................................................780
Функции для работы с датами.................................................................................................783
Функции для работы с временем............................................................................................788
Приложение Д. Селекторы, объекты и методы jQuery.........................................................790
Селекторы jQuery.........................................................................................................................790
Объекты jQuery.............................................................................................................................795
Методы jQuery...............................................................................................................................797