- •Минск, бгу,
- •Глава 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. Программирование для серверов
- •Язык Java на клиентской и серверной странице
- •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.3. Формы html
- •4.2.2. Новые элементы форм html5
- •Поддержка видео
- •4.2.3. Новые возможности html5
- •Поддержка аудио
- •4.3. Каскадные таблицы стилей css
- •4.3.1. Способы включения каскадных таблиц стилей
- •Заголовок 1 Заголовок 2 Заголовок 3
- •4.4. Цвет и фон
- •Свойства таблиц
- •4.5. Псевдоклассы
- •Псевдоэлементы
- •4.5.1. Форматирование псевдоклассов и псевдоэлементов
- •Различные свойства
- •Отступы, поля, позиционирование
- •Границы элементов
- •Новое в css3
- •Глава 5. Язык JavaScript
- •5.1. Включение скриптов JavaScript в html-код
- •Создание простых сценариев
- •Комментарии.
- •Отладка скриптов. Ввод и вывод данных
- •5.2. Описание языка
- •5.2.1. Типы данных
- •Преобразование типа
- •5.2.2 Операторы и выражения
- •Оператор присваивания
- •Арифметические операторы
- •Операторы сравнения
- •Оператор with
- •Оператор switch
- •5.3. Функции
- •5.3.1. Стандартные функции.
- •Eval() : позволяет выполнить строку, содержащую выражение, как javascript-код. Это полезно когда код формируется в ходе выполнения скрипта. Пример реализации простейшего калькулятора приведен ниже:
- •5.3.2. Функции пользователя
- •5.3.3. Передача параметров по значению и по ссылке
- •5.3.4. Глобальные и локальные переменные
- •5.3.5. Модель событий
- •Ключевое слово this
- •5.3.6. Модель событий JavaScript 1.2 и объект Event.
- •5.4. Объектная модель
- •5.4.1. Пользовательские объекты
- •5.4.2. Прототипы
- •5.4.3. Исключения: throw/catch/finally
- •5.4.4. Встроенные объекты String, Array, Date, Math Объект String. Экземпляр объекта можно объявить двумя способами:
- •Объект Array
- •Объект Date (Дата)
- •Методы объекта Date
- •5.5.1. Коллекции
- •Свойства элемента innerHtml и outerHtml
- •Навигация по дереву документа
- •Создание новых узлов
- •Удаление и замена узлов в документе
- •Объект window
- •Свойства окна, передаваемые методу open()
- •Методы объекта window
- •Свойства и методы объекта navigator
- •Свойства и методы объекта history
- •Свойства и методы объекта location
- •Объект layer
- •Каскадные таблицы стилей и объект style
- •Модель ajax:
- •5.6.1 Класс xmlHttpRequest
- •Использование dom
- •Работа с cookie
- •5.7.2. Манипуляции с dom
- •5.5.3. Блочная верстка
- •5.7.3. Обработка событий
- •5.7.3. Обработка событий
- •5.8. Примеры на JavaScript
- •Глава 6. Язык серверных скриптов php
- •Инструменты для разработки
- •Как php работает
- •Описание языка Типы данных
- •Массивы и инициализация массивов
- •Операции и выражения
- •Операции сравнения
- •Логические операции
- •Строковые операции
- •Операторы управления
- •Функции
- •Рекурсивные функции
- •Область действия и время жизни переменных
- •Изменяемые (динамические) переменные
- •Внешние библиотечные функции
- •Функции для работы с массивами
- •Функции для работы со строками.
- •Функции форматных преобразований строк
- •Преобразование строк и файлов к формату html и наоборот
- •Преобразование html в простой текст
- •Установка локальных настроек
- •Регулярные выражения
- •Функции даты и времени
- •Математические функции
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и журнал error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из бд
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Организации работы с данными
- •Передача данных от клиента к серверу и обратно. Протокол http
- •Клиентские методы http
- •Обработка html-форм
- •Передача переменных из формы в скрипт.
- •Передача данных на сервер по методам get и post
- •Ввод данных из различных форм
- •Работа с e-mail
- •Cookies-наборы
- •Сессии (Сеансы)
- •Отмена регистрации сеансовых переменных
- •Сериализация объектов
- •Вывод графических данных с помощью рнр
- •Получение информации об изображении
- •Функции рисования прямых и кривых линий
- •Заливка изображений
- •Удаление и изменение цветов палитры
- •Создание прозрачности в изображениях
- •Рисование с помощью кистей
- •Использование шрифтов и вывод строк
- •Слияние изображений с помощью gd
- •Глава 7. Лабораторные работы Лабораторная работа 1 (4 часа). Инструменты и средства создания простых сайтов
- •Лабораторная работа 3 (4часа). Применение каскадных таблиц стилей css
- •Трехколоночный контейнерный макет сайта
- •Лабораторная работа 4. Применение каскадных таблиц стилей css
- •1. Свойства шрифтов.
- •2. Свойства текста.
- •3. Свойства цвета и фона.
- •4. Свойства рамки.
- •5. Свойства списков.
- •6. Свойства изображений.
- •Лабораторная работа 5 (4 часа). Динамика и JavaScript на Веб – странице.
- •Ответить на следующие вопросы
- •Лабораторная работа 6 по JavaScript (4 часа).
- •1.Проверка правильности заполнения формы на сайте
- •Методы объекта window
- •Задание 2. Функции
- •Задание 4. Работа с базами данных Выполнить одно из перечисленных ниже упражнений
- •Задание 5. Создание web-объектов Список заданий
- •Drupal: практические примеры
- •Приложение 1. Курсовые работы Курсовая работа 1. Создание клиентских приложений
- •Курсовая работа №2. Сайты клиент-сервер
- •Каталог товаров
- •Система вопрос/ответ
- •Курсовая работа №3. Технологии разработки Веб – приложений
- •Приложение 2. Быстрая разработка Веб-приложений
- •Начало работы с сайтом
- •Создание контента
- •Установка нового модуля
- •Создание шаблона
- •Включение блока отображение популярных статей
- •Удаление
Сессии (Сеансы)
Сессии TCP состоят из трех этапов: установки соединения, передачи данных, завершения соединения. Говорят, что сеансы используют концепцию, аналогичную с парковкой автомобилей, поскольку сеансу назначается идентификатор сеанса ("квитанция"), который затем присутствует в каждом запросе. При старте сессии назначается идентификатор SID - номер вроде ”db17e8ab5892a486f60f208487152348". Идентификатор сессии сохраняется в cookies клиента PHPSESSID, кроме этого на сервере создается временный файл для хранения переменных сессии /php5/tmp/sess_ db17e8ab5892a486f60f208487152348. Информацию о сессиях можно хранить и в базе данных.
Если требуется, чтобы внутренние страницы сайта "запоминали" имя пользователя и пароль, которые он вводит на главной странице, эта информация должна сохраняется в переменных сеанса в указанном временном файле на сервере. Переменные сессий хранятся в глобальном массиве PHP $_SESSION. Пример:
<?
// файл 1.php
session_start();
$_SESSION['asd']='aaaaaa';
$_SESSION['name']['qwe']='тест';
?>
<a href="2.php">тест</a>
<?
// файл 2.php
session_start();
print $_SESSION['asd'];
print $_SESSION['name']['qwe'];
?>
В первом файле в сессии будут помещаться переменные, а во втором эти переменные будут получаться из сессии. Для начала работы с сессиями, надо запустить их командой session_start();. После этого появляется доступ к глобальному массиву $_SESSION. Если номер сессии нельзя передать в cookie браузера (куки отключены), то SID будет передаваться в ссылках URL, к которым будет добавляться. Например test.ru/index.php?PHPSESSID=db17e8ab5892a486f60f208487152348.
В РНР существует несколько способов создания сеанса. Первый метод заключается в прямом указании РНР начать сеанс, используя функцию session_start(). Эта функция не принимает параметров и не возвращает значения. Когда эта функция вызывается, все переменные, ассоциированные с данным сеансом, реконструируются или создаются заново. Второй подход заключается в вызове функции sessionreadonly(), вместо session_start () . При этом все сеансовые переменные создаются заново, любые изменения переменных по окончании выполнения сценария не сохраняются.
Система PHP имеет для поддержки сеансов суперглобальный массив $_SESSION[], который содержит зарегистрированные в данный момент переменные сеанса.
Сеансы существуют, пока не выполняется одно из событий: закрывается окно браузера; завершается заданное на сервере максимальное время сеанса; используется функция PHP session_destroy().Эта функция не принимает параметры и уничтожает любые cookie-наборы и данные, ассоциируемые с активным сеансом.
Отмена регистрации сеансовых переменных
Сеансовые переменные можно удалить, уничтожив весь сеанс. Для удаления отдельных переменных можно использовать оператор unset(), удаляющий элемент из суперглобального массива $_SESSION, или функцию session_unregister(name). В PHP имеется также функция header("Location: http://www.domain.com"),
которая используется для перенаправления браузера на страницу, определенную параметром Location во время существующих сеансов.
Для доступа к конфиденциальному сайту переменная сеанса может создаваться только после успешного ввода пользователем своего имени и пароля. В этом случае переменная сеанса содержит значение, которое передается со страницы на страницу, указывая, что пользователь имеет право доступа к ресурсам, связанным с сайтом. Когда пользователь выходит из сессии, переменная сеанса должна возвращаться в исходное состояние. Это выполняется с помощью функции session_destroy(). Пример
<?php // login.php
if ($_POST['submit'] == "Login")
{
// сценарий проверки имени пользователя и пароля должен //кодироваться здесь если аутентификация прошла успешно
session_start();
$_SESSION['access'] = "yes";
header(Location:access.php);
}
if ($_POST['submit'] == "Log Out")
{
//если пользователь решает выйти
session_destroy();
}
?>
<?php // access.php
// если пользователь обращается к этой странице,
// проверьте, что он был аутентифицирован в login.php
if ($_SESSION['access'] != "yes")
{
header(Location:login.php);
}
?>
На странице Login.php создается сеанс, чтобы гарантировать, что пользователь был аутентифицирован. После ввода имени и пароля, выполняется щелчок на кнопке "Login". Сценарий PHP проверяет, будут ли пароль и имя пользователя допустимы. Затем переменной сеанса присваивается значение "yes" и доступ предоставляется. Пользователь перенаправляется на страницу access.php. Сценарий на access.php проверяет, существует ли сеанс. Если сеанс не существует, применяется функция header(), чтобы перенаправить пользователя назад на страницу login.php.
Страница login.php содержит второй сценарий, который используется для уничтожения переменной сеанса, вызывая функцию session_destroy() щелчком на кнопке "Log Out".
Приложения Web, которые используют данные сеанса, могут быть доступны одновременно множеству пользователей. Так как id является уникальным для каждого пользователя его можно применять для идентификации пользователей, не создавая при этом индивидуальных имен пользователей и паролей. Значение сеанса id хранится в подкаталоге PHP /sessiondata и может быть извлечено с помощью функции session_id(). В РНР сеансы работают с переменными внутри глобальной области. Это означает, что для регистрации переменной в функции, зта переменная должна быть объявлена как глобальная с помощью оператора global.
При работе с сеансами часто необходимо определить, были ли зарегистрированы сеансовые переменные. Это можно сделать с помощью оператора isset, позволяющего проверить существование соответствующего ключа в массиве $_SESSION.
Поскольку иногда формат, предлагаемый $ID, может быть неприемлемым при передаче информации о сеансе через HTML-форму, в РНР предусмотрены функции session_name() и session_id(), которые возвращают, соответственно, имя сеанса и его идентификатор. Независимо от используемого метода, идентификатор сеанса должен использоваться каждый раз, когда URL ссылается на внутренний ресурс. Например, при использовании гиперссылки прекрасно работает константа $ID:
<А HREF="checkout.php?<?php echo $ID; ?> ">Перейти к окончательному расчету</А>
С другой стороны, при работе с HTML-формами, идентификатор сеанса передается с помощью скрытых элементов формы<FORM ACTION="order.php" METHOD=GET>
<INPUT TYPE="hidden" NAME="<?php echo session_name(); ?>"
VALUE="<?php echo session_id(); ?>">
<!— Остальной HTML-код формы //—> </FORM>
При передаче идентификатора сеанса важно понимать, что это нужно делать, только если URL относится к локальному Web-серверу. Для предотвращения негативных последствий, связанных с безопасностью, идентификатор сеанса никогда не следует передавать во внешних URL.
