Mundarija | Предисловие …………………..29
Для кого предназначена эта книга ……………29
Предположения, допущенные в данной книге ………..29
Как устроена книга …………………30
Дополнительная литература ……………..30
Условные обозначения………………..31
Использование примеров кода ……………..32
Благодарности …………………..32
От издательства ………………….33
Глава 1.Введение в динамическое содержимое веб-страницы..34
HTTP и HTML: основы, заложенные Бернерсом-Ли ………35
Процедура «запрос — ответ» ……………..35
Преимущества использования PHP, MySQL, JavaScript и CSS ……38
PHP …………………….39
MySQL ……………………40
JavaScript …………………..41
CSS …………………….42
А теперь HTML5 ………………….43
Веб-сервер Apache …………………44
Несколько слов о программах с открытым исходным кодом ……45
А теперь все это, вместе взятое …………….45
Вопросы …………………….47
Глава 2.Установка сервера, предназначенного для разработки .49
Что такое WAMP, MAMP и LAMP …………….50
Установка XAMPP в систему Windows …………..50
Тестирование установки ……………..57
Обращение к исходному источнику документов ………58
Другие системы WAMP ………………59
Установка XAMPP в систему Mac OS X …………..59
Обращение к исходному источнику документов ………60
Установка LAMP в Linux ……………….60
Работа в удаленном режиме ……………..61
Вход в систему …………………61
Использование FTP ……………….61
Использование редактора программ ……………63
Использование IDE …………………64
Вопросы …………………….65
Глава 3.Введение в PHP ………………66
Включение PHP в HTML ……………….66
Примеры в этой книге ………………..68
Структура PHP …………………..69
Комментарии ………………….69
Основной синтаксис ……………….70
Переменные ………………….70
Операторы ………………….75
Присваивание значений переменным………….78
Многострочные команды ……………..81
Типы переменных ………………..83
Константы …………………..84
Предопределенные константы ……………84
Различие между командами echo и print ………..85
Функции …………………..86
Область видимости переменной …………..87
Вопросы …………………….93
Глава 4.Выражения и управление процессом выполнения
программы в PHP ………………..95
Выражения ……………………95
TRUE или FALSE? ………………..95
Литералы и переменные ……………..97
Операторы ……………………98
Приоритетность операторов …………….99
Взаимосвязанность операторов …………..100
Операторы отношения………………102
Условия …………………….106
Инструкция if …………………106
Инструкция else ………………..107
Инструкция elseif ………………..109
Инструкция switch ……………….110
Оператор ? ………………….113
Организация циклов ………………..114
Циклы while ………………….115
Циклы do..while ………………..116
Циклы for ………………….117
Прекращение работы цикла …………….119
Инструкция continue ………………120
Неявное и явное преобразование типов ………….120
Динамическое связывание в PHP ……………121
Динамическое связывание в действии ………….122
Вопросы ……………………123
Глава 5.Функции и объекты PHP …………..125
Функции PHP …………………..126
Определение функции ………………127
Возвращение значения ……………..128
Возвращение массива ………………130
Не передавайте аргументы по ссылке …………130
Возвращение глобальных переменных …………132
И еще раз об области видимости переменных ………133
Включение и запрос файлов ……………..133
Инструкция include ……………….133
Инструкция include_once ……………..134
Инструкции require и require_once ………….134
Совместимость версий PHP ……………..135
Объекты PHP …………………..135
Терминология …………………136
Объявление класса ……………….138
Создание объекта ……………….138
Доступ к объектам ……………….139
Клонирование объектов ……………..140
Конструкторы …………………141
Деструкторы в PHP 5 ………………142
Написание методов ……………….142
Статические методы в PHP 5 ……………143
Объявление свойств ………………144
Объявление констант ………………145
Область видимости свойств и методов в PHP 5………145
Статические свойства и методы …………..146
Наследование …………………147
Вопросы ……………………151
Глава 6.Массивы в PHP ………………152
Основные подходы к массивам …………….152
Массивы с числовой индексацией ………….152
Ассоциативные массивы ……………..154
Присваивание с использованием ключевого слова array …..155
Цикл foreach..as …………………156
Многомерные массивы ……………….158
Использование функций для работы с массивами ………161
is_array …………………..161
count ……………………161
sort …………………….162
shuffle ……………………162
explode …………………..162
extract ……………………163
compact …………………..164
reset ……………………165
end …………………….166
Вопросы ……………………166
Глава 7.Практикум по программированию на PHP ……167
Функция printf ………………….167
Настройка представления данных ………….169
Дополнение строк ……………….171
Функция sprintf ………………..172
Функции даты и времени ………………172
Константы, связанные с датами …………..174
Функция checkdate ……………….175
Работа с файлами …………………175
Проверка существования файла …………..176
Создание файла ………………..176
Чтение из файлов ……………….178
Копирование файлов ………………178
Перемещение файла ………………179
Удаление файла ………………..179
Обновление файлов ………………180
Блокирование файлов при коллективном доступе …….181
Чтение всего файла целиком ……………182
Загрузка файлов на веб-сервер …………..183
Системные вызовы …………………188
XHTML или HTML5 …………………190
Вопросы ……………………191
Глава 8.Введение в MySQL ……………..192
Основные характеристики MySQL ……………192
Сводка понятий, используемых в базах данных ……….193
Доступ к MySQL из командной строки …………..193
Начало работы с интерфейсом командной строки …….194
Использование интерфейса командной строки ………197
Команды MySQL ………………..199
Типы данных …………………203
Индексы ……………………212
Создание индекса ……………….213
Создание запросов к базе данных MySQL ………..218
Объединение таблиц ………………227
Использование логических операторов ………..229
Функции MySQL ………………….229
Работа с MySQL через phpMyAdmin …………..230
Вопросы ……………………231
Глава 9.Освоение MySQL ……………..233
Проектирование базы данных …………….233
Первичные ключи: ключи к реляционным базам данных ……234
Нормализация ………………….235
Первая нормальная форма …………….236
Вторая нормальная форма …………….238
Третья нормальная форма …………….241
Когда не следует проводить нормализацию ……….243
Отношения …………………..244
«Один к одному» ………………..244
«Один ко многим» ……………….245
«Многие ко многим» ………………246
Базы данных и анонимность ……………247
Транзакции …………………..247
Ядра (механизмы хранения) транзакций ………..248
Команда BEGIN ………………..249
Команда COMMIT ……………….249
Команда ROLLBACK ……………….250
Команда EXPLAIN …………………250
Резервное копирование и восстановление данных ………252
Команда mysqldump ………………252
Создание файла резервной копии ………….253
Восстановление данных из файла резервной копии …….255
Выгрузка данных в файлы формата CSV ………..255
Планирование резервного копирования ………..256
Вопросы ……………………256
Глава 10.Доступ к MySQL с использованием PHP …….258
Запросы к базе данных MySQL с помощью PHP ……….258
Процесс …………………..258
Создание файла регистрации ……………259
Подключение к базе данных MySQL ………….260
Практический пример ……………….265
Массив $_POST ………………..268
Удаление записи ………………..268
Отображение формы ………………269
Запросы к базе данных ……………..270
Запуск программы ……………….271
Практическая работа с MySQL …………….272
Создание таблицы ……………….272
Описание таблицы ……………….273
Удаление таблицы ……………….274
Добавление данных ……………….274
Извлечение данных ……………….275
Обновление данных ………………275
Удаление данных ……………….276
Свойство AUTO_INCREMENT ……………276
Выполнение дополнительных запросов ………..278
Предотвращение попыток взлома ………….279
Возможные меры противодействия ………….280
Указатели мест заполнения …………….281
Предотвращение внедрения HTML-кода ………..284
Процедурный метод использования mysqli ……….285
Вопросы ……………………287
Глава 11.Обработка форм ……………..288
Создание форм ………………….288
Извлечение отправленных данных ……………289
register_globals: склонность к использованию устаревших
решений ………………….291
Значения по умолчанию ……………..292
Типы элементов ввода данных …………..293
Обезвреживание введенных данных …………300
Пример программы ………………..302
А что нового в HTML5? ……………….304
Атрибут autocomplete ………………305
Атрибут autofocus ……………….305
Атрибут placeholder ……………….305
Атрибут required ………………..306
Атрибуты подмены ……………….306
Атрибуты width и height ……………..306
Свойства, ожидающие повсеместной реализации ………306
Атрибут form …………………307
Атрибут list ………………….307
Атрибуты min и max ………………307
Атрибут step …………………308
Тип ввода color ………………..308
Типы ввода number и range …………….308
Окно выбора даты и времени ……………308
Вопросы ……………………309
Глава 12.Cookie, сессии и аутентификация ………310
Использование cookie в PHP ……………..310
Установка cookie ………………..311
Доступ к cookie ………………..312
Удаление cookie ………………..313
HTTP-аутентификация ……………….313
Сохранение имен пользователей и паролей ……….316
Добавление произвольных данных ………….317
Использование сессий ……………….321
Начало сессии …………………321
Завершение сессии ……………….325
Безопасность сессии ………………326
Вопросы ……………………330
Глава 13.Изучение JavaScript …………….331
JavaScript и текст HTML ……………….332
Использование сценариев в заголовке документа …….333
Устаревшие и нестандартные браузеры ………..333
Включение файлов JavaScript ……………334
Отладка кода JavaScript ……………..335
Использование комментариев …………….337
Точка с запятой ………………….337
Переменные …………………..338
Строковые переменные ……………..338
Числовые переменные ………………338
Массивы …………………..339
Операторы …………………..340
Арифметические операторы ……………340
Операторы присваивания …………….340
Операторы сравнения ………………341
Логические операторы ……………..341
Инкремент и декремент переменной …………342
Объединение строк ……………….342
Управляющие символы ……………..342
Типизация переменных ……………….343
Функции ……………………344
Глобальные переменные ………………344
Локальные переменные ……………….344
Объектная модель документа ……………..346
Но не все так просто ………………348
Еще одно использование знака $ …………..348
Использование DOM ………………349
О функции document.write ………………350
Использование console.log …………….350
Использование alert……………….350
Запись в элементы ……………….350
Использование document.write ……………350
Вопросы ……………………351
Глава 14.Выражения и управление процессом выполнения
сценариев в JavaScript ………………353
Выражения …………………..353
Литералы и переменные ………………354
Операторы …………………..355
Приоритетность операторов ……………356
Взаимосвязанность ……………….356
Операторы отношения………………357
Инструкция with ………………….360
Использование события onerror …………….360
Конструкция try..catch ……………….362
Условия …………………….362
Инструкция if …………………363
Инструкция else ………………..363
Инструкция switch ……………….364
Оператор ? ………………….365
Циклы …………………….366
Циклы while ………………….366
Циклы do..while ………………..366
Циклы for ………………….367
Прекращение работы цикла …………….368
Инструкция continue ………………368
Явное преобразование типов ……………..369
Вопросы ……………………370
Глава 15.Функции, объекты и массивы JavaScript …….371
Функции JavaScript …………………371
Определение функции ………………371
Массив аргументов ……………….372
Возвращение значения ……………..373
Возвращение массива ………………375
Объекты JavaScript …………………376
Объявление класса ……………….376
Создание объекта ……………….377
Доступ к объектам ……………….378
Ключевое слово prototype …………….378
Массивы в JavaScript ………………..381
Числовые массивы ……………….381
Ассоциативные массивы ……………..382
Многомерные массивы………………383
Методы массивов ……………….384
Вопросы ……………………389
Глава 16.Проверка данных и обработка ошибок в JavaScript
и PHP …………………….390
Проверка данных, введенных пользователем, средствами JavaScript..390
Документ validate.html (часть первая) …………391
Документ validate.html (часть вторая) …………393
Регулярные выражения ……………….396
Соответствие, закладываемое в метасимволы ………397
Нестрогое символьное соответствие …………397
Группировка с помощью скобок …………..399
Символьный класс ……………….399
Указание диапазона ………………400
Инвертирование ………………..400
Более сложные примеры ……………..400
Сводная таблица метасимволов …………..403
Общие модификаторы ………………405
Использование регулярных выражений в JavaScript …….405
Использование регулярных выражений в PHP ………406
Повторное отображение формы после проверки
данных PHP-программой ……………..407
Вопросы ……………………413
Глава 17.Использование технологии AJAX ……….414
Что такое AJAX ………………….415
XMLHttpRequest ………………….415
Ваша первая программа, использующая AJAX ………417
Использование GET вместо POST …………..422
Отправка XML-запросов ……………..424
Использование для AJAX специальной среды ………..428
Вопросы ……………………429
Глава 18.Введение в CSS ……………..430
Импортирование таблицы стилей ……………431
Импортирование CSS из HTML-кода ………….432
Встроенные настройки стиля ……………432
Идентификаторы (ID) ……………….432
Классы …………………….433
Точки с запятой ………………….433
Правила CSS …………………..433
Множественные задания стиля …………..434
Использование комментариев ……………435
Типы стилей …………………..435
Исходные стили ………………..435
Пользовательские стили ……………..436
Внешние таблицы стилей …………….436
Внутренние стили ……………….437
Внедренные стили ……………….437
Селекторы CSS ………………….437
Селектор типа …………………437
Селектор потомков ……………….438
Селектор дочерних элементов ……………439
Селектор элементов, имеющих идентификатор ……..440
Селектор класса ………………..441
Селектор атрибутов ……………….441
Универсальный селектор ……………..442
Групповая селекция ………………442
Каскадность CSS …………………443
Создатель таблиц стилей ……………..443
Методы создания таблиц стилей …………..444
Селекторы таблиц стилей …………….444
Вычисление специфики ……………..445
Разница между элементами Div и Span…………447
Измерения ……………………448
Шрифты и оформление ……………….450
font-family ………………….450
font-style …………………..451
font-size …………………..451
font-weight ………………….452
Управление стилями текста ……………..452
Оформление …………………453
Разрядка …………………..453
Выравнивание …………………454
Преобразование ………………..454
Отступы …………………..454
Цвета CSS ……………………455
Сокращенные цветовые строки …………..455
Градиенты ………………….456
Позиционирование элементов …………….457
Абсолютное позиционирование …………..457
Относительное позиционирование ………….458
Фиксированное позиционирование ………….458
Псевдоклассы ………………….460
Сокращенная запись правил ……………..462
Модель блока и макет страницы ……………462
Установка полей ………………..463
Применение границ ……………….465
Настройка отступов ……………….466
Содержимое объекта ………………467
Вопросы ……………………468
Глава 19.Расширение CSS с помощью CSS3 ………469
Селекторы атрибутов ………………..469
Соответствие частям строк …………….470
Оператор ^ ………………….470
Оператор $ ………………….471
Оператор * ………………….471
Свойство box-sizing ………………..471
Создание фона в CSS3 ……………….472
Свойство background-clip ……………..472
Свойство background-origin …………….473
Свойство background-size ……………..474
Использование нескольких фонов ………….475
Границы CSS3 ………………….477
Свойство border-color ………………477
Свойство border-radius ………………477
Прямоугольные тени ………………..480
Выход элемента за пределы размеров ………….481
Разметка с использованием нескольких колонок ………481
Цвета и непрозрачность……………….483
Цвета HSL ………………….483
Цвета HSLA ………………….484
Цвета RGB ………………….484
Цвета RGBA ………………….485
Свойство opacity ………………..485
Эффекты, применяемые к тексту ……………486
Свойство text-shadow ………………486
Свойство text-overflow ………………486
Свойство word-wrap ……………….487
Веб-шрифты …………………..487
Трансформации ………………….489
Трехмерная трансформация ……………..490
Переходы ……………………491
Свойства, применяемые к переходам …………492
Продолжительность перехода ……………492
Задержка перехода ……………….492
Задание скорости перехода …………….492
Сокращенный синтаксис ……………..493
Вопросы ……………………495
Глава 20.Доступ к CSS из JavaScript ………….496
Еще одно обращение к функции getElementById ……….496
Функция O ………………….496
Функция S ………………….497
Функция C ………………….498
Включение функций ………………499
Обращение к свойствам CSS из JavaScript …………500
Некоторые общие свойства …………….500
Другие свойства ………………..501
Встроенный JavaScript ……………….503
Ключевое слово this ………………504
Привязка событий к объектам в сценарии ……….504
Прикрепление к другим событиям ………….505
Добавление новых элементов …………….506
Удаление элементов ………………507
Альтернативы добавлению и удалению элементов …….508
Использование прерываний ……………..509
Использование функции setTimeout ………….509
Отмена тайм-аута ……………….510
Функция setInterval ……………….510
Использование прерываний для анимации ……….512
Вопросы ……………………513
Глава 21.Введение в jQuery …………….515
Почему же именно jQuery? ………………516
Включение jQuery …………………516
Выбор подходящей версии …………….517
Загрузка …………………..518
Использование сети доставки контента ………..518
Всегда используйте самую последнюю версию………519
Заказная сборка jQuery ……………..519
Синтаксис jQuery …………………520
Простой пример ………………..520
Как избежать конфликта библиотек………….521
Селекторы ……………………522
Метод css ………………….522
Селектор элемента ……………….523
Селектор идентификатора …………….523
Селектор класса ………………..523
Сочетание селекторов ………………523
Обработка событий ………………..525
Ожидание готовности документа ……………526
Функции и свойства событий ……………..527
События blur и focus ………………527
Ключевое слово this ………………529
События click и dblclick ……………..529
Событие keypress ……………….530
Деликатное программирование …………..532
Событие mousemove ………………532
Другие события, связанные с мышью …………535
Альтернативные методы работы с мышью ……….536
Событие submit ………………..537
Специальные эффекты ……………….539
Исчезновение и появление …………….540
Метод toggle …………………541
Проявление и растворение …………….541
Скольжение элементов вверх и вниз …………543
Анимация ………………….544
Остановка анимации ………………547
Работа с DOM ………………….547
Разница между методами text и html …………548
Методы val и attr ………………..549
Добавление и удаление элементов ………….550
Динамическое применение классов …………..552
Работа с размерами ………………..553
Методы width и height ………………553
Методы innerWidth и innerHeight …………..556
Методы outerWidth и outerHeight …………..556
Обход объектов DOM ………………..556
Родительские элементы ……………..557
Дочерние элементы ……………….562
Одноуровневые элементы …………….562
Выбор следующих и предыдущих элементов ………564
Обход элементов, выбранных с помощью методов jQuery ….565
Метод is …………………..567
Использование jQuery без селекторов ………….569
Метод $.each …………………569
Метод $.map …………………570
Использование Ajax ………………..570
Использование метода Post …………….570
Использование метода Get …………….571
Дополнительные модули ………………572
Пользовательский интерфейс jQuery …………572
Другие дополнительные модули …………..573
jQuery для мобильных устройств …………..573
Вопросы ……………………574
Глава 22.Введение в HTML5 …………….576
Холст ……………………..577
Геолокация …………………..578
Аудио и видео ………………….580
Формы …………………….581
Локальное хранилище ……………….582
Рабочие веб-процессы ……………….582
Веб-приложения …………………582
Микроданные ………………….583
Резюме …………………….583
Вопросы ……………………583
Глава 23.Холсты в HTML5 ……………..584
Создание холста и доступ к нему ……………584
Функция toDataURL ……………….586
Указание типа изображения ……………588
Метод fillRect …………………588
Метод clearRect ………………..588
Метод strokeRect ………………..589
Сочетание всех этих команд ……………589
Метод createLinearGradient …………….590
Метод addColorStop в подробностях ………….593
Метод createRadialGradient …………….594
Использование узоров для заливки ………….595
Запись текста на холсте ……………….596
Метод strokeText ………………..597
Свойство textBaseLine ………………597
Свойство font …………………598
Свойство textAlign ……………….598
Метод fillText …………………598
Метод measureText ……………….599
Рисование линий …………………600
Свойство lineWidth ……………….600
Свойства lineCap и lineJoin …………….600
Свойство miterLimit ……………….602
Использование путей ………………..603
Методы moveTo и LineTo ……………..603
Метод stroke …………………603
Метод rect ………………….604
Заливка областей …………………604
Метод clip ……………………606
Метод isPointInPath ………………..609
Работа с кривыми линиями ……………..609
Метод arc ………………….610
Метод arcTo ………………….612
Метод quadraticCurveTo ……………..613
Метод bezierCurveTo ………………615
Обработка изображений ………………615
Метод drawImage ……………….616
Изменение размеров изображения ………….616
Выбор области изображения ……………616
Копирование с холста ………………618
Добавление теней ……………….618
Редактирование на уровне пикселов …………..620
Метод getImageData ………………620
Массив data ………………….621
Метод putImageData ………………623
Метод createImageData ……………..623
Более сложные графические эффекты ………….624
Свойство globalCompositeOperation ………….624
Свойство globalAlpha ………………626
Преобразования …………………627
Метод scale ………………….627
Методы save и restore ………………628
Метод rotate …………………628
Метод translate ………………..629
Метод transform ………………..631
Метод setTransform ……………….632
Резюме …………………….632
Вопросы ……………………633
Глава 24.Аудио и видео в HTML5 …………..634
О кодеках ……………………635
Элемент <audio> …………………636
Поддержка браузеров, не работающих с HTML5 ……….638
Элемент <video> …………………639
Видеокодеки …………………640
Поддержка устаревших браузеров ………….643
Резюме …………………….644
Вопросы ……………………644
Глава 25.Другие свойства HTML5 …………..646
Геолокация и служба GPS ………………646
Другие методы определения местоположения ……….647
Геолокация и HTML5 ………………..647
Локальное хранилище ……………….651
Использование локального хранилища ………..652
Объект localStorage ……………….652
Рабочие веб-процессы ……………….654
Автономные веб-приложения ……………..656
Перетаскивание ………………….658
Обмен сообщениями между документами …………660
Микроданные ………………….663
Другие теги HTML5 ………………..666
Резюме …………………….666
Вопросы ……………………666
Глава 26.Объединение технологий ………….668
Проектирование сайта социальной сети ………….668
Информация на сайте ……………….669
Файл functions.php …………………669
Функции ……………………669
Файл header.php………………….671
Файл setup.php ………………….673
Файл index.php ………………….675
Файл signup.php ………………….676
Проверка возможности применения желаемого имени
пользователя ………………..676
Регистрация …………………676
Файл checkuser.php ………………..679
Файл login.php ………………….680
Файл profile.php ………………….682
Добавление текста в поле About Me (Обо мне) ………683
Добавление изображения профиля ………….683
Обработка изображения ……………..683
Отображение текущего профиля …………..684
Файл members.php …………………687
Просмотр профилей пользователей ………….687
Добавление и удаление друзей …………..687
Вывод списка всех участников ……………687
Файл friends.php …………………690
Файл messages.php ………………..694
Файл logout.php ………………….697
Файл styles.css ………………….698
Файл javascript.js …………………701
Приложение А.Ответы на контрольные вопросы …….703
Ответы на вопросы главы 1 ……………..703
Ответы на вопросы главы 2 ……………..704
Ответы на вопросы главы 3 ……………..704
Ответы на вопросы главы 4 ……………..706
Ответы на вопросы главы 5 ……………..707
Ответы на вопросы главы 6 ……………..709
Ответы на вопросы главы 7 ……………..709
Ответы на вопросы главы 8 ……………..710
Ответы на вопросы главы 9 ……………..711
Ответы на вопросы главы 10 ……………..712
Ответы на вопросы главы 11 ……………..713
Ответы на вопросы главы 12 ……………..714
Ответы на вопросы главы 13 ……………..715
Ответы на вопросы главы 14 ……………..716
Ответы на вопросы главы 15 ……………..717
Ответы на вопросы главы 16 ……………..718
Ответы на вопросы главы 17 ……………..719
Ответы на вопросы главы 18 ……………..720
Ответы на вопросы главы 19 ……………..721
Ответы на вопросы главы 20 ……………..723
Ответы на вопросы главы 21 ……………..724
Ответы на вопросы главы 22 ……………..725
Ответы на вопросы главы 23 ……………..726
Ответы на вопросы главы 24 ……………..727
Ответы на вопросы главы 25 ……………..728
Приложение Б.Интернет-ресурсы ………….730
Сайты, относящиеся к PHP ………………730
Сайты, относящиеся к MySQL ……………..730
Сайты, относящиеся к JavaScript ……………731
Сайты, относящиеся к CSS ………………731
Сайты, относящиеся к HTML5 ……………..731
Сайты, относящиеся к AJAX ……………..731
Сайты с разнообразными ресурсами …………..732
Сайты с ресурсами издательства O'Reilly …………732
Приложение В.MySQL's FULLTEXT Stopwords ……..733
Приложение Г.Функции MySQL …………..736
Строковые функции ………………..736
Функции для работы с датами …………….739
Функции для работы с временем ……………744
Приложение Д.Селекторы, объекты и методы jQuery…..747
Селекторы jQuery …………………747
Объекты jQuery ………………….751
Методы jQuery ………………….752 |
---|
Fikr-mulohazalar
Baho berilmagan.