- •Рецензенты:
- •Введение 7 Глава 1. Создание Web‑страниц, html, vbSript 9
- •Глава 2. Weв-программирование на языке php 96
- •Глава 3. Практикум по разработке сайтов и Web-программированию 155
- •Глава 1. Создание Web‑страниц, html, vbSript
- •1.1. Обзор средств и технологий создания Web‑страниц и Web-приложений
- •1.1.1. Языки описания документов
- •1.1.1.2. Динамический html.
- •1.1.1.3. Язык гипертекстовой разметки xml.
- •1.1.1.5. Язык vrml
- •1.1.1.6. Мультимедйные средства и редакторы
- •1.1.2. Языки и технологии Web-программирования
- •1.1.2.1. Клиентские приложения
- •1.1.2.2. Серверные приложения
- •1.1.2.3. Поддержка состояния
- •1.1.3. Системы управления контентами сайта (cms)
- •1.1.5. Использование поисковых возможностей Интернет
- •1.2. Основы html
- •1.2.1. Правила написания
- •1.2.2. Структура документа
- •1.2.3. Форматирование текста
- •1.2.4. Атрибуты выравнивания текста и управления цветом
- •1.2.5. Шрифты
- •1.2.6. Списки
- •1.2.7. Изображения
- •1.2.8. Таблицы
- •1.2.9. Якорь (элемент привязки документов, их частей, почты)
- •1.2.10. Фреймы
- •1.2.11. Формы, управляющие элементы
- •1.2.12. Использование компонентов ActiveX
- •1.2.13. Дополнительные теги
- •1.2.14. Листы стилей
- •1.3. Клиент и сервер
- •1.4. Создание asp‑файла
- •1.5. Основы создания сценариев
- •1.6. Управление браузером
- •1.6.1. Объект Window
- •1.6.2. Объект Frame
- •1.6.3. Объект Location
- •1.6.4. Объект Navigator
- •1.6.5. Объект History
- •1.6.6. Объект Document
- •1.6.7. Объект Links
- •1.6.8. Объект Anchors
- •1.6.9. Объект Forms
- •1.6.10. Объект Elemеnts
- •1.6.10.1. Кнопки (Button, Reset, Submit)
- •1.6.10.2. Переключатели (CheckBox, Radio)
- •1.6.10.3. Поля ввода (Text, TextArea, Password)
- •1.6.10.4. Списки выбора (Select)
- •1.7. Объекты asp
- •1.8. Работа с текстовыми файлами
- •1.9. Работа с базами данных
- •1.10. Визуальный редактор html‑документов Dreamweaver
- •1.10.1. Палитра основных объектов
- •1.10.2. Настройка Dreamweaver
- •1.10.3. Структура и размещение файлов
- •1.10.4. Создание заготовки html‑документа
- •1.10.5. Создание пустой таблицы
- •1.10.6. Форматирование ячеек таблицы
- •1.10.7. Размещение картинки
- •1.10.8. Создание меню
- •1 .10.9. Форматирование текста
- •1.10.10. Режимы работы объектов
- •1.10.11. Команды
- •1.10.12. Анимация
- •Вопросы для самопроверки и контроля
- •Глава 2. Weв-программирование на языке php
- •2.1. Основные положения
- •2.1.1. Среды разработки
- •2.1.2. Настройка php
- •2.1.3. Правила написания программы
- •2.2. Типы данных и переменные
- •2.2.1. Типы данных
- •2.2.2. Переменные
- •2.3. Выражения, операции и операторы
- •2.3.1. Выражения и операции
- •2.3.2. Операторы
- •2.4. Функции
- •2.5. Массивы
- •2.6. Объектно-ориентированное программирование
- •2.6.1. Объявление класса
- •2.6.2. Основные стандартные функции
- •2.7. Файлы
- •2.7.1. Открытие и закрытие файлов
- •2.7.2. Запись в файл
- •2.7.3. Чтение из файла
- •2.7.4. Запуск внешних программ на сервере
- •2.7.5. Работа с файловой системой
- •2.7.6. Работа с каталогами
- •2.8. Регулярные выражения и строки
- •2.8.1. Регулярные выражения
- •2.8.2. Стандартные интервальные выражения (символьные классы)
- •2.8.3. Функции поиска в стиле posix
- •2.8.4. Строковые функции
- •2.8.5. Преобразование текста в html
- •2.9. Динамическое создание страниц
- •2.9.1. Простые ссылки
- •2.9.2. Файловые компоненты (шаблоны)
- •2.10. Формы
- •2.10.1. Элементы для ввода информации.
- •2.10.2. Элементы форм, ориентированные на ввод с помощью мышки
- •2.10.3. Проблема выравнивания полей для различных браузеров и экранов дисплеев
- •2.11. Базы данных
- •2.11.1. Стандартные функции рнр для работы с MySql
- •2.11.2. Работа с сервером баз данных с различными субд через odbc
- •2.11.3. Другие субд
- •2.12. Шаблоны
- •2.12.1. Основные понятия
- •2.12.2. Схема построения шаблона
- •1) Регистрация файлов
- •2) Регистрация переменных
- •3) Обработка файла
- •4) Вывод файла
- •2.14. Безопасность
- •2.14.1. Проблемы конфигурации
- •2.14.2. Маскировка файлов данных и конфигурационных файлов
- •2.14.3. Хранение файлов за пределами корневого каталога документов
- •2.14.4. Безопасность данных
- •2.14.5. Шифрование данных
- •2.14.6. Аутентификация пользователя
- •2.15. Рекомендации
- •2.15.1. Программирование на php
- •2.15.2. Использование MySql
- •Вопросы для самопроверки и контроля
- •Глава 3. Практикум по разработке сайтов и Web-программированию
- •3.1. Разработка учебного сайта заказов на авиабилеты Приведем пример разработанного учебного сайта (рисунок 3.1.1).
- •3.2. Разработка Web-приложений на php для ведения таблиц в базе данных с субд MySql
- •3.2.1. Таблица единиц измерения
- •3.2.2. Таблица успеваемости студентов
- •3.3. Разработка Web-приложения на php для ведения таблицы единиц измерения в базе данных с субд Access
- •3.4. Разработка Web-приложения на php для поиска и вывода оценок студента из базы данных успеваемости с субд Access
- •3.5. Разработка Web-приложения на php по трудоустройству
- •3.5.1. Постановка задачи
- •3.5.2. База данных
- •3.5.3. Программа формирования и ведения резюме (Vipuskniki.Php).
- •3.5.4. Функция проверки правильности даты (proverkadati.Php)
- •3.5.5. Функция проверки номера года (proverkagoda)
- •3.5.6. Функция проверки натурального числа (proverkahisla)
- •3.5.7. Подпрограмма чтения поля с фотографией (VivodFoto.Php)
- •3.5.8. Программа ввода параметров поиска записей-резюме
- •3.5.9. Программа поиска записей-резюме (ObrabRabotodateli.Php)
- •3.5.10. Программа переноса сообщений работодателей кандидатам (ObrabRabotodateli2.Php)
- •3.6. Задачи для программирования
- •3.6.1. Формирование форм
- •3.6.2. Работа с базой данных
- •3.6.3. Дополнительные задачи
- •3.6.3.1. Циклы
- •3.6.3.2. Массивы
- •3.6.3.3. Функции
- •3.6.3.4. Формы
- •3.6.3.5.Файлы
- •3.6.3.6. Строки
- •3.6.3.7. Графика
- •3.6.3.8. Субд MySql
- •3.7. Контрольные работы
- •3.7.1. Разработка учебного сайта
- •3.7.2. Разработка учебного Web-приложения по ведению базы данных
- •Глава 4. JavaScript Введение
- •События JavaScript
- •Показать и скрыть элемент с текстом
- •Динамическая подгрузка html контента на JavaScript
- •Функция Confirm в JavaScript
- •Таймер на JavaScript
- •Анимация JavaScript
- •Калькулятор стоимости на JavaScript
- •Подсчет количества символов на JavaScript
- •4.1. Основы языка
- •Приложение 1. Ответы на вопросы для самопроверки
- •Приложение 2. Вопросы к экзамену или зачету.
- •Предметный указатель
- •Библиографический список
- •Плещёв Владимир Васильевич Разработка сайтов и Web-программирование:
- •С примерами и упражнениями
2.1.2. Настройка php
Все параметры конфигурации находятся в файле php.ini, который по умолчанию копируется в каталог /usr/local/lib/ в процессе установки.
Общие параметры конфигурации.
short_open_tag [on | off] - определяет возможность использования коротких тегов <?...?> наряду со стандартными тегами.
precision [integer] - задает количество значащих цифр, отображаемых в вещественных числах.
max_execution_time [integer] - определяет максимальную продолжительность выполнения сценариев РНР в секундах.
error_reporting [1-8] - определяет уровень выдачи сообщений об ошибках в РНР. Чем выше значение (1 - обычные ошибки; 2 - обычные предупреждения; 4 - ошибки лексического анализатора; 8 - замечания), тем «чувствительнее» РНР реагирует на ошибки.
display_errors [on | off] - управляет выводом информации об ошибках в браузере.
log_errors - определяет, следует ли регистрировать ошибки в файле. При включении параметра log_errors файл, в котором регистрируются ошибки, назначается при помощи параметра error_log.
error_log [filename] - определяет файл, в котором регистрируются ошибки при включенном параметре log_errors.
Существуют два основных варианта оформления перехода в РНР:
1) стандартные теги: <?php print "Добро пожаловать в мир PHP!": ?>;
2) Короткие теги: <? print " Добро пожаловать в мир PHP!"; ?>
По умолчанию короткие теги не используются, их нужно специально активизировать. Это можно сделать двумя способами: указать ключ - enable-short-tags при компиляции РНР или включить параметр short_open_tag в файл php.ini.
В РНР существуют два формата комментариев:
1) однострочные комментарии начинаются с двойного символа «косая черта» (//) или с символа фунта (#);
2) многострочные комментарии - их начало и конец обозначаются символами /* и */.
2.1.3. Правила написания программы
Основные правила написания программы: в именах переменных и функций большие и малые буквы различаются; в конце каждого оператора (команды) указывается точка с запятой (;); специального символа переноса оператора на другую строчку нет – переность можно с любой позиции в которой можно указать пробел (слова не разрываются при переносе оператора); где можно задать один пробел можно задавать несколько пробелов.
Составной оператор (блок операторов) – это группа простых или составных операторов, заключенная в фигурные скобки ({}). Составные операторы используются в случаях, когда по синтаксису написания команды требуется написание одного оператора, а необходимо написать группу операторов вот тогда эта группа оформляется в виде составного оператора, то есть заключается в фигурные скобки.
Общепринятые соглашения при описании синтаксиса.
Понятия оператора и команды считаются эквивалентными.
При описании синтаксиса оператора, функции или других программных объектов применяются следующие специальные символы, которые не вводятся в программу (если это не оговорено особо), но поясняют правила написания:
[…] – необязательный элемент оператора;
… – повторение предыдущего элемента оператора.
2.2. Типы данных и переменные
2.2.1. Типы данных
В РНР поддерживаются шесть основных типов данных:
1) Целое число не имеет дробной части и представляется последовательностью из одной или нескольких цифр.
Восьмеричные числа начинаются с цифры 0.
Шестнадцатеричные целые числа имеют префикс 0х или 0Х.
2) Вещественное число числа с плавающей точкой отличаются от целых наличием дробной части. Поддерживаются два вещественных формата:
стандартная запись - для представления типичных вещественных чисел — скажем, денежных величин (12.45);
научная запись - для представления очень больших и очень малых чисел (5.9736е24).
3) Строковое значение - последовательность символов. Строки могут ограничиваться парой кавычек (" ") или апострофов (' '). Имена переменных в строках, заключенных в кавычки, заменяются соответствующими значениями, а строки в апострофах интерпретируются буквально, даже если в них присутствуют имена переменных,
Строки могут содержать служебные символы (например, \n - новая строка, \r - возврат курсора, \t - горизонтальная табуляция, \\ - обратная косая черта, \$ - знак доллара, \" – кавычка).
В строках, заключенных в кавычки, распознаются все существующие служебные символы, а в строках, заключенных в апострофы, — только служебные символы «\\» и «\».
Второй вариант синтаксиса ограничения строк, представленный в HTML 4, называется встроенной документацией. В этом варианте синтаксиса строка начинается с символов <<<, за которыми следует некоторый идентификатор, затем строка, присваиваемая переменной. Конструкция заканчивается вторым экземпляром того же идентификатора.
Пример:
$paragraph = <<<DELIM
………
DELIM;
Выбранный идентификатор не должен присутствовать в присваиваемой строке и первый символ завершающего идентификатора (DELIM) должен находиться в первом столбце строки, завершающей конструкцию.
К отдельным символам строки можно обращаться как к элементам массива с последовательной нумерацией ($s[4]).
4) Массив - список однотипных элементов. Существует два типа массивов, различающиеся по способу идентификации элементов - c числовым и ассоциативным индексом, заключенного в кавычки. По размерности массивы делятся на одномерные и многомерные.
При обращении к элементам одномерных индексируемых массивов используется целочисленный или ассоциативный индекс позицию заданного элемента. Обобщенный синтаксис элементов одномерного массива: $имя [индекс1]; Одномерные массивы создаются присвоением значений элементам. При создании массивов также можно воспользоваться функцией array (). Массив $meat из предыдущего примера создается командой
$mstud = array("Иванов", "Петров", "Сидоров"); или для ассоциативного
$mstud = array(1->"Иванов", 2->"Петров", 3->"Сидоров");
Чтобы включить новый элемент в конец массива, можно просто присвоить значение переменной массива без указания индекса.
Многомерные индексируемые массивы работают практически так же, как и их одномерные прототипы, однако элементы в них определяются несколькими индексами вместо одного.
Обобщенный синтаксис элементов многомерного массива:
$имя[индекс1][индекс2]..[индексN];
Пример ссылки на элемент двухмерного индексируемого массива:
$position = $chess_board[5][4];
В многомерных массивах допускается смешанное индексирование (числовое и ассоциативное).
5) Логический тип данных принимает всего два значения: истинное (true) и ложное (false). Вообще говоря, любое не пустое значение переменной интерпретируется как истина, иначе – ложь.
6) - Объект - переменная, экземпляр которой создается по специальному шаблону, называемому классом. В отличие от других типов данных, поддерживаемых в языке РНР, объекты должны объявляться явно. Объявление класса должно предшествовать объявлению объектов, создаваемых на их основе.
Пример объявления класса и последующего создания объектов на его основе:
class appliance {
var power:
function set_power($on_off) { $this->power = $on_off; }
}
...
$blender = new appliance;
Определение класса задает атрибуты и функции, связанные с некоторой структурой данных — в данном примере это структура с именем appliance (устройство). У этой структуры имеется всего один атрибут power (мощность). Для изменения этого атрибута создается метод set_power.
Объекты создаются при помощи ключевого слова new. Например, в приведенном выше фрагменте создается объект $blender класса appliance.
После создания объекта $blender можно задать его мощность при помощи метода set_power: $blender->set_power("on");
