Глава 1. Радости и горести программирования
7
1.1. Когда Wеb-странице нужны программы? 7
1.2. С чего и как начать? 10
1.3. Почему программировать интересно? 23
1.4. Неприятности в программировании 24
Глава 2. О языках программирования вообще
31
2.1. Переменные и типы данных 32
2.2. Массивы данных 39
2.3. Функции 43
2.4. Классы и объекты 49
2.5. Операторы и выражения 57
2.6. Специальные термины 59
2.7. Резюме и напутствие 61
Глава 3. Основы языка JavaScript
65
3.1. Немного истории о версиях и стандартах 65
3.2. Общая характеристика языка 70
3.3. Как создавать и отлаживать сценарии на JavaScript 71
3.3.1. Вставка сценариев в HTML-документ 72
3.3.2. Подготовка, запуск и отладка сценариев 78
3.4. Ввод и вывод данных 81
3.4.1. Метод alert — окно предупреждения 82
3.4.2. Метод confirm — окно подтверждения 83
3.4.3. Метод prompt — окно запроса 84
3.4.4. Метод document.write() 85
3.5. Типы данных 86
3.5.1. Примитивные типы данных 88
3.5.2. Составные типы данных 90
3.5.3. Автоматическое преобразование типов данных 92
Преобразование строк (String) 94
Преобразование чисел (Number) 95
Преобразование логических значений (Boolean) 95
Преобразование пустого значения (null) 95
Преобразование неопределенного значения (undefined) 95
3.5.4. Принудительное преобразование типов данных 96
3.6. Переменные и оператор присваивания 100
3.6.1. Имена переменных 100
3.6.2. Создание переменных 101
3.6.3. Операторы присваивания 110
3.6.4. Проверка типа переменной 112
3.7. Операторы 113
3.7.1. Комментарии 113
3.7.2. Арифметические операторы 114
3.7.3. Дополнительные операторы присваивания 117
3.7.4. Операторы сравнения 118
3.7.5. Логические операторы 121
3.7.6. Операторы условия 122
Оператор if 123
Оператор условия ?: 126
Оператор switch 127
3.7.7. Операторы цикла 129
Оператор for 129
Оператор while 132
Оператор do-while 134
3.7.8. Об условиях в операторах условия и цикла 135
3.7.9. Побитовые операторы 135
3.7.10. Другие операторы 137
3.7.11. Приоритет операторов 137
3.8. Функции 139
3.8.1. Встроенные функции 140
3.8.2. Пользовательские функции 142
3.8.3. Объект Function 146
3.9. Строки 150
3.9.1. Кавычки и специальные символы 151
3.9.2. Объект String 153
3.9.3. Функции вставки и замены подстрок 161
3.9.4. Функции удаления ведущих и заключительных пробелов 163
3.10. Массивы 164
3.10.1. Создание массива 165
3.10.2. Многомерные массивы 167
3.10.3. Копирование массива 168
3.10.4. Объект Array 169
3.10.5. Функции обработки числовых массивов 175
3.11. Числа 176
3.11.1. Числа целые и с плавающей точкой 176
3.11.2. Объект Number 180
3.11.3. Объект Math 182
3.11.4. Функции для решения некоторых математических задач 184
Решение квадратного уравнения 185
Вычисление интеграла 186
Вычисление производной 189
Поиск экстремума 190
3.12. Дата и время 191
3.12.1. Создание объекта Date 192
3.12.2. Методы объекта Date 193
3.13. Объекты 206
3.13.1. Создание объекта 206
3.13.2. Свойства и методы объекта Object 212
3.13.3. Объектные операторы 214
3.14. Операторы обработки исключительных ситуаций 217
Глава 4. Клиентские сценарии на JavaScript
221
4.1. Об объектной модели браузера и документа 221
4.1.1. Общие сведения 221
4.1.2. Объект window 227
Свойства объекта window 227
Методы объекта window 228
4.1.3. Объект document 229
Свойства объекта document 229
Коллекции объекта document 231
Методы объекта document 231
4.1.4. Объект location 232
Свойства объекта location 232
Методы объекта location 232
14.1.5. Объект history 233
Свойства объекта history 233
Методы объекта history 233
4.1.6. Объект navigator 233
Свойства объекта navigator 234
Коллекции объекта navigator 234
Методы объекта navigator 234
4.1.7. Объект screen 235
4.2. Доступ к объектам браузера и документа 235
4.3. Обработка событий 243
4.3.1. Привязка обработчиков событий 243
4.3.2. Программный вызов обработчика события 247
4.3.3. Изменение поведения элементов по умолчанию 249
4.3.4. Прохождение событий 250
4.3.5. Информация о событии: объект event 253
4.4. Окна и фреймы 255
4.4.1. Создание новых окон браузера 255
4.4.2. Работа с фреймами 257
4.4.2. Работа с "плавающими" фреймами 263
4.5. Работа с каскадными таблицами стилей 263
4.6. Управление во времени 269
4.7. Работа с cookie 272
4.8. Работа с таблицами 278
4.9. Работа с формами 281
4.9.1. Проверка данных перед отправкой 281
4.9.2. Создание баннера 283
4.9.3. Переходы между полями по клавише 284
4.10. Создание меню 286
4.10.1. Меню на основе раскрывающегося списка 286
4.10.2. Двухуровневое меню на основе таблиц 288
4.11. Перемещение элементов мышью 292
4.12. Динамическое изменение содержимого документа 297
4.12.1. Изменение свойств, ассоциированных с атрибутами элементов, и свойств стиля 298
4.12.2. Предварительная загрузка изображений 299
4.12.3. Использование изображения для парольной защиты страницы 302
4.12.4. Применение свойства innerHTML 304
4.12.5. Применение технологии AJAX 307
4.13. Распознавание типа браузера 317
Глава 5. Основы языка PHP
321
5.1. Предварительные сведения 322
5.1.1. Где писать сценарии на PHP 322
5.1.2. Сообщения об ошибках 324
5.1.3. Принудительный выход из сценария 324
5.1.4. Справка по PHP 325
5.2. Вывод и типы данных 325
5.3. Переменные и оператор присваивания 330
5.3.1. Имена переменных 330
5.3.2. Создание переменных 331
5.3.3. Отображение значений переменных 333
5.3.4. Переменные переменные 337
5.3.5. Область действия переменных 338
5.3.6. Проверка существования переменных и их типов 340
5.4. Константы 341
5.5. Операторы 342
5.5.1. Комментарии 342
5.5.2. Арифметические операторы 343
5.5.3. Строковый оператор 345
5.5.4. Дополнительные операторы присваивания 345
5.5.5. Операторы сравнения 346
5.5.6. Логические операторы 347
5.5.7. Побитовые операторы 349
5.5.8. Операторы условного перехода 349
Оператор if 349
Оператор switch 350
Оператор условия ?: 351
5.5.9. Операторы цикла 352
Оператор for 352
Оператор while 355
Оператор do-while 356
5.6. Строки 357
5.6.1. Двойные и одинарные кавычки 357
5.6.2. Склейка строк 361
5.6.3. Преобразование строк 361
5.6.4. Форматирование строк 366
5.7. Числа 371
5.7.1. Математические функции 371
5.7.2. Математические константы 372
5.7.3. Представление чисел в различных системах счисления 373
5.7.4. Форматирование чисел 375
5.8. Дата и время 377
5.9. Массивы 381
5.9.1. Создание массива 381
5.9.2. Многомерные массивы 384
5.9.3. Отображение массивов 386
5.9.4. Операции над массивами 387
Копирование массивов 387
Сортировка массивов 387
Перемещение по массиву 390
Запись значений элементов массива в переменные 393
Преобразование массива в текстовую строку 394
Преобразование текстовой строки в массив 394
Другие операции над массивами 395
5.10. Глобальные предопределенные переменные 397
5.11. Функции 399
5.11.1. Пользовательские функции 399
5.11.2. Переменные функции 405
5.11.3. Встроенные функции 406
5.11.4. Как узнать, есть ли такая функция 406
5.12. Классы и объекты 406
5.12.1. Определение класса 407
Свойства и методы 408
Конструктор 409
5.12.2. Применение объектов 411
5.12.3. Ограничение доступа к свойствам и методам 412
5.12.4. Клонирование и удаление объектов 414
5.12.5. Использование методов несозданных объектов 415
5.12.6. Обработка исключений 416
5.12.7. Пример класса формы 417
5.13. Выполнение PHP-кода в текстовых строках 419
Глава 6. Основы создания серверных сценариев на PHP
421
6.1. Получение данных из форм клиента 421
6.1.1. Получение данных из элементов форм 422
6.1.2. Передача файлов на сервер 430
6.2. Переходы между Web-страницами 433
6.2.1. Вывод ссылок 434
6.2.2. Применение форм 434
6.2.3. Переадресация с помощью функции header() 435
6.2.4. Добавление информации к URL-адресу 436
6.2.5. Применение cookie 437
6.2.6. Сеансы 439
Создание сеанса 439
Особенности сеансов 441
Пример организации сеанса 442
Защита страниц паролем 444
6.3. Работа с графикой 447
6.4. Работа с файлами 453
6.4.1. Открытие файла 454
6.4.2. Закрытие и удаление файлов 455
6.4.3. Чтение файла 456
Чтение файла в переменную 456
Чтение файла в массив 457
Чтение файла с удалением тегов HTML 457
6.4.4. Запись в файл 459
6.4.5. Работа с папками 459
6.4.6. Простой счетчик посещений страницы 461
6.4.7. Работа с таблицами в текстовых файлах 462
Чтение CSV-файла 463
Функции для работы с табличными данными 465
Сложный счетчик посещений страницы 470
Создание баннера 475
Создание гостевой книги 479
6.5. Работа с базами данных 486
6.5.1. Что такое база данных 486
6.5.2. Основные средства PHP для взаимодействия с базой данных 488
Подключение к базе данных 488
Передача запросов к базе данных 490
Обработка данных в сценарии 491
6.5.3. Создание гостевой книги на основе базы данных 492
Создание базы данных 493
Создание таблицы для хранения данных 493
Определение регистрационного имени и пароля пользователя 494
Определение прав пользователя 495
Сценарии для взаимодействия с посетителем 496
Сценарии для владельца гостевой книги 499
6.5.4. Применение SQLite 500
6.6. Другие возможности PHP 503
ПРИЛОЖЕНИЯ 505
Приложение 1. Краткий справочник по HTML и CSS 507
П1.1. Теги HTML 507
П1.2. Таблицы стилей 517
П1.2.1. Единицы измерения 517
П1.2.2. Параметры и свойства CSS 518
Свойства шрифта 518
Свойства цвета и фона 521
Свойства списков 524
Свойства текста 525
Блочные свойства 528
Основные свойства печати 536
Свойства фильтров 537
Свойство cursor 540
Приложение 2. Установка Web-сервера и PHP 541
П2.1. Установка Web-сервера 541
П2.2. Установка PHP 542
П2.2.1. Установка модуля PHP 542
П2.2.2. Настройка модуля PHP 543
П2.2.3. Установка расширений PHP 545
П2.2.4. Проверка работоспособности Web-сервера и обработчика PHP 546
Литература 547