- •Яковлев б.С., доцент, канд. Техн. Наук конспект лекций
- •Специальные языки программирования
- •090900 «Информационная безопасность»
- •18.1. Общие сведения 151
- •20.1. Общие сведения 180
- •24.1. Общие сведения 237
- •25.1. Общие сведения 253
- •27.1. Понятие регулярного выражения 278
- •29.1. Общая информация 305
- •1. Основы языка JavaScript
- •1.1. Основные особенности JavaScript
- •2. Операторы языка
- •2.1. Операторы сравнения
- •2.2. Комментарии в языке JavaScript
- •2.3. Пример проверки операции сравнения
- •3. Формы на веб страницах и их обработка
- •3.1. Обработка интернет формы
- •3.2. Применение регулярных выражений при проверке интернет форм
- •4. Функции
- •4.1. Запуск функции при обработке данных на web-странице
- •4.2. Передача данных функции
- •4.3. Вложенные функции. Ихч свойства и применение
- •5. Объекты: строк, чисел и массивов
- •5.1. Строки
- •5.2. Числа
- •5.3. Массивы
- •5.4. Операции, выполняемые над массивами
- •5.5. Ассоциативные массивы
- •6. Объектная модель документа
- •6.1. Технология xml
- •Изображение: Блок-схема документа
- •Создание эффекта изменения изображения
- •6.2. Добавление и удаление элементов при помощи dom технологии
- •6.3. Понятие об элементах и потомках
- •6.4. Обработка текста средствами dom
- •7. Объект документа (document ) и объект окна ( window )
- •7.1. Объект документа (document )
- •7.2. Объект Window
- •7.3. Функции setTimeout и setInterval
- •7.4. Объект Document (window.Document)
- •8. Основы JavaScript
- •8.1. New Object и объектные литералы
- •8.2. Прототипирование
- •8.3. Переменные Private, Public и Static
- •9. Методы наследования, свойства замыкания
- •9.1. Наследование
- •9.2. Замыкание
- •10. Ajax технология
- •10.1. Общие сведения
- •10.2. Создание объекта xmlHttp
- •10.3. Xml, json и текстовые данные
- •10.4. Пример со списком контактов
- •11. Обработка ошибок при отработке сценариев
- •11.1. Синтаксические ошибки
- •11.2. Ошибки времени выполнения
- •11.3. Объект window.Onerror
- •11.4. Обработка ошибок Try/Catch/Finally и Throw
- •11.5. Обработка ошибок в ajax
- •12. Понятие о рекурсии
- •12.1. Основные понятия
- •12.2. Стек
- •Создание собственного стека
- •Применение рекурсии
- •13. Технология ajax
- •13.1. Общие сведения ajax
- •Ajax является технологией браузера
- •Ajax основан на открытых стандартах
- •Технология ajax улучшает приложения Интернет
- •Ajax можно использовать прямо сейчас
- •Ajax использует xml и запросы http
- •Функция showHint()
- •Функция stateChanged()
- •13.2. Браузеры ajax
- •Поддержка ajax браузерами
- •Исходный код приложения ajax
- •Страница html для примера ajax
- •Код JavaScript приложения ajax
- •Серверные страницы ajax для asp и php
- •Серверная страница ajax - asp и php
- •Пример ajax на asp
- •Пример ajax на php
- •Пример php
- •13.3. Пример ajax c базой данных
- •Описание примера:
- •Разбор примера ajax с базой данных
- •Код JavaScript приложения ajax
- •Серверная страница приложения ajax
- •Код JavaScript приложения ajax
- •Серверная страница приложения ajax
- •13.4. Объект ajax xmlHttpRequest
- •Объект xmlHttpRequest
- •Создание объекта xmlHttpRequest
- •Разбор приведенного примера
- •Еще пример?
- •Разбор приведенного примера
- •Методы объекта xmlHttpRequest
- •Свойство readyState объекта xmlHttpRequest
- •Атрибут id заменяет атрибут name
- •Важное замечание о совместимости
- •Атрибут lang
- •Обязательные элементы xhtml
- •Пример xhtml
- •Определения трех типов документов
- •Как использовать xhtml Преобразование сайта на xhtml
- •Добавить определение doctype
- •Замечание о doctype
- •Имена тегов и атрибутов записать в нижнем регистре
- •Все атрибуты заключают в кавычки
- •Проверка (валидация) Web-сайта
- •14.5. Проверка xhtml
- •Проверка xhtml в соответствии с dtd
- •Модуляризация xhtml
- •Зачем нужна модуляризация xhtml?
- •Модули xhtml
- •14.6. Стандартные атрибуты xhtml
- •Базовые атрибуты
- •События клавиатуры
- •События мыши
- •Мы закончили изучение xhtml, что дальше? Заключительные замечания по xhtml
- •Что делать дальше?
- •15. История php
- •15.1. Общая информация о php
- •15.2. Возможности php
- •15.3. Установка и настройка по
- •15.4. Установка php 4.X.X под Windows
- •Заключение
- •16. Основной синтаксис языка php
- •16.1. Основной синтаксис
- •Разделение инструкций
- •16.2. Переменные, константы и операторы
- •Переменные
- •16.3. Константы
- •16.4. Операторы
- •16.5. Типы данных
- •Тип boolean (булев или логический тип)
- •Тип integer (целые)
- •Тип float (числа с плавающей точкой)
- •16.6. Тип array (массив)
- •Определение при помощи array()
- •Определение с помощью синтаксиса квадратных скобок
- •16.7. Тип object (объекты)
- •Тип resource (ресурсы)
- •Решение задачи
- •Заключение
- •17. Условные операторы
- •17.1. Оператор if
- •17.2. Оператор else
- •17.3. Оператор elseif
- •17.4. Альтернативный синтаксис
- •17.5. Оператор switch
- •17.6. Циклы
- •17.7. Операторы передачи управления
- •17.8. Операторы включения
- •18. Основы клиент-серверных технологий
- •18.1. Общие сведения
- •18.2. Протокол http и способы передачи данных на сервер
- •Форма запроса клиента
- •18.3. Использование html-форм для передачи данных на сервер
- •Для метода get
- •Для метода post
- •18.4. Обработка запросов с помощью php
- •Пример обработки запроса с помощью php
- •Заключение
- •19. Функции в php
- •19.1. Общие понятия
- •19.2. Функции, определяемые пользователем
- •19.3. Аргументы функций
- •19.4. Списки аргументов переменной длины
- •19.5. Использование переменных внутри функции Глобальные переменные
- •Статические переменные
- •19.6. Возвращаемые значения
- •Возвращение ссылки
- •19.7. Переменные функции
- •20. Объектная модель
- •20.1. Общие сведения
- •Классы и объекты
- •20.2. Инициализация переменных
- •Объекты
- •20.3. Наследование
- •20.4. Различие между конструкторами php4 и php3
- •20.5. Оператор ::
- •Оператор parent
- •20.6. Объектная модель php5
- •21. Массивы в php
- •21.1. Общие требования
- •Массивы
- •Операции с массивами
- •Функция count
- •21.2. Функция in_array
- •Функция array_search
- •Функция array_keys
- •Функция array_unique
- •21.3. Сортировка массивов
- •Функция sort
- •Функции asort, rsort, arsort
- •21.4. Сортировка массива по ключам
- •21.5. Применение функции ко всем элементам массива
- •21.6. Выделение подмассива Функция array_slice
- •Функция array_chunk
- •Сумма элементов массива
- •Заключение
- •22. Строковые переменные
- •22.1. Общая информация
- •Поиск элемента в строке
- •22.2. Выделение подстроки Функция strstr
- •Функция substr
- •22.3. Замена вхождения подстроки Функция str_replace
- •Функция substr_replace
- •22.4. Разделение и соединение строки
- •22.5. Строки, содержащие html-код
- •Заключение
- •23. Работа с файлами
- •23.1. Создание файла Функция fopen
- •23.2. Закрытие соединения с файлом
- •Запись данных в файл Функция fwrite
- •23.3. Чтение данных из файла
- •Функция fread
- •Функция fgets
- •Функция fgetss
- •Функция readfile
- •Функция file
- •Функция file_get_contents
- •23.4. Проверка существования файла
- •Функция file_exists
- •Функция is_writable
- •Функция is_readable
- •23.5. Удаление файла
- •Загрузка файла на сервер
- •Заключение
- •24. База данных
- •24.1. Общие сведения
- •Базы данных: основные понятия
- •Индексирование
- •24.2. Субд MySql
- •24.3. Язык sql
- •Немного истории
- •Основные операторы языка sql
- •Оператор create table
- •24.4. Оператор drop table
- •Оператор alter table
- •24.5. Оператор select
- •Оператор insert
- •24.6. Оператор update
- •Оператор delete
- •Заключение
- •25. Функции для работы с базой данных MySql
- •25.1. Общие сведения
- •Построение интерфейса для добавления информации
- •Установка соединения
- •25.2. Выбор базы данных
- •Получение списка полей таблицы
- •25.3. Отображение списка полей в html-форму
- •Запись данных в базу данных
- •25.4. Отображение данных, хранящихся в MySql
- •Заключение
- •26. Сессии и их специфика в php
- •26.1. Авторизация доступа
- •26.2. Механизм сессий
- •Настройка сессий
- •26.3. Работа с сессиями Создание сессии
- •Регистрация переменных сессии
- •26.4. Удаление переменных сессии
- •26.5. Безопасность
- •Заключение
- •27. Понятие регулярного выражения
- •27.1. Понятие регулярного выражения
- •Регулярные выражения в php
- •27.2. Синтаксис регулярных выражений
- •27.3. Подвыражения (подшаблоны)
- •Повторения (квантификаторы)
- •Модификаторы pcre
- •27.4. Регулярные выражения углубленно
- •Обратная ссылка
- •Утверждения
- •Условные подвыражения
- •Заключение
- •28. Взаимодействие php с xml
- •28.1. Введение
- •Основные понятия
- •28.2. Структура xml-документа
- •28.3. Взаимодействие php и xml Расширения sax и dom xml
- •Установка расширения dom xml
- •28.4. Взаимодействие php и xml посредством dom xml
- •Перевод данных xml-файла в объекты и классы php
- •28.5. Обход дерева объектов
- •Добавление новых элементов в xml-документ
- •Заключение
- •29. Шаблон в языке программирования
- •29.1. Общая информация
- •Шаблоны подстановки
- •29.2. Шаблоны FastTemplate
- •Методы FastTemplate
- •Метод define
- •Метод assign
- •29.3. Метод parse
- •Метод FastPrint
- •Решение задачи с помощью шаблонов FastTemplate
- •29.4. Шаблоны Smarty
- •Установка
- •29.5. Основной синтаксис
- •Конфигурационные файлы
- •29.6. Методы
- •Метод assign
- •Метод append
- •Функция capture
- •Функция section
- •Функция foreach
- •Оператор if, elseif, else
- •29.8. Решение задачи с помощью шаблонов Smarty
- •Заключение
- •Библиографический список
Методы объекта xmlHttpRequest
Метод open()
Метод open() создает запрос для Web-сервера.
Метод send()
Метод send() посылает запрос серверу.
Метод abort()
Метод abort() отменяет текущий запрос к серверу.
Свойство readyState объекта xmlHttpRequest
Свойство readyState определяет текущее состояние объекта XMLHttpRequest.
В таблице показаны возможные значения свойства readyState:
Состояние |
Описание |
0 |
Запрос не инициализирован |
1 |
Запрос создан |
2 |
Запрос послан |
3 |
Запрос обрабатывается |
4 |
Запрос завершен |
readyState=0 после создания объекта XMLHttpRequest, но до вызова метода open().
readyState=1 после вызова метода open(), но до вызова метода send().
readyState=2 после вызова метода send().
readyState=3 после того, как браузер соединится с сервером, но до завершения сервером ответа.
readyState=4 после завершения запроса и полного получения всех данных ответа с сервера.
Различные браузеры используют свойство состояния готовности по-разному. Не стоит рассчитывать, что все браузеры будут сообщать обо всех состояниях. Некоторые не сообщают о состоянии 0 и 1.
Для приложений AJAX представляет интерес фактически только состояние 4. То есть, когда запрос завершен, и можно использовать полученные данные.
Свойство responseText объекта XMLHttpRequest
Свойство responseText содержит присланный сервером текст.
14. Язык XHTML
14.1. Основы языка XHTML
Язык XHTML является более строгой и четкой версией языка разметки HTML.
В данном руководстве рассмотрены различия между HTML и XHTML, а также показано, как преобразовать Web-сайт на использование XHTML.
Введение в XHTML
Язык XHTML является более строгой и четкой версией языка HTML.
Что необходимо знать
Для понимания изложенного материала необходимо знать язык HTML и основы создания Web-страниц.
Что такое XHTML?
XHTML является сокращением от английского EXtensible HyperText Markup Language, что означает "Расширяемый язык разметки гипертекста".
XHTML предназначен для замены HTML.
XHTML почти совпадает с HTML 4.01.
XHTML является более строгой и четкой версией языка HTML.
XHTML является языком HTML, определенным как приложение XML.
XHTML одобрен в качестве Рекомендации консорциумом W3C.
XHTML рекомендован консорциумом W3C
XHTML 1.0 был одобрен как Рекомендация W3C 26 января 2000 г..
W3C определяет XHTML как последнюю версию HTML. XHTML будет постепенно заменять HTML.
Все новые браузеры поддерживают XHTML
Язык XHTML совместим с HTML 4.01.
Все новые браузеры поддерживают XHTML.
Преобразование Web-сайта на использование XHTML
XHTML является переработкой HTML 4.01 в соответствии с XML, и может сразу использоваться существующими браузерами при соблюдении нескольких простых правил.
Что содержится в данном руководстве
Данное руководство рассматривает:
Почему необходимо использовать XHTML
Синтаксис XHTML
Как преобразовать сайт на XHTML
Проверка XHTML
Модуляризация XHTML
Зачем нужен XHTML?
XHTML является объединением HTML и XML (EXtensible Markup Language – Расширяемого языка разметки).
XHTML состоит из всех элементов HTML 4.01, объединенных с синтаксисом XML.
Зачем нужен XHTML?
В настоящее время многие страницы в Интернет содержат "плохой" код HTML.
Следующий код HTML будет нормально работать при просмотре в браузере, даже хотя он не полностью следует правилам HTML:
<html>
<head>
<title>Это плохой код HTML</title>
<body>
<h1>Плохой код HTML
</body>
XML является языком разметки, в котором каждый элемент должен быть правильно размечен, что приводит к "грамматически-правильным" ("well-formed") документам.
Язык XML предназначен для описания данных, а язык HTML создан для представления данных.
На современном рынке представлены различные технологии браузеров, одни браузеры предназначены для использования Интернет на компьютерах, другие для использования Интернет на мобильных телефонах и c помощью карманных коммуникаторов. Последние устройства имеют недостаточно ресурсов или мощности для интерпретации "плохого" языка разметки.
Объединяя сильные стороны HTML и XML, мы получаем язык разметки, который будет полезен сегодня и в будущем -- XHTML.
Страницы XHTML можно читать с помощью любых устройств, которые поддерживают XML. Пока весь мир не перейдет на использование поддерживающих XML браузеров, XHTML предоставляет возможность сейчас писать "синтаксически-правильные" документы, которые можно использовать во всех браузерах.
14.2. Различия между XHTML и HTML
XHTML можно начать использовать просто строго следуя правилам HTML.
Как переходить к использованию XHTML
XHTML не очень существенно отличается от стандарта HTML 4.01.
Поэтому хорошим началом будет приведение кода к стандарту 4.01.
Кроме того, необходимо писать код HTML символами нижнего регистра, и никогда не пропускать завершающие теги (такие как </p> ).
Вот собственно и все. Удачного кодирования!
Наиболее важные различия
Элементы XHTML должны быть правильно вложены
Элементы XHTML всегда должны быть замкнутыми
Элементы XHTML должны записываться в нижнем регистре
Документы XHTML должны иметь один корневой элемент
Элементы XHTML должны быть правильно вложены
В HTML некоторые элементы могут вкладываться друг в друга некорректно, например как в случае: <b><i>Этот текст жирный и наклонный</b></i>
В XHTML все элементы должны правильно вкладываться друг в друга, например: <b><i>Этот текст жирный и наклонный</i></b>
Примечание: Достаточно часто при создании вложенных списков забывают о том, что внутренний список должен находится между тегами <li> и </li>.
Неправильно:
<ul>
<li>Кофе</li>
<li>Чай</li>
<ul>
<li>Черный чай</li>
<li>Зеленый чай</li>
</ul>
<li>Молоко</li>
</ul>
Правильно:
<ul>
<li>Кофе</li>
<li>Чай
<ul>
<li>Черный чай</li>
<li>Зеленый чай</li>
</ul>
</li>
<li>Молоко</li>
</ul>
Обратите внимание, что в примере "правильного" кода вставлен тег </li> после тега </ul>.
Элементы XHTML всегда должны быть замкнутыми
Непустые элементы должны иметь замыкающий тег.
Неправильно:
<p>Это -- параграф
<p>Это -- еще один параграф
Правильно:
<p>Это -- параграф </p>
<p>Это -- еще один параграф </p>
Пустые элементы должны быть замкнуты
Пустые элементы должны иметь замыкающий тег или начальный тег должен заканчиваться символами />.
Неправильно:
Разрыв строки: <br>
Горизонтальная линия: <hr>
Изображение: <img src="happy.gif" alt="Веселое лицо ">
Правильно:
Разрыв строки: <br />
Горизонтальная линия: <hr />
Изображение: <img src="happy.gif" alt="Веселое лицо " />
Элементы XHTML должны записываться в нижнем регистре
Спецификация XHTML определяет, что имена и атрибуты тегов должны записываться в нижнем регистре.
Неправильно:
<BODY>
<P>Параграф </P>
</BODY>
Правильно:
<body>
<p>Параграф </p>
</body>
Документы XHTML должны иметь один корневой элемент
Все элементы XHTML должны быть вложены в корневой элемент <html>. Все другие элементы могут иметь вложенные элементы (потомков). Вложенные элементы должны быть парными и правильно вкладываться в свой родительский элемент. Общая структура документа имеет следующий вид:
<html>
<head> ... </head>
<body> ... </body>
</html>
14.3. Синтаксис XHTML
При записи документа XHTML требуется использовать четкий синтаксис HTML.
Дополнительные правила синтаксиса XHTML
Имена атрибутов должны записываться в нижнем регистре
Значения атрибутов должны заключаться в кавычки
Минимизация атрибутов запрещена
Атрибут id заменяет атрибут name
DTD XHTML определяет обязательные элементы
Имена атрибутов должны записываться в нижнем регистре
Неправильно:
<table WIDTH="100%">
Правильно:
<table width="100%">
Значения атрибутов должны заключаться в кавычки
Неправильно:
<table width=100%>
Правильно:
<table width="100%">
Минимизация атрибутов запрещена
Неправильно:
<input checked>
<input readonly>
<input disabled>
<option selected>
<frame noresize>
Правильно:
<input checked="checked" />
<input readonly="readonly" />
<input disabled="disabled" />
<option selected="selected" />
<frame noresize="noresize" />
Ниже представлен список минимизированных атрибутов HTML и их запись в XHTML.
HTML |
XHTML |
compact |
compact="compact" |
checked declare |
checked="checked" declare="declare" |
readonly |
readonly="readonly" |
disabled |
disabled="disabled" |
selected |
selected="selected" |
defer |
defer="defer" |
ismap |
ismap="ismap" |
nohref |
nohref="nohref" |
noshade |
noshade="noshade" |
nowrap |
nowrap="nowrap" |
multiple |
multiple="multiple" |
noresize |
noresize="noresize" |
