Название: Создаем динамические веб-сайты с помощью PHP, MySQL и javascript
Автор: Робин Никсон
Издательство: Питер
Год издания: 2011
Формат: DjVu
Язык: русский
Страниц: 497
Качество: хорошее
Размер: 13,5 Мб
Предисловие. 17
Для кого предназначена эта книга. 17
Предположения, допущенные в данной книге. 17
Как устроена книга. 18
Дополнительная литература. 18
Соглашения, использованные в данной книге. 19
Использование примеров кода. 19
Благодарности. 20
От издательства. 21
Глава 1. Введение в динамическое содержимое веб-страницы. 22
HTTP и HTML: основы, заложенные Бернерсом-Ли. 23
Процедура «запрос — ответ». 23
Преимущества использования PHP, MySQL и javascript. 26
Использование PHP. 26
Использование MySQL. 27
Использование javascript. 29
Веб-сервер Apache. 30
Несколько слов о программах с открытым исходным кодом. 31
А теперь все это вместе взятое. 31
Проверьте ваши знания: вопросы. 33
Глава 2. Установка сервера, предназначенного для разработки. 34
Что такое WAMP, MAMP или LAMP?. 34
Установка WAMP на систему Windows. 35
Решение проблем установки. 36
Тестирование установки. 37
Другие системы WAMP. 39
Установка MAMP на систему Mac OS X. 40
Ряд окончательных настроек. 44
Другие варианты. 45
Установка LAMP на Linux. 46
Оглавление 7
Работа в удаленном режиме. 47
Вход в систему. 48
Использование FTP. 48
Использование редактора программ. 50
Использование IDE. 51
Проверьте ваши знания: вопросы. 53
Глава 3. Введение в PHP. 54
Включение PHP в HTML. 54
Вызов парсера PHP. 55
Примеры, приводимые в этой книге. 56
Структура PHP. 57
Использование комментариев. 57
Основной синтаксис. 58
Осмысление переменных. 59
Операторы. 63
Присваивание значений переменным. 66
Многострочные команды. 68
Типы переменных. 70
Константы. 71
Различие между командами echo и print. 73
Функции. 73
Область видимости переменной. 74
Проверьте ваши знания: вопросы. 79
Глава 4. Выражения и управление процессом выполнения
программы в PHP. 81
Выражения. 81
Литералы и переменные. 83
Операторы. 84
Приоритетность операторов. 84
Взаимосвязанность операторов. 86
Операторы отношения. 87
Условия. 90
Инструкция if. 91
Инструкция else. 92
Инструкция elseif. 94
8 Оглавление
Инструкция switch. 95
Оператор «?». 97
Организация циклов. 99
Циклы while. 99
Циклы do…while. 101
Циклы for. 102
Прекращение работы цикла. 103
Инструкция continue. 104
Неявное и явное преобразование типов. 105
Динамическое связывание в PHP. 106
Динамическое связывание в действии. 107
Проверьте ваши знания: вопросы. 108
Глава 5. Функции и объекты PHP. 109
Функции PHP. 110
Определение функции. 111
Возвращение значения. 112
Возвращение массива. 114
Передача по ссылке. 114
Возвращение глобальных переменных. 116
И еще раз об области видимости переменных. 116
Включение и запрос файлов. 117
Инструкция include. 117
Использование инструкции include_once. 117
Использование инструкций require и require_once. 118
Совместимость версий PHP. 118
Объекты PHP. 119
Терминология. 119
Объявление класса. 121
Создание объекта. 122
Доступ к объектам. 122
Конструкторы. 124
Написание методов. 125
Объявление свойств. 127
Объявление констант. 128
Область видимости свойств и методов в PHP 5. 128
Наследование. 130
Проверьте ваши знания: вопросы. 134
Оглавление 9
Глава 6. Массивы в PHP. 135
Основные подходы к массивам. 135
Массивы с числовой индексацией. 135
Ассоциативные массивы. 137
Присваивание, использующее ключевое слово array. 138
Цикл foreach…as. 139
Многомерные массивы. 141
Использование функций для работы с массивами. 143
Проверьте ваши знания: вопросы. 148
Глава 7. Практикум по программированию на PHP. 149
Использование функции printf. 149
Настройка представления данных. 151
Дополнение строк. 152
Использование функции sprintf. 153
Функции даты и времени. 154
Константы, связанные с датами. 156
Использование функции checkdate. 156
Работа с файлами. 157
Проверка существования файла. 157
Создание файла. 157
Чтение из файлов. 159
Копирование файлов. 160
Перемещение файла. 160
Удаление файла. 161
Обновление файлов. 161
Блокирование файлов при коллективном доступе. 162
Чтение всего файла целиком. 164
Загрузка файлов на веб-сервер. 165
Системные вызовы. 170
XHTML. 171
Преимущества XHTML. 171
Версии XHTML. 172
В чем же заключаются отличия?. 172
Типы документов HTML 4.01. 174
Типы документов XHTML 1.0. 174
Проверка правильности XHTML. 175
Проверьте ваши знания: вопросы. 176
10 Оглавление
Глава 8. Введение в MySQL. 177
Основные характеристики MySQL. 177
Сводка понятий, используемых в базах данных. 178
Доступ к MySQL из командной строки. 178
Начало работы с интерфейсом командной строки. 179
Использование интерфейса командной строки. 182
Команды MySQL. 183
Типы данных. 188
Индексы. 197
Создание индекса. 197
Создание запросов к базе данных MySQL. 202
Объединение таблиц. 210
Использование логических операторов. 212
Функции MySQL. 213
Работа с MySQL через phpMyAdmin. 213
Для пользователей Windows. 214
Для пользователей Mac OS X. 214
Использование phpMyAdmin. 215
Проверьте ваши знания: вопросы. 217
Глава 9. Освоение MySQL. 218
Проектирование базы данных. 218
Первичные ключи: ключи к реляционным базам данных. 219
Нормализация. 220
Первая нормальная форма. 221
Вторая нормальная форма. 223
Третья нормальная форма. 226
Когда не следует проводить нормализацию. 228
Отношения. 229
«Один к одному». 229
«Один ко многим». 230
«Многие ко многим». 230
Базы данных и анонимность. 232
Транзакции. 232
Ядра (механизмы хранения) транзакций. 232
Использование команды BEGIN. 233
Использование команды COMMIT. 234
Использование команды ROLLBACK. 234
Оглавление 11
Использование команды EXPLAIN. 235
Резервное копирование и восстановление данных. 236
Использование команды mysqldump. 236
Создание файла резервной копии. 238
Восстановление данных из файла резервной копии . 239
Выгрузка данных в файлы формата CSV. 240
Планирование резервного копирования. 240
Проверьте ваши знания: вопросы. 241
Глава 10. Доступ к MySQL с использованием PHP. 242
Запросы к базе данных MySQL с помощью PHP. 242
Процесс. 242
Создание файла регистрации. 243
Подключение к MySQL. 244
Практический пример. 249
Массив $_POST. 252
Удаление записи. 252
Отображение формы. 253
Запросы к базе данных. 254
Запуск программы. 254
Практическая работа с MySQL. 255
Создание таблицы. 255
Описание таблицы. 256
Удаление таблицы. 257
Добавление данных. 257
Извлечение данных. 258
Обновление данных. 259
Удаление данных. 259
Использование свойства AUTO_INCREMENT. 260
Выполнение дополнительных запросов. 261
Предотвращение внедрения SQL-кода. 263
Предотвращение внедрения HTML-кода. 266
Проверьте ваши знания: вопросы. 268
Глава 11. Обработка форм. 269
Создание форм. 269
Извлечение отправленных данных. 270
12 Оглавление
register_globals: склонность к использованию устаревших
решений. 272
Значения по умолчанию. 272
Типы элементов ввода данных. 273
Текстовое поле. 274
Текстовая область. 274
Флажки. 275
Переключатели. 277
Скрытые поля. 278
Поле со списком. 278
Теги label. 280
Обезвреживание введенных данных. 281
Пример программы. 282
Проверьте ваши знания: вопросы. 285
Глава 12. Работа с шаблонами в системе Smarty. 286
Почему именно Smarty?. 286
Установка. 287
Создание сценариев. 288
Создание шаблонов. 289
Практический пример. 290
Проверьте ваши знания: вопросы. 294
Глава 13. Cookie, сессии и аутентификация. 295
Использование cookie в PHP. 295
Установка cookie. 296
Доступ к cookie. 297
Удаление cookie. 298
HTTP-аутентификация. 298
Сохранение имен пользователей и паролей. 301
Добавление произвольных данных. 301
Использование сессий. 305
Начало сессии. 305
Завершение сессии. 308
Безопасность сессии. 310
Проверьте ваши знания: вопросы. 313
Оглавление 13
Глава 14. Изучение javascript. 314
javascript и текст HTML. 315
Использование сценариев в заголовке документа. 316
Устаревшие и нестандартные браузеры. 316
Включение файлов javascript. 317
Отладка кода javascript. 318
Использование комментариев. 320
Точка с запятой. 321
Переменные. 321
Строковые переменные. 322
Числовые переменные. 322
Массивы. 322
Операторы. 323
Арифметические операторы. 323
Операторы присваивания. 324
Операторы сравнения. 324
Логические операторы. 325
Инкремент и декремент переменной. 325
Объединение строк. 325
Управляющие символы. 326
Типизация переменных. 326
Функции. 327
Глобальные переменные. 327
Локальные переменные. 328
Объектная модель документа. 329
Несовместимость браузеров. 331
Использование DOM. 332
Проверьте ваши знания: вопросы. 333
Глава 15. Выражения и управление процессом выполнения
сценариев в javascript. 335
Выражения. 335
Литералы и переменные. 336
Операторы. 337
Приоритетность операторов. 338
Взаимосвязанность. 338
Операторы отношения. 339
14 Оглавление
Инструкция with. 341
Использование события onerror. 342
Использование конструкции try…catch. 343
Условия. 344
Инструкция if. 344
Инструкция switch. 345
Оператор «?». 347
Циклы. 347
Циклы while. 347
Циклы do…while. 348
Циклы for. 348
Прекращение работы цикла. 349
Инструкция continue. 350
Явное преобразование типов. 350
Проверьте ваши знания: вопросы. 351
Глава 16. Функции, объекты и массивы javascript. 352
Функции javascript. 352
Определение функции. 352
Возвращение значения. 354
Возвращение массива. 356
Объекты javascript. 356
Объявление класса. 357
Создание объекта. 358
Доступ к объектам. 359
Ключевое слово prototype. 359
Массивы в javascript. 361
Числовые массивы. 361
Ассоциативные массивы. 362
Многомерные массивы. 363
Использование методов массивов. 364
Проверьте ваши знания: вопросы. 368
Глава 17. Проверка данных и обработка ошибок
в javascript и PHP. 370
Проверка данных, введенных пользователем, средствами javascript . 370
Документ validate.html (часть первая). 371
Документ validate.html (часть вторая). 373
Оглавление 15
Регулярные выражения. 376
Соответствие, закладываемое в метасимволы. 376
Нестрогое символьное соответствие. 377
Группировка с помощью скобок. 378
Символьный класс. 379
Указание диапазона. 379
Инвертирование. 379
Ряд более сложных примеров. 380
Сводная таблица метасимволов. 382
Общие модификаторы. 384
Использование регулярных выражений в javascript. 384
Использование регулярных выражений в PHP. 385
Повторное отображение формы после проверки данных
PHP-программой. 386
Проверьте ваши знания: вопросы. 391
Глава 18. Использование технологии Ajax. 392
Что такое Ajax?. 393
Использование XMLHttpRequest. 393
Ваша первая Ajax-программа. 395
Использование GET вместо POST. 399
Отправка XML-запросов. 402
Проверьте ваши знания: вопросы. 406
Глава 19. Использование YUI для Ajax и не только. 408
Выбор среды разработки. 408
Использование YUI. 409
Сжатые версии. 411
Использование YUI для работы с технологией Ajax. 411
Другие применения YUI. 415
Простой YUI-календарь. 415
Проверьте ваши знания: вопросы. 417
Глава 20. Объединение технологий. 418
Проектирование сайта социальной сети. 418
О дополнениях сторонних производителей. 419
Информация на веб-сайте. 419
Файл rnfunctions.php. 419
Функции. 420
16 Оглавление
Файл rnheader.php. 422
Файл rnsetup.php. 423
Файл index.php. 424
Файл rnsignup.php. 424
Проверка возможности использования желаемого имени
пользователя. 425
Файл rnsignup.php (YUI-версия). 428
Файл rncheckuser.php. 430
Файл rnlogin.php. 431
Файл rnprofile.php. 433
Добавление текста в поле About Me («Обо мне»). 433
Добавление изображения профиля. 433
Обработка изображения. 434
Отображение текущего профиля. 434
Файл rnmembers.php. 437
Просмотр профилей пользователей. 437
Добавление и удаление друзей. 437
Вывод списка всех участников. 438
Файл rnfriends.php. 441
Файл rnmessages.php. 444
Файл rnlogout.php. 446
Приложение А. Ответы на контрольные вопросы. 449
Приложение Б. Интернет-ресурсы. 468
Приложение В. MySQL’s FULLTEXT Stopwords. 471
Приложение Г. Функции MySQL. 473
Приложение Д. Использование PEAR и PHPUnit. 485