
- •Пособие по курсу «Веб – программирование»
- •Для студентов специальности
- •«Математика и информационные технологии»
- •Минск, бгу,
- •Содержание
- •Глава 1. Компьютерные сети и протоколы
- •Глава 2. Проектирование и разработка сайтов……………………….62
- •Глава 3. Краткий обзор основных технологий разработки Веб приложений…………..………………………………………………..……......90
- •Глава 4. Информационный обмен, html и css.…..……………….132
- •Глава 5. Язык JavaScript………………………………………………..202
- •Глава 6. Язык серверных скриптов php…………...…………286
- •Глава 7. Лабораторные работы……………………..………………….400
- •Введение Коротко об истории Интернет
- •Как работает Интернет?
- •Система адресации
- •Способы подключения к сети
- •Сервисы Интернет
- •Электронная почта
- •Передача файлов по ftp
- •Всемирная паутина www
- •Задания для подготовки рефератов
- •Глава 1. Компьютерные сети и протоколы
- •Локальные сети
- •Распределенные и глобальные сети
- •Сеть vpn
- •Адресация в локальных сетях
- •Адресация в глобальных сетях и в Интернет
- •Адресация в iPv6
- •Доменные имена
- •Url адреса
- •Понятие и краткое описание протоколов
- •Соотношение между tcp/ip и osi/iso
- •Межсетевой протокол iPv4
- •Формат пакета iPv6
- •Формат заголовка пакета iPv6
- •Заголовки расширения iPv6
- •Маршрутный заголовок
- •Транспортный протокол tcp
- •Протокол дейтаграмм udp
- •Протоколы arp и rarp
- •Протоколы сетевого уровня
- •Протоколы электронной почты
- •Протоколы smtp и pop3
- •Протокол imap4
- •Протокол ftp
- •Протокол передачи гипертекстов
- •Клиентский запрос http
- •Ответ сервера
- •Развитие прикладных протоколов: rpc, rest, soap
- •Безопасность в сети
- •Протокол ssl
- •Шифрование данных
- •Установление подлинности участников
- •Реализация ssl
- •Как избежать блокирования сайтов
- •Проблемы с кодировкой и Unicode
- •Задания для подготовки рефератов
- •Адресация в iPv6.
- •Глава 2. Проектирование и разработка сайтов
- •2.1. Виды сайтов
- •2.2. Этапы проектирования и разработки сайта
- •2.3. Модели проектирования и управление проектами
- •2.3.1 Модель водопада для управления проектами
- •2.3.2 Итерационная (спиральная) модель
- •2.3.3 Технология Microsoft Solutions Framework (msf)
- •2.3.4 Другие технологии управления проектами
- •2.4. Программные средства управления проектами
- •2.5.1. Стили сайтов
- •2.6. Логическое проектирование дизайна сайта
- •2.7. Главная страница сайта
- •2.8. Внутренние страницы сайта
- •2.9. Оценки качества Веб-сайтов
- •2.9.1. Оценки качества для e-commerce
- •2.9.2. Ключевые индикаторы для e-commerce
- •2.9.3. Определение качества и рейтинга сайтов учебных заведений
- •2.9.4. Оценка качества и стоимости сайта
- •Глава 3. Краткий обзор основных технологий разработки Веб-приложений
- •3.1. Язык разметки гипертекста xml
- •3.1.1. Синтаксис xml
- •Объявление xml. Первая строка xml-документа называется объявление xml.
- •Конструкции языка xml. Повторим еще раз содержимое xml-документа: набор элементов, секций cdata, директив анализатора, комментариев, спецсимволов, текстовых данных.
- •3.1.2. Правильно построенные и действительные документы xml
- •Отображение xml-документа. Наиболее распространены три способа преобразования xml-документа в отображаемый для пользователя вид:
- •3.3. Язык ActionScript
- •3.3.1. Видео-, аудиопроигрыватели
- •3.5. Технология «клиент-сервер»
- •3.6. Программирование для серверов
- •3.7. Базы данных и язык sql
- •Нормализация модели данных
- •3.8. Язык sql
- •Команды управления транзакциями
- •Извлечение данных, команда select
- •Секция where. Директива where содержит условия отбора (предикат). Синтаксис where выглядит следующим образом:
- •Групповые функции. Если нас интересуют не строки таблицы, а некоторые итоги, мы можем использовать в процессе выборки колонок таблиц групповые функции (табл. 3.5.).
- •Команда insert. Добавление новых записей в таблицу осуществляется посредством команды insert. Она имеет следующий синтаксис:
- •Глава 4. Информационной обмен, нтмl и css
- •4.1. Язык разметки гипертекста html
- •4.2. Ссылки
- •4.3. Списки
- •4.4. Формы html
- •4.4.1. Новые элементы форм html5
- •4.4.2. Валидация формы
- •4.5. Метатеги
- •4.6. Новые возможности html5
- •Поддержка аудио
- •Поддержка видео
- •4.7. Каскадные таблицы стилей css
- •4.7.1. Способы включения каскадных таблиц стилей
- •Заголовок 1 Заголовок 2 Заголовок 3
- •4.7.2. Стили текста
- •4.7.3. Цвет и фон
- •Свойства таблиц
- •4.7.4. Псевдоклассы
- •4.7.5. Псевдоэлементы
- •4.7.6. Форматирование псевдоклассов и псевдоэлементов
- •Различные свойства
- •4.7.7. Представление документа в виде блоков
- •Отступы, поля, позиционирование
- •Границы элементов
- •4.7.8. Новое в css3
- •Глава 5. Язык JavaScript
- •5.1. Включение скриптов JavaScript в html-код
- •5.1.1.Создание простых сценариев
- •5.1.2.Отладка скриптов. Ввод и вывод данных
- •5.2. Описание языка
- •5.2.1. Типы данных
- •Булев тип. Переменные булева типа могут принимать значения: true – истина; false – ложь.
- •Переменные типа Undefined и Null. Тип undefined используется для несуществующих переменных или переменных, значения которых еще не определены. Тип null – пустое значение, например.
- •5.2.2 Операторы и выражения
- •Оператор with присоединяет имя объекта к имени свойства объекта. С помощью оператора with можно обращаться со свойствам объекта в сокращенном виде:
- •Оператор switch позволяет выбрать вариант
- •5.3. Функции
- •5.3.1. Стандартные функции и библиотеки.
- •5.3.2. Функции пользователя
- •5.3.3. Передача параметров по значению и по ссылке
- •5.3.4. Глобальные и локальные переменные
- •5.3.5. Модели событий
- •Ключевое слово this
- •5.4. Объектная модель
- •5.4.1. Пользовательские объекты
- •5.4.2. Объекты и прототипы
- •5.4.3. Исключения: throw/catch/finally
- •5.4.4. Встроенные объекты String, Array, Date, Math Объект String.Экземпляр объекта можно объявить двумя способами:
- •Объект Array
- •Объект Number (Число)
- •Объект Math (Математика)
- •Объект Date (Дата)
- •Объект Function
- •Объект RegExp и регулярные выражения
- •5.5.1. Свойства и методы объекта document
- •5.5.2. Коллекции
- •5.5.3.Свойства элемента innerHtml и outerHtml
- •5.5.4.Навигация по дереву документа
- •5.5.5.Создание новых узлов
- •Удаление и замена узлов в документе
- •5.5.6.Объект window
- •Свойства окна, передаваемые методу open()
- •Методы объекта window
- •5.5.7.Свойства и методы объекта navigator
- •5.5.8.Свойства и методы объекта history
- •5.5.9.Свойства и методы объекта location
- •5.5.11.Каскадные таблицы стилей и объект Style
- •5.6.1 Класс xmlHttpRequest
- •Использование dom
- •Работа с cookie
- •5.8.1.Доступ к элементам dom
- •5.8.2. Манипуляции с dom
- •5.8.3. Использзование css
- •5.8.4. Блочная верстка
- •5.8.5. Обработка событий
- •5.8.6. Работа с ajax
- •5.9. Примеры на JavaScript
- •Глава 6. Язык серверных скриптов php
- •Инструменты для разработки
- •Как php работает
- •6.1. Описание языка
- •Массивы и их инициализация
- •Операции и выражения
- •Битовые операции
- •Операции сравнения
- •Логические операции
- •Строковые операции
- •Операторы управления
- •Функции
- •Рекурсивные функции
- •Область действия и время жизни переменных
- •Изменяемые (динамические) переменные
- •Внешние библиотечные функции
- •Функции для работы с массивами
- •Функции для работы со строками
- •Функции форматных преобразований строк
- •Преобразование строк и файлов к формату html и наоборот
- •Преобразование html в простой текст
- •Установка локальных настроек
- •Регулярные выражения
- •Функции даты и времени
- •Математические функции
- •6.2. Объектно-ориентированное программирование в php Основные понятия объектно-ориентированного программирования
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и журнал error_reporting
- •6.4. Файлы
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •6.5. Php и база данных MySql
- •Выборка данных из бд
- •Выборка данных из таблиц бд
- •Работа с MySql занесение и получение данных из базы данных
- •Организации работы с данными
- •6.6. Передача данных от клиента к серверу и обратно по протоколу http
- •Клиентские методы http
- •6.7. Обработка html-форм
- •Передача переменных из формы в скрипт
- •Передача данных на сервер по методам get и post
- •Ввод данных из различных форм
- •6.8. Работа с e-mail
- •6.9. Cookies-наборы
- •6.10. Сессии (Сеансы)
- •Отмена регистрации сеансовых переменных
- •6.11. Сериализация объектов
- •Сериализация объектов в сессиях
- •6.12. Сетевые соединения и сокеты
- •6.13. Вывод графических данных с помощью рнр
- •Получение информации об изображении
- •Функции рисования прямых и кривых линий
- •Заливка изображений
- •Удаление и изменение цветов палитры
- •Создание прозрачности в изображениях
- •Рисование с помощью кистей
- •Использование шрифтов и вывод строк
- •Слияние изображений с помощью gd
- •Лабораторная работа 3 (4ч). Применение каскадных таблиц стилей css
- •Трехколоночный контейнерный макет сайта:
- •Лабораторная работа 4. Применение каскадных таблиц стилей css
- •Лабораторная работа 5 (4 ч). Динамика и JavaScript на веб-странице
- •Ответьте на следующие вопросы:
- •Лабораторная работа 6 (4 ч).
- •Проверка правильности заполнения формы на сайте.
- •Методы объекта window
- •Задание 2. Функции
- •Задание 4. Работа с базами данных Выполните одно из перечисленных ниже упражнений
- •Задание 5. Создание web-объектов Задания:
- •Лабораторная работа 8(4 ч.) Разработка сайтов на основе cms Joomla! и Drupal
- •Drupal: практические примеры
- •Приложения
- •1. Курсовые работы Курсовая работа 1. Создание клиентских приложений
- •Курсовая работа 2. Сайты клиент-сервер
- •2. Каталог товаров
- •Курсовая работа 3. Технологии разработки Веб-приложений. Проекты сайтов
- •2. Быстрая разработка веб-приложений
- •Начало работы с сайтом
- •Создание контента
- •Установка нового модуля
- •Создание шаблона
- •Включение блока отображение популярных статей
- •Удаление
Преобразование строк и файлов к формату html и наоборот
Функция nl2br(string $str) заменяет все символы новой строки (\n) эквивалентными конструкциями HTML <br>. Функция string htmlentities (string $str ) преобразует символы в эквивалентные конструкции HTML. Функция string htmlspecialchars (string $strike ) преобразует следующие символы: & – в & " " – в " < – в < > – в >. В частности, эта функция позволяет предотвратить ввод пользователями опасных символов в форумах. Следующий пример демонстрирует удаление потенциально опасных символов функцией htmlspeclalchars( ):
<?php //ppr33.php
$text= " Мишка косолапый
По лесу идет ";
print $text;
// Преобразовать символы новой строки "\n" в <br>
$htinl = nl2br($text);
print $htinl;
$input = "The cookbook, entitled Cafe Francaise' costs < $42.25.";
echo "input:", $input;
$conv = htmlentities($input);
// $conv = "The cookbook, entitled 'Cafè
// Fracçiaise' costs < 42.25.";
echo "<br> conv:",$conv;
$strike = "A 'quote' is <b>bold</b>";
echo "<br>strike:", $strike,"<br>";
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($strike),"<br>";
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($strike, ENT_QUOTES);
//Функция htmlspecialchars( ) преобразует следующие символы:
//& преобразуется в & " " в " < преобразуется в < > в >.
// удаление потенциально опасных символов функцией htmlspeclalchars( ):
$input = "I just can't get of PHP & those fabulous cooking recipes!";
echo "<br>input:", $input;
$conv = htmlspecialchars($input);
// $conv_input = "I just can't <<enough>> of PHP & those fabulous cooking recipes!"
echo "<br> conv:",$conv;
?>
Если функция htmlspecialchars( ) используется в сочетании с nl2br( ), то последнюю следует вызывать после htmlspecialchars( ). В противном случае конструкции <br>, сгенерированные при вызове nl2br( ), преобразуются в видимые символы.
Функция string get_html_translation_table (int таблица) обеспечивает удобные средства преобразования текста в эквиваленты HTML. Функция возвращает одну из двух таблиц преобразования, определяемых параметром таблица и используемых в работе стандартных функций htmlspecialchars( ) и htmlentities( ). Параметр «таблица» принимает одно из двух значений: HTML_ENTITIES или HTML_SPECIALCHARS.
В примере функция используется при преобразовании текста в код HTML:
$string = "La pasta e il piatto piu amato in Italia";
$translate = get_html_translation_table(HTML_ENTITIES);
print strtr($string, $translate);
// Специальные символы преобразуются в конструкции HTML
// и правильно отображаются в браузере.
Преобразование html в простой текст
Функция string strip_tags (string строка [, string разрешенные_тeги]), удаляет из строки все теги HTML и РНР. Используется для удаления опасных символов из сообщений на форумах или в гостевых книгах.
Функция get_meta_tags( ) предназначена для поиска в файле HTML тегов МЕТА. Синтаксис функции:
array get_meta_tags (string имя_файла/URL [, int включение_пути])
Применение тегов МЕТА:
<html><head>
<title>PHP Recipes</title>
<meta name = "keywords" content = " PHP, code, recipes, chef, programming, web">
<meta name = "description" content = "PHP Recipes provides savvy readers with the latest in PHP programming and gourmet cuisine!">
<meta name = "author" content = "WJ ">
</head>
Функция get_meta_tags( ) ищет в заголовке документа теги, начинающиеся словом МЕТА, и сохраняет имена тегов и их содержимое в ассоциативном массиве. Ниже продемонстрировано применение этой функции к файлу example.html.
<?php //ppr34.php
$meta_tags = get_meta_tags("example.html");
print_r $meta_tags;
?>
// Переменная $meta_tags содержит массив со следующей информацией:
// $meta_tags["keywords"] = "PHP. food. code, recipes, chef, programming. Web":
// $meta_tags["description"] = "PHP Recipes provides savvy readers with the latest in PHP
//programming and gourmet cuisine"; $meta_tags["author"] = "WJ ";
Преобразование строки к верхнему и нижнему регистру в РНР выполняют функции: strtolower(); strtoupper( ); ucfirst( ); ucwords( ). Функция string strtolower(string $str) преобразует все алфавитные символы строки к нижнему регистру. Преобразование к верхнему регистру выполняется функцией string strtoupper( $str).
Хэш-функции
Рассмотрим использование хэш-функций. Функция md5(string $str) возвращает хэш-код строки $str, основанный на алгоритме "MD5 Message-Digest Algorithm". Хэш-код – это строка, практически уникальная для каждой из строк $str. Вероятность того, что две разные строки, дадут одинаковый хэш-код, близка к нулю. Если длина строки $st может достигать нескольких тысяч символов, то ее MD5-код занимает максимум 32 символа. Хэш-код и алгоритм MD5 используются, например, для проверки паролей на истинность. В файле паролей можно хранить не сами пароли, а их хэш-коды. При попытке пользователя войти в систему вычисляют хэш-код введенного пароля и сравнивают его с записанным в файле.
Пример использования алгоритма хеширования MD5:
<?php //ppr35.php
$pass_a = "MySecret";
$pass_b = "MySecret";
//Выводим хеш-код строки MySecret($pass_a) – исходный пароль
echo "<b>Хеш-код исходного пароля '$pass_a':</b><b style=\"color:green\">".md5($pass_a)."</b><br>";
//Выводим хеш-код строки MySecret($pass_b) – верифицируемый пароль
echo "<b>Хеш-код верифицируемого пароля '$pass_b':</b><b style=\"color:green\">".md5($pass_b)."</b><br>";
// Сравниваем хеш-коды MD5 исходного и верифицируемого пароля
echo "<h3>Проверяем истинность введенного пароля:</h3>";
if(md5($pass_a)===md5($pass_b))
echo "<h3 style=\"color:green\">Пароль верный! (Хеш-коды совпадают)</h3>";
else echo "<h3 style=\"color:red\">Пароль неверный! (Хеш-коды не совпадают)</h3>"
// выводит: Пароль верный! (Хеш-коды совпадают)
// Попробуйте изменить значение строки $pass_b :
?>
Функция crc32($st) вычисляет 32-битную контрольную сумму строки $st и возвращает 32-битное целое число. Эта функция работает быстрее md5(), но выдает менее надежные хэш-коды.