Table Of ContentТашков П. А.
Веб-мастеринг на 100 %: HTML, CSS, JavaScript, PHP,
CMS, AJAX, раскрутка
Серия «На 100 %»
Заведующий редакцией А. Громаковский
Ведущий редактор Е. Каляева
Литературный редактор Ю. Кравцова
Художник Л. Адуевская
Корректоры Н. Терех, Ю. Цеханович
Верстка О. Махлина
ББК 32.988.02-018
УДК 004.72
Ташков П. А.
Т25 Веб-мастеринг на 100 %: HTML, CSS, JavaScript, PHP, CMS, AJAX, раскрутка. —
СПб.: Питер, 2010. — 512 с.: ил. — (Серия «На 100%»).
ISBN 978-5-49807-826-7
Эта книга адресуется всем, кто хочет научиться быстро и эффективно решать задачи веб-
мастеринга и стать специалистом по созданию веб-порталов профессионального уровня. В книге описы-
ваются все средства, которые входят в арсенал настоящего веб-мастера, — языки HTML, JavaScript, PHP,
AJAX и Perl, дается введение в базы данных MySQL, а также излагаются основные приемы работы с си-
стемами управления содержимым сайта (CMS) Joomla! и Drupal. С помощью этих средств вы сможете
создавать полноценные веб-сайты любого назначения, например интерактивные интернет-магазины или
непрерывно обновляемые новостные порталы. Наконец, рассказывается о проверке работоспособности
созданного веб-сайта, излагаются методы и рекомендации по размещению сайта на платных и бесплатных
хостингах, способы его раскрутки и регистрации в поисковиках и каталогах. Прочитав эту книгу, вы ста-
нете настоящим веб-мастером, готовым к работе над любыми проектами.
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было фор-
ме без письменного разрешения владельцев авторских прав.
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как на-
дежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может
гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возмож-
ные ошибки, связанные с использованием книги.
ISBN 978-5-49807-826-7 © ООО Издательство «Питер», 2010
ООО «Лидер», 194044, Санкт-Петербург, Б. Сампсониевский пр., 29а.
Налоговая льгота — общероссийский классификатор продукции ОК 005-93, том 2; 95 3005 — литература учебная.
Подписано в печать 11.06.10. Формат 70×100/16. Усл. п. л. 45,15. Тираж 3000. Заказ 0000.
Отпечатано по технологии CtP в ОАО «Печатный двор» им. А. М. Горького.
197110, Санкт-Петербург, Чкаловский пр., 15.
Краткое содержание
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Соглашения, .принятые .в .книге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
От .главы .коллектива .авторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
От .издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Глава 1. HTML и CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Глава 2. Работа с JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Глава 3. Apache, Perl и MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Глава 4. Знакомство с основными системами управления
содержимым сайта (CMS) — Joomla! и Drupal . . . . . . . . .315
Глава 5. Создание серверных сценариев на языке PHP 6 . . . . . . .364
Глава 6. Веб-приложения на языке PHP . . . . . . . . . . . . . . . . . . . . . . . . . 397
Глава 7. Технология AJAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427
Глава 8. Проверка работоспособности сайта . . . . . . . . . . . . . . . . . . . . .451
Глава 9. Размещение сайта и выбор хостинга . . . . . . . . . . . . . . . . . . . .469
Глава 10. Раскрутка сайта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Оглавление
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Соглашения, .принятые .в .книге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Шрифты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Нумерованные .и .маркированные .списки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Врезки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Листинги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
От .главы .коллектива .авторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
От .издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Глава 1. HTML и CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Структура .языка .HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Тег . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Атрибут . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Структура .HTML-документа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Тег .<!DOCTYPE> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Тег .<HTML> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Тег .<HEAD> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Тег .<TITLE> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Тег .<META> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Тег .<STYLE> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Тег .<LINK> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Тег .<SCRIPT> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Тег .<BASE> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Тег .<BODY> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Ввод .и .оформление .текста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Заголовки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Абзацы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Обрывы .строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
Списки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Ссылки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Внешние .ссылки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Внутренние .ссылки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Общие .моменты .при .создании .внешних .и .внутренних .ссылок . . . . . . . . . . . . 58
Оглавление
Форматирование .текста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Теги .логического .форматирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Теги .физического .форматирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Теги .форматирования .больших .блоков .текста . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Вложение .тегов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Работа .с .таблицами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Что .такое .таблица . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Создание .тела .таблицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Ячейки .таблицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Границы .таблицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Ширина .и .высота .таблицы .и .ячеек . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Группировка .строк .и .столбцов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Выравнивание .таблицы .и .содержимого .ячеек . . . . . . . . . . . . . . . . . . . . . . . . . 83
Объединение .ячеек .таблицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Установка .фона .или .рисунка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Создание .вложенных .таблиц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Изображения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Встраивание .изображений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Размер .изображения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Выравнивание .изображения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Рамка .вокруг .изображения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Альтернативный .текст . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Формы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Тег .<FORM> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Создание .полей .формы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Общие .принципы .CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Селекторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Псевдоклассы .и .псевдоэлементы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Форматирование .текста .средствами .CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Выделение .текста .цветом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Шрифты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Форматирование .текста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Оформление .документа .CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Фон . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Поля .и .отступы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Границы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Работа .с .блоками . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6 Оглавление
Глава 2. Работа с JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Область .применения .JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Создание .сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Встраивание .сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Ваш .первый .сценарий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Синтаксис .и .основные .средства .языка .JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Работа .с .информацией . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Переменные .и .типы .данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Условия .и .циклы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Встроенные .объекты .JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Объектная .модель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
Веб-браузер .и .HTML-документ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Родительские .и .дочерние .объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Объекты .веб-браузера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Объектная .модель .документа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Работа .с .формами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220
Форма .как .объект . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Свойства, .методы .и .события .формы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Примеры .сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Динамический .HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Управление .текстом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Графика .на .веб-страницах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Слои . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Доступ .к .стилям .с .помощью .JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Пример .создания .динамической .игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Глава 3. Apache, Perl и MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Сервер .Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Для .чего .нужен .Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Установка .Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Основные .настройки .Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Язык .Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Установка .Perl .и .подключение .его .к .Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Основы .языка .и .синтаксис . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Оглавление
Примеры .использования .Perl .для .взаимодействия .с .пользователем . . . . . . 278
Механизм .поиска . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Получение .информации .о .посетителях . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
СУБД .MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Введение .в .СУБД .MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Установка .и .настройка .программы . . .
Инструменты .графического .интерфейса . .Командная .строка . . . . . . . . . . . . . 290
SQL-команды: .синтаксис .команд, .примеры .запросов . .
из .командной .строки, .создание .базы .данных . . . . . . . . . . . . . . . . . . . . . . . . . 298
Работа .с .таблицами: .добавление .и .удаление .записей, . .
выбор .с .условиями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Операторы .языка .SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Настройка .взаимодействия .MySQL .и .Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Установка .проекта .«Денвер» .и .работа .с .ним . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Обращение .к .базе .SQL .из .программы .Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Глава 4. Знакомство с основными системами управления
содержимым сайта (CMS) — Joomla! и Drupal . . . . . . . . . 315
CMS .Joomla! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Установка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Администрирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Русификация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Пользователи .и .группы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Компоненты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Модули . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Шаблоны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Плагины . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
CMS .Drupal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Установка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Возможные .проблемы .при .установке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Администрирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Глава 5. Создание серверных сценариев на языке PHP 6 . . . . . . 364
Создание .и .запуск .первого .сценария .PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Комментарии .внутри .кода .PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Оглавление
Типы .данных .PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Integer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Float . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Константы .в .PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Операторы .PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Операторы .присвоения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Математические .операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Комбинированные .операции .присваивания . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Строковые .операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Операторы .инкремента .и .декремента . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Битовые .операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Операторы .сравнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Логические .операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Приоритеты .операторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Условные .операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Оператор .switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Операторы .циклов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Работа .с .функциями .в .PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Синтаксис .функций .PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Передача .аргументов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Параметры .по .умолчанию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Видимость .переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Глава 6. Веб-приложения на языке PHP . . . . . . . . . . . . . . . . . . . . . . . . . 397
Работа .с .формами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .399
Загрузка .и .обработка .файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Подключение .и .работа .с .базами .данных .MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Подключение .к .серверу .MySQL .и .выбор .базы .данных . . . . . . . . . . . . . . . . . . 410
Работа .с .базой .данных .MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Сеансы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Работа .с .cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
Оглавление
Отправка .почты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Глава 7. Технология AJAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Как .работает .AJAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Знакомство .с .XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Первое .веб-приложение .с .использованием .AJAX . . . . . . . . . . . . . . . . . . . . . . 432
Работа .с .данными .XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Работа .с .MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Глава 8. Проверка работоспособности сайта . . . . . . . . . . . . . . . . . . . 451
Проверка .актуальности .ссылок .на .сайте . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Рабочее .окно .программы .Web .Link .Validator . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Проверка .отдельных .ссылок .и .закладок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Проверка .ссылок .всего .веб-сайта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Оптимизация .кода .веб-страниц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Глава 9. Размещение сайта и выбор хостинга . . . . . . . . . . . . . . . . . . 469
Выбор .хостинга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Обзор .популярных .хостингов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Сервис .«Джино» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Загрузка .данных .на .сайт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Глава 10. Раскрутка сайта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Поисковые .машины . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Каталоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Рейтинги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Баннеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Элементы .привлечения .посетителей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
Гостевые .книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Форумы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Чаты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Почтовые .рассылки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Ссылки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
Введение
Эта книга написана для тех, кто хочет создать собственный сайт в Интернете,
отвечающий всем требованиям к профессиональному веб-порталу. Такой сайт
должен быть красивым, удобным в использовании и навигации, свободным от
всякого рода проблем, мешающих его просмотру. К тому же он должен попадать
в начало списка с результатами поиска с помощью крупнейших поисковиков,
то есть сайт должен быть посещаемым. Использования существующих программ
веб-дизайна может оказаться недостаточно: тонкая настройка содержимого веб-
страниц и их внутренней организации может быть выполнена только путем само-
стоятельного написания кода HTML-страницы и встроенных в них сценариев.
Для этого вам нужно изучить язык гипертекстовой разметки HTML, научиться
создавать сценарии на языках JavaScript и PHP, уметь работать с каскадными
таблицами стилей CSS, а также владеть принципами раскрутки сайтов. Обо всем
этом вы узнаете из книги, которую сейчас держите в руках. С ее помощью вы
научитесь создавать эффективно функционирующие, красиво оформленные,
рейтинговые сайты профессионального уровня.
В главе 1 вы освоите базовые средства языков HTML и CSS, научитесь создавать
документы HTML, оформленные согласно всем требованиям, предъявляемым к ста-
тическим веб-страницам. Особое внимание в этой главе уделяется языку CSS, кото-
рый ныне является основным инструментом оформления содержимого сайтов.
В главе 2 излагается техника построения динамических веб-страниц с помощью
внедрения в код HTML сценариев JavaScript, которые привносят интерактивность
в содержимое сайта, необходимую для его полноценного функционирования.
В главе 3 вы научитесь работать с мощными средствами создания веб-приложе-
ний — с сервером Apache, языком Perl и базами данных MySQL. Вы освоите уста-
новку этих средств на компьютер, запуск сервера Apache, подключение к нему базы
данных MySQL и технику обращения из сценариев Perl к базе MySQL с помощью
Apache и запросов на языке SQL. Таким образом, вы сможете создавать веб-порта-
лы, предоставляющие своим посетителям различные ресурсы по запросам к базе
данных. Эти веб-порталы удобны тем, что позволяют пользователям быстро нахо-
дить необходимую информацию.
В главе 4 описывается работа с «движками» сайтов — специальными программами
по управлению содержимым сайта (системами CMS). Такие системы стали весьма
популярным средством работы с сайтами, содержимое которых требуется непре-
рывно обновлять и редактировать (сайты новостей, интернет-магазины). Вы осво-