- •Рецензенты:
- •Введение 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-программирование:
- •С примерами и упражнениями
1) Регистрация файлов
В процессе регистрации содержимое файла сохраняется в массиве с ключом, однозначно идентифицирующим этот файл. Метод register_file( ) открывает и читает содержимое файла, имя которого передается в качестве параметра. Код этого метода приведен ниже.
function register_file($file_id, $file_name) {
// Открыть $file_name для чтения или завершить программу с сообщением об ошибке
$fh = fopen($file_name, "r") or exit("Невозможно открыть файл $file_name!");
$file_contents = fread($fh, filesize($file_name)); // Прочитать файл $file_name в переменную
// Присвоить содержимое элементу массивас ключом $file_id.
$this->files[$file_id] = $file_contents;
fclose($fh); // Работа с файлом завершена, закрыть его.
}
Параметр $file_id содержит идентификатор — «псевдоним» для последующих операций с файлом, упрощающий последующие вызовы метода. Идентификатор используется в качестве ключа для индексирования массива $files.
Пример регистрации файла:
include("tempiate.class"); // Включить класс шаблона
$template = new template; // Создать новый экземпляр класса
// Зарегистрировать файл "homepage.HTML", присвоив ему псевдоним "home"
$template->register_file("home", "homepage.HTML");
2) Регистрация переменных
После регистрации файлов необходимо зарегистрировать все переменные, которые будут интерпретироваться особым образом.
Метод register_variables( ) работает по тому же принципу, что и register_file( ) - он читает имена переменных и сохраняет их в массиве $variables:
function register_vanables($file_id, $variable_name) {
// Попытаться создать массив, содержащий переданные имена переменных
$input_variables = explode(".", $variable_name);
while (Iist($value) = each($input_variables)) // Перебрать имена переменных
$this->variables $this->variables[$file_id][] = $value // Присвоить значение элементу массива
}
В параметре $file_id передается ранее присвоенный псевдоним файла. Например, в предыдущем примере файлу homepage.HTML был присвоен псевдоним home. Обратите внимание — при регистрации имен переменных, которые должны особым образом обрабатываться в файле homepage.HTML, вы должны ссылаться на файл по псевдониму! В параметре $variable_name передаются имена одной или нескольких переменных, регистрируемых для указанного псевдонима.
Пример.
// Включить класс шаблона include("tempiate.class");
// Создать новый экземпляр класса $template = new template;
// Зарегистрировать файл "homepage.HTML",
// присвоив ему псевдоним "home" $template->register_file("home", "homepage.HTML");
// Зарегистрировать несколько переменных
$template->register_variablest"home", "page_title.bg_color,user_name");
3) Обработка файла
После того как файлы и переменные будут зарегистрированы в системе шаблонов, можно переходить к обработке зарегистрированных файлов и замене всех ссылок на переменные с соответствующими значениями.
Метод file_parser( ):
function file_parser($file_id) {
// Сколько переменных зарегистрировано для данного файла?
$varcount = count($this->variables[$file_id]);
$keys = array_keys($this->files) // Сколько файлов зарегистрировано?
// Если файл $file_id существует в массиве $this->files
// и с ним связаны зарегистрированные переменные
If ( (in_array($file_id. $keys)) && ($varcount > 0))
{ // Сбросить $x $x = 0 Пока остаются переменные для обработки...
while ($x < sizeof($this->variables[$file_id]))
{ // Получить имя очередной переменной $string = $this->variables[$file_id][$x];
// Получить значение переменной. Обратите внимание:
// для получения значения используется конструкция $$.
// Полученное значение подставляется в файл вместо
// указанного имени переменной.GLOBAL $$string:
// Построить точный текст замены вместе с ограничителями
$needle = $this->opening_escape.$string.$this->closing_escape;
// Выполнить замену.
$this->files[$file_id] = str_replace( $needle.$$string.$this->files[$file_id]); $x++;
}
}
}
Сначала проверяем, присутствует ли указанное имя файла в массиве $this->files. Если файл был зарегистрирован, мы также проверяем, были ли для него зарегистрированы переменные, и если были - значения этих переменных подставляются в содержимое $file_id.
Пример.
// Включить класс шаблона include("template. class") ;
$page_title = "Приветствуем Вас на нашей домашней страничке!";
$bg_color = "white"; $user_name = "Chef Jacques";
$template = new template; // Создать новый экземпляр класса
// Зарегистрировать файл "homepage.HTML", присвоив ему псевдоним "home"
$template->register_file( "home", "homepage.HTML");
// Зарегистрировать несолько переменных
$template->register_variables("home", "page_titie, bg_color, user_name");
$template->file_parser("home");
Поскольку переменные page_title, bg_color и user_name были зарегистрированы, значения каждой переменной (присвоенные в начале сценария) подставляются в страницу homepage.HTML, хранящуюся в массиве files (атрибуте объекта-шаблона). На этом предварительная подготовка завершается, остается лишь вывести полученный шаблон в браузере.
