УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС ДИСЦИПЛИНЫ «Web-технологии»

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «Пермский национальный исследовательский политехнический университет» Лысьвенский филиал Кафедра Естественнонаучных дисциплин УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС ДИСЦИПЛИНЫ «Web-технологии» основной профессиональной образовательной программы подготовки бакалавров по направлению 09.03.01 Информатика и вычислительная техника МЕТОДИЧЕСКИЕ УКАЗАНИЯ по организации лабораторных работ Лысьва 2016 г. Составитель ст. преподаватель каф. ЕН ЛФ ПНИПУ С.А. Зыкин Методические указания рассмотрены и одобрены на заседании кафедры естественнонаучных дисциплин «14» сентября 2016 г, протокол № 02. СОДЕРЖАНИЕ 1 ПЕРЕЧЕНЬ ТЕМ ЛАБОРАТОРНЫХ РАБОТ..................................................................4 2 РЕКОМЕНДАЦИИ ПО ПОДГОТОВКЕ И ПРОВЕДЕНИЮ ЛАБОРАТОРНЫХ РАБОТ.................................................................................................................................................5 Лабораторная работа 1. Создание и отображение XML-документа .................................5 Лабораторная работа 2. Составление схемы XML-документа ........................................17 Лабораторные работы №3, 4, 5 ...........................................................................................33 Лабораторная работа № 6 . Создание проекта «Регистрация» ........................................34 Лабораторная работа 7. Создание проекта «Форум»........................................................40 Лабораторная работа 8. Создание проекта «Чат» .............................................................44 Лабораторная работа 9. Создание проекта «Интернет-магазин»....................................53 1 ПЕРЕЧЕНЬ ТЕМ ЛАБОРАТОРНЫХ РАБОТ Таблица 1.1 – Темы лабораторных работ № п.п. Номер темы дисциплины Наименование темы лабораторного занятия 1. 6 Создание и отображение XML-документа. 2. 6 Составление схемы XML-документа. 3. 9 Работа с объектами. 4. 9 Работа с браузером. 5. 9 Создание динамической Web-страницы. 6. 12 Создание проекта «Регистрация». 7. 12 Создание проекта «Форум». 8. 12 Создание проекта «Чат». 9. 12 Создание проекта «Интернет-магазин». 2 РЕКОМЕНДАЦИИ ПО ПОДГОТОВКЕ И ПРОВЕДЕНИЮ ЛАБОРАТОРНЫХ РАБОТ Лабораторная работа 1. Создание и отображение XML-документа 1) Цель работы – приобрести навыки создания и отображения XMLдокумента 2) Оборудование, приспособления, инструменты 1. Персональный компьютер, MSOffice, Блокнот, IE, Opera, Internet. 3) Краткие теоретические сведения и справочные материалы Описание XML- документа представляет собой простой текст, который можно набрать в любом текстовом редакторе. Создайте в текстовом редакторе Notepad новый файл и введите текст XML-документа, сохранив с расширением .xml Каждый XML- документ размечается тегами. Тег- это текст, заключенный в угловые скобки, который не относится к содержанию документа, а отмечает начало или конец какого-либо документа. Элемент документа XML имеет начальный тег, задающий имя элемента и дополнительную информацию (атрибуты), и конечный тег, содержащий то же имя элемента со знаком "/" впереди. Элементы определяют логическую структуру документа и несут в себе информацию, содержащуюся в документе. Имя элемента считается так же его типом. Элементы XML-документа могут быть вложенными. Пока не задан формат отображения XML-документа на экране, браузер применяет способ, принятый по умолчанию (IE будет использовать встроенную таблицу стилей для отражения документа). Одним из вариантов указания способа отображения документа является создание для него таблицы каскадных стилей (CSS). Правильно оформленными (well-formed) XMLдокументом называется документ, удовлетворяющий минимальному набору правил соответствия для XML-документа. Правильно оформленный XML-документ состоит из двух основных частей: пролога и корневого элемента. Помимо этого он может содержать комментарии, инструкции и пробелы. Корневой элемент может содержать вложенные элементы. Элементы должны быть правильно вложены. Если элемент начинается внутри некоторого другого элемента, то и заканчиваться он должен внутри того же элемента. Каждый элемент состоит из начального тега, содержимого и конечного тега. Исключением является пустой элемент, для которого может использоваться единственный тег пустого элемента . Правила использования имен элементов (типов элемента): имя должно начинаться с буквы или символа подчеркивания (_), следующие после первого символы могут быть буквами, цифры, точкой, тире или подчеркиванием. Не следует использовать имена, начинающиеся с префикса "xml"(в любом сочетании строчных или прописных букв). Имя, записанное в начальном теге, должно в точности соответствовать имени в конечном теге; Соблюдение регистра существенно для имен элементов, как и для всего текста в описании разметки. Содержимым элемента считается текст, расположенный между начальным и конечным тегами. В начальный тег элемента либо в тег пустого элемента можно включить один или несколько описаний атрибутов. Описание атрибута представляет собой пару имя = значение, связанную с данным элементом. Каждое имя атрибута может только один раз присутствовать в начальном теге элемента. Правила именования атрибутов аналогичны правилам именования элементов. Задание атрибутов обеспечивает альтернативный способ включения информации в элемент. Значение, которое можно присваивать атрибуту, представляет собой строку символов (литерал), ограниченных одинарными или двойными кавычками. Комментарий начинается с символов Возможность связывания с несколькими таблицами стилей позволяет вам хранить группы взаимосвязанных правил в отдельных файлах, а затем объединять их при создании документов определенных типов. 4. Приоритет правил каскадных таблиц стилей. В таблицах каскадных стилей можно присваивать значения свойствам на нескольких различных уровнях. Основные уровни, на которых можно присваивать значение свойству - от высшего уровня приоритета к низшему. 1. Значение свойства в атрибуте STYLE для определенного элемента в XML-документе, имеет наивысший приоритет. 2. Если не установлено свойство в атрибуте STYLE, браузер использует значение свойства, объявленного в правиле CSS с контекстуальным селектором. 3. Если не объявлено значение определенного свойства в правиле, имеющем соответствующий контекстуальный селектор, браузер использует значение, объявленное в правиле с родовым селектором (т.е. селектором, который включает только имя элемента). 4. Если не объявлено значение для определенного свойства для элемента в родовом правиле, браузер использует установку свойства, объявленную для ближайшего элемента-предка (родителя, родителя родителя и т.д.). 5. Если таблица стилей не содержит установку свойства для какого-либо родительского элемента, браузер использует свою собственную установку. Такой установкой может быть значение по умолчанию, встроенное в браузер, либо значение, заданное пользователем браузера. Например, если не установлено значение для свойства font-family, браузер использует свое собственное значение этого свойства для отображения всех элементов. [В Internet Explorer 5 это шрифт Times New Roman, если только пользователь браузера не выберет другое семейство шрифтов, воспользовавшись командой Internet Options (Свойства обозревателя) из меню Tools (Сервис)]. 6. Если для определенного свойства установлены конфликтующие значения на одном и том же уровне, В таком случае браузер использует последнюю установку, которую он обработал. Этот процесс имеет место только для наследуемых свойств. Для ненаследуемых свойств браузер использует значение свойства по умолчанию. 5. Свойства CSS, часто используемые в XML - документах 5.1.Установка свойства display Свойство display управляет основным способом отображения текста элемента браузером. Вы можете назначить ему три ключевых слова CSS. Свойство display не наследуется дочерними элементами. Возможные значения свойства: block. Браузер всегда помещает перевод строки перед и после текста элемента (который включает и текст, принадлежащий любым дочерним элементам). В результате текст элемента отображается в отдельном "блоке" с предшествующим текстом выше и последующим текстом ниже. При- своение значения block позволяет форматировать текст с применением различных свойств обрамления к блоку текста, таких как поля, рамки и отступы. Элемент block похож на абзац в программе текстового процессора, который отделен пробелами от предшествующего и последующего текста, и для которого можно задавать отступы, рамки и т.д.; inline (по умолчанию). Браузер не вставляет перевод строки перед или после текста элемента (если только предшествующий текст достиг правой границы окна, и браузер должен перенести текст на следующую строку). Он будет вставлять перенос строки внутри текста элемента только с целью уместить текст в окне. Текст элемента, таким образом, может быть размещен в той же строке, что и предыдущий или последующий текст. Элемент inline аналогичен группе символов внутри абзаца в программе текстового процессора; none. Браузер не отображает элемент. Вы можете использовать эту установку для элементов, несущих информацию, которую вы не хотели бы помещать на экране. 5.2. Установка свойств шрифта В стандартной CSS-таблице предусмотрены следующие свойства, определяющие вид шрифта, используемого для отображения текста элемента: font-family ; font-size ; font-style ; font-weight ; font-variant. Все эти свойства наследуются дочерними элементами. 5.3. Установка свойств фона Стандарт CSS поддерживает следующие свойства, позволяющие вам модифицировать фоновое оформление элемента: background-color; background-image; background-repeat; background-position. Технически дочерние элементы не наследуют свойств фона. Однако по умолчанию фон элемента является прозрачным. Это означает, что если опустить все свойства фона для дочернего элемента, будут видны цвет фона или рисунок родительского элемента (или браузера), т.е. фон дочернего элемента будет таким же, что и фон родительского элемента. 5.4.Установка свойств разбивки текста и выравнивания Стандарт CSS поддерживает следующие свойства, позволяющие модифицировать разбивку, выравнивание и другие характеристики текста: letter-spacing ; vertical-align ; text-align ; text-indent ; line-height ; text-transform ; text-decoration. Дочерние элементы наследуют все эти свойства, за исключением verticalalign. 5.4.Установка свойств текстовых областей Спецификация CSS поддерживает ряд свойств (типа box ), которые можно использовать для форматирования блока текста, принадлежащего элементу. К этим свойствам относятся следующие: свойство margin добавляет невидимое (прозрачное) поле вокруг элемента, снаружи от видимой рамки (если она имеется); свойство border отображает видимую рамку - определенного стиля - вокруг элемента, снаружи от просвета (если он имеется); свойство padding добавляет просвет непосредственно снаружи от содержимого элемента, но внутри рамки (если она имеется); свойства задания размеров height и width устанавливают размеры области содержимого элемента с добавленными просветом и рамкой; свойства задания позиций floatиclearустанавливают положение элемента относительно окружающих элементов. Элемент block - это элемент, для свойства display с установленным значением block, а элемент inline - это элемент, для свойства display с установленным значением inline . В Internet Explorer 5.0 и 5.01 первые три группы свойств ( margin,border и padding ) действуют только на элементы block. Однако, в Internet Explorer 5.5 можно использовать эти свойства как для элементов block, так и для элементов inline. При другой версии Internet Explorer (с 5.0 по 5.5) можно применять свойства позиционирования и для элементов block, и для элементов inline ; однако наиболее эффективно и предсказуемо они работают с элементами block.. 5.5.Установка свойств управления полями По умолчанию ширина полей вокруг элемента равна нулю. Чтобы добавить поле с одной или с нескольких сторон элемента, можно присвоить ненулевое значение одному или нескольким из следующих свойств: margin-top; margin-right; margin-bottom; margin-left. Можно использовать стенографические свойства 5.6.Установка свойств управления обрамлением Для создания видимого обрамления вокруг элемента можно воспользоваться следующими свойствами CSS: border-style; border-width; border-color. 5.6.Установка свойств просвета между обрамлением и текстом Свойство просвет (padding) добавляют пространство непосредственно вокруг содержимого элемента, внутри от имеющейся вокруг элемента рамки. Без просвета границы рамки располагаются непосредственно вблизи текста элемента. Добавление просвета улучшает восприятие рамки. По умолчанию ширина просвета для элемента устанавливается близкой к нулю. Чтобы добавить просвет с одной или с нескольких сторон от текста элемента, можно присвоить ненулевое значение одному или нескольким из следующих свойств: padding-top; padding-right; padding-bottom; padding-left. Можно устанавливать для этих свойств значения в любых размерных единицах, допускаемых в CSS. Как и для содержимого элемента, для просвета отображается любой фон в виде сплошной заливки или рисунков, которые назначены для элемента. (В отличие от области полей, для которых отображается фон родительского элемента. 5.7. Использование псевдоэлементов (только для Internet Explorer) Можно создать правило, которое применяется только к первой букве элемента block с помощью добавления указателя :first-letter к имени элемента в селекторе. Аналогично можно создать правило, которое применимо только к первой строке элементаblock,добавив указатель: first-line к имени элемента в селекторе. Подобные выражения создают так называемый псевдоэлемент - "псевдо" здесь означает, что правило применяется к фрагменту текста, который не является отдельным элементом. 4) Порядок выполнения лабораторной работы 1. Ознакомиться с теоретическим материалом. 2. Выполнить задания. 3. Оформить отчет. 5) Задания для выполнения работы 1. Проработайте ниже предложенный пример создания XML-документа и его отображения с помощью каскадных таблиц стилей. 2. Создайте в текстовом редакторе Notepad новый файл и введите текст XML-документа, сохранив с расширением .xml Данный документ состоит из двух основных частей: пролога и корневого документа (называемого также элементом документа). Элемент документа называется здесь FILE_1, его начальный тег - , а конечный - , а содержимое - 4 вложенных элемента STUDENT. В свою очередь каждый элемент STUDENT содержит ряд вложенных элементов. 3. Откройте документ с помощью браузера Internet Explorer. После проверки синтаксиса, документ отобразится на экране. При наличии ошибок вместо документа на экран будет выдано сообщение о невозможности отобразить страницу. 4. Попробуйте изменить степень детализации представления элементов документа. Щелкните на символе знака минус (-) слева от начального тега, чтобы свернуть элемент, либо на знаке плюс (+) рядом со свернутым элементом, чтобы развернуть его. Например, щелкнув на знаке минус (-) рядом с элементом FILE_1, вы получите то же, что представлено на рисунке: 5. Создайте в файле file_2.css каскадную таблицу стилей: 6. Откройте в текстовом редакторе файл, созданный в первом пункте задания, и второй строкой документа следующую инструкцию по обработке: 7. Создайте XML- документ, представляющий информацию по определенной вариантом предметной области. Созданный документ должен соответствовать следующим требования: 1. документы должны иметь глубину вложенности не менее четырех элементов; 2. число элементов документа, не имеющих вложенных, должно быть не менее пяти; 3. элементы документа должны содержать комментарии о своем содержании; 4. документ должен включать элементы, содержащие символьные данные и дочерний элементы; 8. Создайте таблицу каскадных стилей, которая отформатирует созданный XML-документ. Созданная CSS-таблица должна соответствовать следующим правилам: 1. CSS-таблица должна включать как контекстуальные, так и родовые селекторы; 2. дочерние элементы должны наследовать CSS-формат родительского элемента; 3. созданная CSS-таблица должна импортировать другую таблицу стилей; 4. таблица стилей должна включать использование атрибута STYLE; созданная таблица стилей должна включать: v. свойства шрифта; vi. свойство фона; vii. свойства разбивки и выравнивания текста; viii. свойства текстовых областей; ix. свойства полей и границ; x. псевдоэлементы В отчете представить код xml-документа, код таблиц CSS и скриншот табличного представления документа. Варианты предметных областей создаваемых XML-документов: вариант 1: библиографическое описание списка литературы вариант 2: описание фильмов видеотеки вариант 3: список сотрудников организации вариант 4: список моделей мобильных телефонов вариант 5: список студентов факультета вариант 6: список изучаемых дисциплин 6) Требования по оформлению результатов лабораторной работы Результаты лабораторной работы должны быть оформлены в форме отчета по лабораторной работе в соответствии с требованиями ГОСТ 7.32–2001 «Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления». Страницы не обводятся в рамках, поля не отделяются чертой. Размеры полей не менее: левого – 30 мм, правого – 10 мм, верхнего – 20 мм и нижнего – 20 мм. Нумерация страниц отчета - сквозная: от титульного листа до последнего листа. Номер страницы на титульном листе не проставляют. Номер страницы ставят в центре нижней части листа, точка после номера не ставится. Страницы, занятые таблицами и иллюстрациями, включают в сквозную нумерацию. Объем отчета по лабораторной работе не нормируется. Отчет оформляется машинописным текстом (шрифт 14пт, Times New Roman, через 1 интервал). Отчет должен быть отпечатан на формате А4 и подшит в папку. Описания должны быть сжатыми. Титульный лист является первым листом отчета, после которого помещается содержание, если это альбом отчетов, если каждая работа сдается отдельно, то содержание не нужно. Титульный лист отчета оформляется по установленной единой форме, приводимой в приложении. Цифровой материал необходимо оформлять в виде таблиц. Каждая таблица должна иметь номер и тематическое название. Таблицу следует помещать после первого упоминания о ней в тексте. Лабораторная работа 2. Составление схемы XML-документа 1) Цель работы - В лабораторной работе изучаются схемы XMLдокументов. Схемы XML-документов изучаются сначала на примере шаблонов документов DTD, как самого простого, но ограниченного по своим возможностям варианта задания схемы документа. Затем вводится понятие XML-схемы документа. На примере XML-схем рассматриваются способы задания элементов и атрибутов XML, составления сложных и простых типов данных, введение ограничений на вхождение элементов в документ и способы описания перечисляемых типов данных. 2) Оборудование, приспособления, инструменты 1. Персональный компьютер, MSOffice, Блокнот, IE, Opera, Internet. 3) Краткие теоретические сведения и справочные материалы Схемы XML-документов XML-документы содержат данные. Как было показано в предыдущей работе, структура этих документов, содержащих одни и те же данные, может очень сильно различаться. Различия могут носить как структурный характер, например, хранить данные с использованием атрибутов или дочерних элементов, так и вносить изменения в названия элементов и атрибутов. Очевиден также и тот факт, что при создании программного обеспечения, работающего с XML-документами, структура обрабатываемых им документов должна быть каким-то образом зафиксирована. Для этих целей и предназначены схемы XML-документов. Таким образом, схемы XML позволяют на определенном языке описать структуру и типы данных, хранящихся в XML. По данным, содержащимся в схеме документа, XML-процессор может установить является ли данный документ «правильным», т.е. соответствующим схеме или нет. Это свойство XML-схем лежит в основе веб-сервисов. В своей декларации на языке WSDL веб-сервисы с помощью XML-схем определяют формат принимаемых и отправляемых ими сообщений, что позволяет стандартизовать процесс общения с веб-сервисом и исключить какие-либо непонятные ситуации, когда веб-сервис не знал бы как интерпретировать полученные им XML-документы. Определение шаблона документа DTD Стандарт определения шаблона документа (Document Type Definition, DTD) был разработан для описания модели содержания XML-документов. Он определяет элементы, атрибуты документа и некоторые ограничения на количество вхождений дочерних элементов, обязательность вхождения атрибутов и элементов и содержащиеся в них данные. Рассмотрим пример заказа в интернет-магазине, составленный на языке XML:
Москва Каширское шоссе 31
2006-04-23 12332 Монитор 1 2332 Видеокарта 2
Зададим для этого документа определение, добавив в него ссылку на файл содержащий DTD: ... Декларация DOCTYPE содержит имя корневого элемента и ссылку на файл DTD. Существует также другой способ задания шаблона документа, путем включения самого содержимого шаблона в XML-документ: Соответствующий этому примеру файл «order.dtd» выглядит следующим образом: Как видно из приведенного выше примера определения DTD позволяют задавать для элементов набор дочерних элементов и число их вхождений в родительский элемент. Число вхождений определяется с помощью символов “?” (нулевое или единичное вхождение), “+” (минимум одно вхождение) и “*” (произвольное число вхождений). Если никакой символ не задан, то дочерний элемент должен быть объявлен ровно один раз. Существует также возможность задания условия «или» с помощью символа “|”: Тип данных элемента задается с помощью атрибутов PCDATA и CDATA. PCDATA (Parsed Character DATA) – текст который будет анализироваться и обрабатываться XML-процессором. CDATA задает текст, который не будет обрабатываться при разборе документа. Для атрибутов также существует возможность задания обязательности вхождения с помощью атрибутов REQUIRED (обязательный атрибут) и IMPLIED (необязательный атрибут). Можно также задавать значение атрибута по умолчанию, фиксировать значение атрибута или задавать список возможных значений. В приведенном ниже примере определяется список атрибутов элемента «заказ», состоящий из обязательного идентификатора заказчика и статуса заказа, который может принимать одно из трех значений: Определения DTD просты для понимания и использования. Все дочерние элементы и атрибуты элементов задаются явно в виде списка, что сильно облегчает работу по их составлению. Однако существует несколько ограничений, которые не позволяют использовать определения DTD для проверки правильности документов передаваемых веб-сервисами. Вот некоторые из них: 1. DTD не поддерживает типизацию данных, что является, пожалуй, одним из главных недостатков. 2. DTD не поддерживает пространства имен, что может привести к конфликтам при обработке различных документов. 3. Все определения носят глобальный характер внутри одного документа, поэтому документ не может содержать различных элементов с одним именем. XML-Схемы Для устранения недостатков DTD компанией Microsoft был разработан новый стандарт XML-схем, который был впоследствии предложен на рассмотрение консорциумом W3C и 2 мая 2001 года был принят им в качестве официальной рекомендации. XML-схемы – это основанная на XML технология, которая позволяет: 1. Определять элементы, которые могут появиться в документе. 2. Задавать набор дочерних элементов, определяя порядок их появления и количество вхождений, и атрибуты элемента с их значениями по умолчанию. 3. Тип данных элементов и атрибутов. Так как XML-схемы сами основаны на XML, то они приобретают от него дополнительные возможности: 1. Поддержка пространства имен. 2. Возможность составления и разбора XML-схем с помощью тех же самых средств, что используются работы с XML-документами. 3. Возможность преобразования схем посредством XSLT. Рассмотрим пример составления XML-схемы для заказа в интернет магазине, который приведен ранее: Для добавления ссылки на файл схемы из XML-файла можно использовать следующую конструкцию: ... На первый взгляд, XML-схемы довольно сложны для понимания. Это связано с тем, что они содержат больше информации о документе, чем определения DTD, и с довольно обширными возможностями по составлению самих схем. В XML-схемах могут быть объявлены простые элементы: Сложные элементы: ... содержимое элемента ... Или ссылки на другие элементы: Количество вхождений элементов задается с помощью атрибутов «minOccurs» и «maxOccurs». Значением по умолчанию для этих атрибутов является единица, т.е. каждый элемент по умолчанию появляется ровно один раз. В приведенном примере количество заказанной продукции определяется большим либо равным одной позиции: ... Возможности для описания атрибутов элементов практически идентичные, за исключением того, что атрибут не может являться сложным типом, т.е. содержащим дочерние элементы. Количество вхождений атрибутов может быть задано с помощью атрибута «use», который принимает значения «optional» (необязательно вхождение), «required» (обязательное вхождение) и «prohibited» (запрещенный атрибут). Для атрибутов с необязательным вхождением может быть задано значение по умолчанию, которое этот атрибут примет в случае его отсутствия в документе: Одной из важных особенностей XML-схем является определение типов данных. Для XML-схем изначально задан набор типов данных, которые принадлежат пространству имен XML. Вот список наиболее употребительных из них: · xs:string · xs:decimal · xs:integer · xs:boolean · xs:date · xs:time Кроме того, при составлении XML-схем имеется возможность определения собственных типов данных, которые могут быть как простыми, так и сложными. Новые пользовательские типы данных создаются путем наложения дополнительных ограничений на существующие типы данных. Этим же путем определены и базовые типы данных XML-схем. Таким образом, все типы данных порождаются от одного базового типа, путем введения дополнительных ограничений. Например, пользовательский тип данных «количество товара» определяется как число типа integer, со значением больше либо равным единице: Также существует возможность задать комплексный тип данных. Это удобно в том случае, если структуры такого типа встречаются во многих местах в документе, что существенно упростит его чтение и модификацию: Для задания списка возможных значений, принимаемых типом данных, используется следующий синтаксис: Таким образом, XML-схемы являются мощным и общепризнанным средством для задания схем проверки правильности XML-документов. Дополнительную информацию по XML-схемам можно найти на сайте консорциума W3C по адресу http://www.w3.org/XML/Schema. 4) Порядок выполнения лабораторной работы 1. Ознакомиться с теоретическим материалом 2. Выполнить задание. 3. Оформить отчет 5) Задания или исходные данные 1. Запустить Visual Studio 2005 и открыть созданное на предыдущем занятии решение. 2. Создать виртуальный каталог DTD и добавить в него новый XML-файл с именем отличным от имени файла созданного на предыдущем занятии (т.к. эти файлы лежат в корневом каталоге решения). 3. Скопировать содержимое созданного на предыдущем занятии XMLфайла в новый файл. 4. Создать в каталоге DTD новый текстовый файл, затем изменить его расширение на dtd. 5. В XML-файле сделать ссылку на созданный файл схемы: ... 6. Описать шаблон документа в созданном DTD-файле и добиться прохождения валидации XML в соответствии со схемой. Ошибки валидации видны в виде подчеркивания соответствующего элемента в XML-файле, а также в окне Error List: Рис. 3.1. Ошибки валидации XML-файла. 7. Повторить шаги 2-5 для XML-схемы. Название каталога – XSD, для добавления ссылки на схему документа используется следующая конструкция: ... 8. Используя редакторов XML-схем из состава BizTalk 2006 SDK описать соответствующую схему, контролируя по ходу редактирования схемы прохождение валидации ссылающегося на нее XML-файла: Рис. 3.2. Редактирование схемы в редакторе схем из состава BizTalk 2006 SDK. 9. Для всех элементов содержащих данные необходимо выставить правильный тип данных, максимальное и минимальное количество вхождений в документ в соответствии с семантикой предметной области: Рис. 3.3. Редактирование свойств элемента схемы. 10. Для одного или нескольких элементов использовать задание типа через конструкцию «simpleType» с наложенным на нее дополнительным ограничением «restriction». 11. Предоставить результаты работы преподавателю. 12. Закрыть Visual Studio 2005 и завершить сеанс работы. 6) Содержание отчета и требования по оформлению результатов лабораторной работы В результате лабораторной работы должны быть получены: 1. Решение Visual Studio, имеющее следующую структуру: Рис. 3.4. Структура полученного решения. 2. Файл шаблона документа DTD валидирующий ссылающийся на него XML-файл. 3. Файл XML-схемы валидирующий ссылающийся на него XML-файл. Требования к оформлению отчета Результаты лабораторной работы должны быть оформлены в форме отчета по лабораторной работе в соответствии с требованиями ГОСТ 7.32–2001 «Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления». Страницы не обводятся в рамках, поля не отделяются чертой. Размеры полей не менее: левого – 30 мм, правого – 10 мм, верхнего – 20 мм и нижнего – 20 мм. Нумерация страниц отчета - сквозная: от титульного листа до последнего листа. Номер страницы на титульном листе не проставляют. Номер страницы ставят в центре нижней части листа, точка после номера не ставится. Страницы, занятые таблицами и иллюстрациями, включают в сквозную нумерацию. Объем отчета по лабораторной работе не нормируется. Отчет оформляется машинописным текстом (шрифт 14пт, Times New Roman, через 1 интервал). Отчет должен быть отпечатан на формате А4 и подшит в папку. Описания должны быть сжатыми. Титульный лист является первым листом отчета, после которого помещается содержание, если это альбом отчетов, если каждая работа сдается отдельно, то содержание не нужно. Титульный лист отчета оформляется по установленной единой форме, приводимой в приложении. Цифровой материал необходимо оформлять в виде таблиц. Каждая таблица должна иметь номер и тематическое название. Таблицу следует помещать после первого упоминания о ней в тексте. Вопросы для самоконтроля: 1. Для чего нужны схемы XML-документов? 2. Что позволяют задать шаблоны документов DTD? 3. В чем заключается различие между шаблонами документов DTD и XML-схемами? 4. С помощью каких конструкций в XML-схемах описывается структура документа? 5. Какие типы данных поддерживают XML-схемы, и каким образом можно создать пользовательский тип данных? 6. Какие ограничения можно наложить на элемент в XML-схемах? 7. Для чего может использоваться объявление комплексных типов данных в пределах схемы? Лабораторные работы №3, 4, 5 Для лабораторных работ №3, 4, 5 использовать методические указания к лабораторной работе №2 «Javascript. Добавление динамического поведения. Средства отладки. Создание сложных HTML-страниц.» составитель Самарев Роман Станиславович канд. техн. наук, доцент каф. ИУ-6 «Компьютерные системы и сети» МГТУ им. Н.Э. Баумана Тема лабораторной работы по РП Тема лабораторной работы МГТУ им. Н.Э.Баумана 1 Работа с объектами. Javascript. Добавление динамического поведения. Средства отладки. Создание сложных HTML-страниц 2 Работа с браузером. 3 Создание динамической Webстраницы. Лабораторные работы № 6, 7 , 8, 9 взяты из электронного учебника по дисциплине «Программное обеспечение компьютерных сетей» ГПОУ ТО "Донской колледж информационных технологий". Лабораторная работа № 6 . Создание проекта «Регистрация» 1) Цель работы - Способствовать формированию навыков и умений создания проектов регистрации пользователей. Изучить способы отправки данных на сервер и их обработку с помощью PHP. Рассмотреть механизм получения данных из HTML-форм и их обработки с помощью PHP. 2) Оборудование, приспособления, инструменты 1. Персональный компьютер, MSOffice, Блокнот, IE, Opera, Internet. 3) Краткие теоретические сведения и справочные материалы Особенности метода GET При отправке данных формы с помощью метода GET содержимое формы добавляется к URL после знака вопроса в виде пар имя=значения, объединенных с помощью амперсанта &: action?name1=value1&name2=value2&name3=value3 Здесь action - это URL-адрес программы, которая должна обрабатывать форму (это либо программа, заданная в атрибуте action тега form, либо сама текущая программа, если этот атрибут опущен). Имена name1, name2, name3 соответствуют именам элементов формы, а value1, value2, value3 - значениям этих элементов. Все специальные символы, включая = и &, в именах или значениях этих параметров будут опущены. Поэтому не стоит использовать в названиях или значениях элементов формы эти символы и символы кириллицы в идентификаторах. Для полей ввода текста и пароля (это элементы input с атрибутом type=text и type=password), значением будет то, что введет пользователь. Если пользователь ничего не вводит в такое поле, то в строке запроса будет присутствовать элемент name=, где name соответствует имени этого элемента формы. Для кнопок типа checkbox и radio button значение value определяется атрибутом VALUE в том случае, когда кнопка отмечена. Не отмеченные кнопки при составлении строки запроса игнорируются целиком. Несколько кнопок типа checkbox могут иметь один атрибут NAME (и различные VALUE), если это необходимо. Кнопки типа radio button предназначены для одного из всех предложенных вариантов и поэтому должны иметь одинаковый атрибут NAME и различные атрибуты VALUE. У передачи данных методом GET есть один существенный недостаток - любой может подделать значения параметров. Поэтому не советуем использовать этот метод для доступа к защищенным паролем страницам, для передачи информации, влияющей на безопасность работы программы или сервера. Несмотря на все эти недостатки, использовать метод GET достаточно удобно при отладке скриптов и для передачи параметров, не влияющих на безопасность. Особенности метода POST Содержимое формы кодируется точно так же, как для метода GET (см. выше), но вместо добавления строки к URL содержимое запроса посылается блоком данных как часть операции POST. Если присутствует атрибут ACTION, то значение URL, которое там находится, определяет, куда посылать этот блок данных. Этот метод, как уже отмечалось, рекомендуется для передачи больших по объему блоков данных. Информация, введенная пользователем и отправленная серверу с помощью метода POST, подается на стандартный ввод программе, указанной в атрибуте action, или текущему скрипту, если этот атрибут опущен. Длина посылаемого файла передается в переменной окружения CONTENT_LENGTH, а тип данных - в переменной CONTENT_TYPE. Основное преимущество POST запросов - это их большая безопасность и функциональность по сравнению с GET-запросами. Поэтому метод POST чаще используют для передачи важной информации, а также информации большого объема. Тем не менее не стоит целиком полагаться на безопасность этого механизма, поскольку данные POST запроса также можно подделать, например создав html-файл на своей машине и заполнив его нужными данными. Кроме того, не все клиенты могут применять метод POST, что ограничивает варианты его использования. При отправке данных на сервер любым методом передаются не только сами данные, введенные пользователем, но и ряд переменных, называемых переменными окружения, характеризующих клиента, историю его работы, пути к файлам и т.п. Вот некоторые из переменных окружения: - REMOTE_ADDR - IP-адрес хоста (компьютера), отправляющего запрос; - REMOTE_HOST - имя хоста, с которого отправлен запрос; - HTTP_REFERER - адрес страницы, ссылающейся на текущий скрипт; - REQUEST_METHOD - метод, который был использован при отправке запроса; - QUERY_STRING - информация, находящаяся в URL после знака вопроса; - SCRIPT_NAME - виртуальный путь к программе, которая должна выполняться; - HTTP_USER_AGENT - информация о браузере, который использует клиент Обработка запросов с помощью PHP До сих пор упоминалось, что запросы клиента обрабатываются на сервере с помощью специальной программы. На самом деле эту программу вы можете написать сами на языке PHP, и она будет делать с полученными данными все, что мы захотим. Для того чтобы написать эту программу, необходимо познакомиться с некоторыми правилами и инструментами, предлагаемыми для этих целей PHP. Внутри PHP-скрипта имеется несколько способов получения доступа к данным, переданным клиентом по протоколу HTTP. До версии PHP 4.1.0 доступ к таким данным осуществлялся по именам переданных переменных (напомню, что данные передаются в виде пар «имя переменной, символ «=», значение переменной»). Таким образом, если, например, было передано first_name=Nina, то внутри скрипта появлялась переменная $first_name со значением Nina. Использовать в программе имена переданных переменных напрямую небезопасно. Поэтому было решено, начиная с PHP 4.1.0 задействовать для обращения к переменным, переданным с помощью HTTP-запросов, специальный массив - $_REQUEST. Mассив $_REQUEST содержит данные, переданные методами POST и GET, а также с помощью HTTP cookies. Это суперглобальный ассоциативный массив, т.е. его значения можно получить в любом месте программы, используя в качестве ключа имя соответствующей переменной (элемента формы) 4) Порядок выполнения лабораторной работы 1. Изучить теоретическую часть 2. Выполнить задания в соответствии с указаниями 3. Ответить на контрольные вопросы 4. Предъявить преподавателю результаты работы: проект и исходный код 5. Оформить отчет в соответствии с ходом работы 5) Задания или исходные данные Создать форму для регистрации пользователей на сайте. Реализовать отправку "универсального письма" всем зарегистрировавшимся. Указания 1. Создайте форму для регистрации участников заочной школы программирования, как в приведенном примере: В форме можно указывать метод передачи данных GET или POST. 2. Для того чтобы обработать созданную форму, необходимо в файле php написать: В результате, если в форму мы ввели имя «Вася», фамилию «Петров» и выбрали среди всех курсов курс по PHP, на экране браузера получим такое сообщение: Здравствуйте, Вася Петров! Вы выбрали для изучения курс по PHP 3. Измените начальный вариант формы регистрации таким образом, чтобы каждый регистрирующийся мог выбрать сколько угодно курсов для посещения. Здесь все достаточно просто и понятно. Единственное, что можно отметить, - это способ передачи значений элемента checkbox. Когда мы пишем в имени элемента kurs[], это значит, что первый отмеченный элемент checkbox будет записан в первый элемент массива kurs, второй отмеченный checkbox - во второй элемент массива и т.д. Скрипт, который все это будет разбирать и обрабатывать, называется 1.php (форма должна ссылаться именно на этот файл, что записано в ее атрибуте action:action="http://localhost/1.php"). По умолчанию используется для передачи метод GET, укажем POST. По полученным сведениям от зарегистрировавшегося человека, скрипт генерирует соответствующее сообщение. Если человек выбрал какие-то курсы, то ему выводится сообщение о времени их проведения и о лекторах, которые их читают. Если человек ничего не выбрал, то выводится сообщение о следующем собрании заочной школы программистов. 4. Создайте скрипит и разместите его на сервере: H:\home\localhost\www Протестируйте работу скрипта. 6) Требования по оформлению результатов лабораторной работы Результаты лабораторной работы должны быть оформлены в форме отчета по лабораторной работе в соответствии с требованиями ГОСТ 7.32–2001 «Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления». Страницы не обводятся в рамках, поля не отделяются чертой. Размеры полей не менее: левого – 30 мм, правого – 10 мм, верхнего – 20 мм и нижнего – 20 мм. Нумерация страниц отчета - сквозная: от титульного листа до последнего листа. Номер страницы на титульном листе не проставляют. Номер страницы ставят в центре нижней части листа, точка после номера не ставится. Страницы, занятые таблицами и иллюстрациями, включают в сквозную нумерацию. Объем отчета по лабораторной работе не нормируется. Отчет оформляется машинописным текстом (шрифт 14пт, Times New Roman, через 1 интервал). Отчет должен быть отпечатан на формате А4 и подшит в папку. Описания должны быть сжатыми. Титульный лист является первым листом отчета, после которого помещается содержание, если это альбом отчетов, если каждая работа сдается отдельно, то содержание не нужно. Титульный лист отчета оформляется по установленной единой форме, приводимой в приложении. Цифровой материал необходимо оформлять в виде таблиц. Каждая таблица должна иметь номер и тематическое название. Таблицу следует помещать после первого упоминания о ней в тексте. Вопросы для самоконтроля: 1. Что такое PHP? 2. Как задаются переменные и константы? Для чего они предназначены? 3. Какая функция используется для определения значения констант? 4. Как происходит организация комментариев? Для каких целей они используются в программе? 5. Назовите стандартные константы, определенные в PHP. 6. Формы HTML-документах. 7. Массив $_REQUEST. 8. Особенности метода GET. 9. Особенности метода POST. 10. Переменные окружения . Лабораторная работа 7. Создание проекта «Форум» 1) Цель работы - формирование навыков и умений проектирования Webприложений 2) Оборудование, приспособления, инструменты 1. Персональный компьютер, MSOffice, Блокнот, IE, Opera, Internet. 3) Порядок выполнения лабораторной работы 1. Выполнить задание в соответствии с описанием 2. Ответить на контрольные вопросы 3. Предъявить преподавателю результаты работы: проект и исходный код 4. Оформить отчет в соответствии с ходом работы 4) Задания или исходные данные Для создания гостевой книги понадобятся два файла. В первом (guest.php) необходимо разместить форму для ввода данных и сам скрипт гостевой книги, а во втором будут храниться результаты введенных данных в специальном формате. После закачки на сервер этих двух файлов на файл с результатами (guest.txt) нужно будет установить атрибуты, разрешающие запись в файл. 1. Создайте фору для ввода данных: В этой форме три поля - адрес электронной почты (переменная email), имя посетителя (переменная name) и сообщение (переменная msg). После того как посетитель введет данные и нажмет кнопку «Отправить», все эти переменные будут доступны скрипту, причем значения переменных будут соответствовать введенным данным. Обработка данных 2. Определите имя файла, в котором будут записываться данные, и максимальное количество сообщений, которое может быть выведено на экран: Дальше: Здесь выведенные данные обработаны таким образом, чтобы переменная адреса не была пустой. При этом каждая переменная обрезается, чтобы ограничить количество вводимых символов. 3. Проверьте, не являются ли сообщения или имя пустыми строками: 4. Если сообщение или имя не указаны вообще, скрипт ничего никуда не запишет, а просто продолжит обработку дальше и выведет сообщения гостевой книги на экран. Но если и имя, и сообщение введены, скрипт, прежде чем вывести данные на экран, должен сделать запись отформатированных данных в файл для сообщений: Этот код сначала определяет и форматирует время ввода сообщения. Затем формирует строку для записи в файл. 5. Дальше вывод результатов записи Этим кодом в массив считывается файл сообщений, и при помощи цикла выводится на экран его содержимое. Если количество сообщений превысило ограничение, то они просто не показываются. Новые сообщения всегда отображаются вверху, около формы для ввода, так как вывод идет снизу вверх по индексу массива. 6. Для доступа к архиву сообщений поставьте ссылку: Обратите внимание, что код не учитывает ввод посетителем HTML-тегов. Данный скрипт может использоваться также в любом месте, где нужно узнать мнение посетителей. Также это - простейший форум. 5) Требования по оформлению результатов лабораторной работы Результаты лабораторной работы должны быть оформлены в форме отчета по лабораторной работе в соответствии с требованиями ГОСТ 7.32–2001 «Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления». Страницы не обводятся в рамках, поля не отделяются чертой. Размеры полей не менее: левого – 30 мм, правого – 10 мм, верхнего – 20 мм и нижнего – 20 мм. Нумерация страниц отчета - сквозная: от титульного листа до последнего листа. Номер страницы на титульном листе не проставляют. Номер страницы ставят в центре нижней части листа, точка после номера не ставится. Страницы, занятые таблицами и иллюстрациями, включают в сквозную нумерацию. Объем отчета по лабораторной работе не нормируется. Отчет оформляется машинописным текстом (шрифт 14пт, Times New Roman, через 1 интервал). Отчет должен быть отпечатан на формате А4 и подшит в папку. Описания должны быть сжатыми. Титульный лист является первым листом отчета, после которого помещается содержание, если это альбом отчетов, если каждая работа сдается отдельно, то содержание не нужно. Титульный лист отчета оформляется по установленной единой форме, приводимой в приложении. Цифровой материал необходимо оформлять в виде таблиц. Каждая таблица должна иметь номер и тематическое название. Таблицу следует помещать после первого упоминания о ней в тексте. Вопросы для самоконтроля: 1. Опишите алгоритм создания гостевой книги (форума). 2. Какие функции вы использовали при создании сценария? 3. Какие операторы используются для работы с файлами? 4. Какие управляющие последовательности вы использовали? Лабораторная работа 8. Создание проекта «Чат» 1) Цель работы- Способствовать формированию навыков и умений создания файлов, чтения данных из файла, проверки наличия файла на сервере 2) Оборудование, приспособления, инструменты 1. Персональный компьютер, MSOffice, Блокнот, IE, Opera, Internet. 3) Краткие теоретические сведения и справочные материалы Создание файла Функция fopen Чтобы создать самый обычный файл, нужно воспользоваться функцией, которая открывает локальный или удаленный файл. Называется эта функция fopen(). Она связывает данный файл с потоком управления программы. Синтаксис этой функции такой: fopen ( имя_файла, тип_доступа [, use_include_path]) В результате работы эта функция возвращает указатель (типа ресурс) на открытый ею файл. В качестве параметров этой функции передаются: имя файла, который нужно открыть, тип доступа к файлу (определяется тем, что мы собираемся делать с ним) и, возможно, параметр, определяющий, искать ли указанный файл в include_path. Параметр имя_файла должен быть строкой, содержащей правильное локальное имя файла или URL-адрес файла в сети. Параметр use_include_path, установленный в значение 1 или TRUE, заставляет интерпретатор искать указанный в fopen() файл в include_path. Параметр тип_доступа может принимать одно из следующих значений (см. таб. 1). Итак, чтобы создать файл, нужно, как бы нелепо это ни звучало, открыть несуществующий файл на запись. Пример 1. Использование функции fopen() Закрытие соединения с файлом Для этого используют функцию fclose(). Синтаксис у нее следующий: fclose (указатель на файл) Эта функция возвращает TRUE, если соединение успешно закрыто, и FALSE - в противном случае. Параметр этой функции должен указывать на файл, успешно открытый, например, с помощью функции fopen(). Пример 2. Использование функции fclose() Запись данных в файл Функция fwrite Для того чтобы записать данные в файл, доступ к которому открыт функцией fopen(), можно использовать функцию fwrite(). Синтаксис у нее следующий: fwrite ( указатель на файл, строка [, длина]) Эта функция записывает содержимое строки в файл, на который указывает указатель на файл. Если указан дополнительный аргумент длина, то запись заканчивается после того, как записано количество символов, равное значению этого аргумента, или когда будет достигнут конец строки. В результате своей работы функция fwrite() возвращает число записанных байтов или false, в случае ошибки. Пример 3. Пусть в нашей рабочей директории нет файла my_file.html. Создадим его и запишем в него строку текста: Пример 3. Использование функции fwrite() Чтение данных из файла Чтобы прочитать данные из файла, нужно воспользоваться одной из специальных функций: file, readfile, file_get_contents, fread, fgets и т.п. Функция fread Эта функция осуществляет чтение данных из файла. Ее можно использовать и для чтения данных из бинарных файлов, не опасаясь их повреждения. Синтаксис fread() такой: fread (указатель на файл, длина) При вызове этой функции происходит чтение данных длины (в байтах), определенной параметром длина, из файла, на который указывает указатель на файл. Параметр указатель на файл должен быть реально существующей переменной типа ресурс, содержащей в себе связь с файлом, открытую, например, с помощью функции fopen(). Чтение данных происходит до тех пор, пока не встретится конец файла или пока не будет прочитано указанное параметром длина число байтов. В результате работы функция fread() возвращает строку со считанной из файла информацией. Пример 4. Прочитаем содержимое файла my_file.html Пример 4. Использование функции fread() Функция fgets С помощью функции fgets() можно считать из файла строку текста. Синтаксис этой функции практически такой же, как и у fread(), за исключением того, что длину считываемой строки указывать необязательно: fgets ( указатель на файл [, длина]) Пример 5. Использование функции fgets() Обе функции, fread() и fgets(), прекращают считывание данных из файла, если встречают конец файла. В PHP есть специальная функция, проверяющая, смотрит ли указатель позиции файла на конец файла. Это булева функция feof(), в качестве параметра которой передается указатель на соединение с файлом. Функция fgetss Существует разновидность функции fgets() - функция fgetss(). Она тоже позволяет считывать строку из указанного файла, но при этом удаляет из него все встретившиеся html-теги, за исключением, быть может, некоторых. Синтаксис fgetss() такой: fgetss(указатель на файл, длина [, допустимые теги]) Обратите внимание, что здесь аргумент длина обязательный. Пример 6. Пусть у нас имеется файл my_file.html следующего содержания:

Без труда не вынешь и рыбку из пруда.

Тише едешь - дальше будешь У семи нянек дитя без глазу. Выведем на экран все строки файла my_file.html, удалив из них все теги, кроме и : '); echo $content,"
"; } fclose($h); ?> Пример 6. Использование функции fgetss() Функция fgetc Естественно, если можно считывать информацию из файла построчно, то можно считывать ее и посимвольно. Для этого предназначена функция fgetc(). Легко догадаться, что синтаксис у нее следующий: fgetc ( указатель на файл ) Эта функция возвращает символ из файла, на который ссылается указатель на файл, и значение, вычисляемое как FALSE, если встречен конец строки. Функция readfile Синтаксис: readfile ( имя_файла [, use_include_path]) Функция readfile() считывает файл, имя которого передано ей в качестве пара- метра имя_файла, и выводит его содержимое на экран. Если дополнительный аргумент use_include_path имеет значение TRUE, то поиск файла с заданным именем производится и по директориям, входящим в include_path. Пример 7. Следующий скрипт выведет на экран содержимое файла my_file1.html и размер этого файла, если он существует. В противном случае выведется наше сообщение об ошибке - строка "Error in readfile". Пример 7. Использование функции readfile() С помощью функции readfile() можно читать содержимое удаленных файлов, указывая их URL-адрес в качестве имени файла, если эта опция не отключена в настройках сервера. Функция file Функция file() предназначена для считывания информации из файла в переменную типа массив. Синтаксис у нее такой же, как и у функции readfile(), за исключением того, что в результате работы она возвращает массив: array file ( имя_файла [, use_include_path]) Функция file_get_contents В версиях PHP начиная с 4.3 появилась возможность считывать содержимое файла в строку. Делается это с помощью функции file_get_contents(). Как и две предыдущие функции, в качестве параметров она принимает значение имени файла и, возможно, указание искать его в директориях include_path. Для порядка все равно приведем ее синтаксис: file_get_contents (имя_файла [, use_include_path]) Проверка существования файла Функция file_exists Синтаксис: file_exists (имя файла или директории) Функция file_exist() проверяет, существует ли файл или директория, имя которой передано ей в качестве аргумента. Если директория или файл в файловой системе сервера существует, то функция возвращает TRUE, в противном случае - FALSE. Результат работы этой функции кэшируется. Соответственно очистить кэш можно, как уже отмечалось, с помощью функции clearstatcache(). Для нелокальных файлов использовать функцию file_exists() нельзя. $filename
существует"; } else { print "Файл $filename НЕ существует"; } ?> Пример 8. Использование функции file_exist() Функция is_writable Если кроме проверки существования файла нужно узнать еще, разрешено ли записывать информацию в этот файл, следует использовать функцию is_writable() или ее псевдоним - функцию is_writeable(). Синтаксис: is_writable (имя файла или директории) Функция is_readable Если кроме проверки существования файла нужно узнать еще, разрешено ли читать информацию из него, нужно использовать функцию is_readable(). Синтаксис: is_readable (имя файла) Эта функция работает подобно функции is_writable(). Удаление файла unlink ( имя_файла) Данная функция удаляет файл, имеющий имя имя_файла, возвращает TRUE в случае успеха этой операции и FALSE - в случае ошибки. 4) Порядок выполнения лабораторной работы 1. Изучить теоретическую часть 2. Проработать примеры 3. Выполнить задания в соответствии с указаниями 4. Ответить на контрольные вопросы 5. Предъявить преподавателю результаты работы: проект и исходный код 6. Оформить отчет в соответствии с ходом работы 5) Задания и исходные данные Требуется решить часто возникающую на практике задачу загрузки файла на сервер. Указания 1. Cоздайте html-форму. Для того чтобы с помощью этой формы можно было загружать файлы, она должна содержать атрибут enctype в теге form со значением multipart/form-data, а также элемент input типа file. 2. Добавьте в форме скрытое поле, которое будет содержать в себе максимальный допустимый размер загружаемого файла в байтах. При попытке загрузить файл, размер которого больше указанного в этом поле значения, будет зафик- сирована ошибка. В браузере созданная вами форма должна выглядеть, как строка для ввода текста с дополнительной кнопкой для выбора файла с локального диска. Рис.1. Пример формы для загрузки файла на сервер 3. Напишите скрипт, который будет обрабатывать полученный файл и разместите его на сервере. Вся информация о загруженном на сервер файле содержится в глобальном массиве $_FILES. Если включена директива register_globals, то значения переданных переменных доступны просто по их именам. Вообще говоря, массив $_FILES всегда имеет следующие элементы: - $_FILES['myfile']['name'] - имя, которое имел файл на машине клиента. - $_FILES['myfile']['type'] - mime-тип отправленного файла, если браузер предоставил эту информацию. В нашем примере это text/html. - $_FILES['myfile']['size'] - размер загруженного файла в байтах. - $_FILES['myfile']['tmp_name'] - временное имя файла, под которым он был сохранен на сервере. - $_FILES['myfile']['error'] - код ошибки, появившейся при загрузке. Здесь 'myfile' - это имя элемента формы, с помощью которого была произведена загрузка файла на сервер. То есть оно может быть другим, если элемент формы назвать иначе. Но вот другие ключи (name, type и т. д.) остаются неизменными для любой формы. Ошибок при загрузке в PHP выделяют пять типов и соответственно $_FILES['myfile']['error'] может иметь пять значений: 0 - ошибки не произошло, файл загружен успешно 1 - загружаемый файл превышает размер, установленный директивой upload_max_filesize в файле настроек php.ini 2 - загружаемый файл превышает размер, установленный элементом MAX_FILE_SIZE формы html 3 - файл был загружен частично 4 - файл загружен не был По умолчанию загруженные файлы сохраняются во временной директории сервера, если другая директория не указана с помощью опции upload_tmp_dir в файле настроек php.ini. Переместить загруженный файл в нужную директорию можно с помощью функции move_uploaded_file(). Функция move_uploaded_file() имеет следующий синтаксис: move_uploaded_file (временное_имя_файла, место_назначения ) Эта функция проверяет, действительно ли файл, обозначенный строкой временное_имя_файла, был загружен через механизм загрузки HTTP методом POST. Если это так, то файл перемещается в файл, заданный параметром место_назначения (этот параметр содержит как путь к новой директории для хранения, так и новое имя файла). Протестируйте работу вашего приложения. 6) Требования по оформлению результатов лабораторной работы Результаты лабораторной работы должны быть оформлены в форме отчета по лабораторной работе в соответствии с требованиями ГОСТ 7.32–2001 «Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления». Страницы не обводятся в рамках, поля не отделяются чертой. Размеры полей не менее: левого – 30 мм, правого – 10 мм, верхнего – 20 мм и нижнего – 20 мм. Нумерация страниц отчета - сквозная: от титульного листа до последнего листа. Номер страницы на титульном листе не проставляют. Номер страницы ставят в центре нижней части листа, точка после номера не ставится. Страницы, занятые таблицами и иллюстрациями, включают в сквозную нумерацию. Объем отчета по лабораторной работе не нормируется. Отчет оформляется машинописным текстом (шрифт 14пт, Times New Roman, через 1 интервал). Отчет должен быть отпечатан на формате А4 и подшит в папку. Описания должны быть сжатыми. Титульный лист является первым листом отчета, после которого помещается содержание, если это альбом отчетов, если каждая работа сдается отдельно, то содержание не нужно. Титульный лист отчета оформляется по установленной единой форме, приводимой в приложении. Цифровой материал необходимо оформлять в виде таблиц. Каждая таблица должна иметь номер и тематическое название. Таблицу следует помещать после первого упоминания о ней в тексте. Вопросы для самоконтроля: 1. Создание файла 2. Закрытие соединения с файлом 3. Запись данных в файл 4. Чтение данных из файла 5. Проверка существования файла 6. Удаление файла 7. Функции fgets, fgetss, fgetc, readfile, file, file_get_contents, file_exists, is_writable , is_readable 8. Массив $_FILES 9. Элементы массива $_FILES 10. Пять типов ошибок при загрузке в PHP 11. Функция move_uploaded_file() Лабораторная работа 9. Создание проекта «Интернет-магазин» 1) Цель работы - способствовать формированию навыков использования возможностей PHP для создания Web-приложений. 2) Оборудование, приспособления, инструменты 1. Персональный компьютер, MSOffice, Блокнот, IE, Opera, Internet. 3) Порядок выполнения лабораторной работы 1. Выполнить задание в соответствии с описанием 2. Ответить на контрольные вопросы 3. Предъявить преподавателю результаты работы: проект и исходный код 4. Оформить отчет в соответствии с ходом работы 4) Задание Создать мини-Интернет-магазин. Рис.1. Реально действующий Интернет-магазин, построенный по описанной схеме. Задачи: Что, собственно, должен делать Интернет-магазин? - предоставлять посетителю возможность осмотреть ассортимент товаров; - позволить посетителю как-нибудь отметить нужные товары; - принять у посетителя его контактные данные; - передать владельцу магазина список заказанных товаров и контактные данные посетителя. Кроме того, весьма желательно предоставить посетителю нечто вроде "миникалькулятора", который бы автоматически подсчитывал сумму заказа и отображал бы ее на web-странице - дабы посетитель мог рассчитывать заказ, исходя из своих финансовых возможностей. Проект Из каких же компонентов web-магазин должен быть сделан? Отобразить ассортимент из пары десятков товаров можно на одной webстранице. На ней же можно разместить "калькулятор" и форму ввода контактных данных. Раздел страницы, относящийся к одному товару, должен быть снабжен чем-то, что могло бы позволить посетителю как-нибудь этот товар отметить. Лучше всего использовать выпадающий список: он дает посетителю возможность выбрать количество товара для заказа. На HTML для отображения такого списка необходимо использовать элемент будет доступно сценариям на странице-обработчике в переменной $TOV1 и в элементе массива $HTTP_POST_VARS['TOV1'] (а в PHP версии 4.1 и старше - еще и в элементе массива $_POST['TOV1']. Однако особенностью использования этих массивов в частности является то, что для присоединения значения любого их элемента к какой-либо строковой переменной нельзя просто поместить их внутрь текста строки - нужно использовать оператор сложения строк: точку. Скажем, написать $zak="$zak $HTTP_POST_VARS['TOV1']"; нельзя - надо использовать формат $zak="$zak ",$HTTP_POST_VARS['TOV1']; Отправка письма осуществляется командой mail, как вы помните, имеющей формат mail ("Кому", "Тема", "Текст сообщения", "Дополнительные заголовки"); При выполнении данной команды на сервере формируется электронное письмо в соответствии с указанными параметрами и отправляется с помощью установленной на сервере почтовой программы В качестве параметра "Кому" может выступать набор адресов, разделенных запятыми. "Дополнительные заголовки" могут быть любые из допустимых почтовыми протоколами, разделяться они должны комбинацией символов /n, которая в PHP означает перевод строки. Если среди "Дополнительных заголовков" не указано поле From, то оно заполняется по умолчанию, например, именем "Unprivileged User". Для отправки письма с заказом необходимо приготовить его текст. Можно, конечно, просто включить в письмо значения всех переменных с именами, равными кодам товара (то есть полученные из элементов , а в последующих фигурных скобках - название того товара, к которому этот тэг относился на странице-витрине. В результате в том случае, если посетитель изменил значение какого-либо выпадающего списка на число, отличное от нуля, то в переменную $zak, которая впоследствии станет текстом отправляемого письма, включается название товара, соответствующего этому выпадающему списку, и сведения о количестве его заказанных единиц - та величина, которая в конце концов и оказалась значением этого выпадающего списка. Теперь завершим составление текста письма: и отправим письмо-заявку: В результате выполнения этой команды тот, кто обрабатывает заказы, получит аккуратный список заказанных товаров и сведения о заказчике (см. на рис.5). Причем если посетитель правильно ввел свой e-mail, то для связи с ним после получения письма достаточно нажать кнопку "Ответить" или ей подобную в почтовом клиенте - этот e-mail подставляется в заголовок письма From:. Письмо будет отправлено через почтовую программу, находящуюся на сервере - программы на компьютере посетителя никак не будут затронуты. Сам же файл, в котором размещен код отправки письма, может содержать, скажем, благодарность посетителю за заказ (как на сайте www.harchikov.ru - рис.6) или сведения о том, куда обращаться за информацией об этапе его выполнения. HTML-код страницы просто помещается вслед за окончанием сценария на PHP и выводится в браузер после окончания работы сценария. Рис.6. Заказ сделан - можно уходить и ждать...В приведенном сценарии вместо одноименных элементам формы переменных можно использовать и соответствующие элементы массивов $HTTP_POST_VARS и (в PHP версии старше 4.1) $_POST. Например, строка добавления в текст заказа нового товара будет выглядеть как строка генерации письма - как и команда отправки письма - измененная по тому же принципу. Калькулятор Калькулятор для отображения на странице витрины информации о сумме заказа сделан на Javascript. Его текст приводится ниже. Просто поместите код сценария в тексте web-страницы, набрав его с клавиатуры. В раздел страницы с витриной следует поместить сценарий: В следующей строчке производится задание массива кодов товаров, встречающихся на web-странице и подлежащих учету. В ней должны быть перечислены все встречающиеся на странице коды товаров. Порядок перечисления кодов товаров не важен и не зависит от их порядка следования содержащих их элементов ), и вычисляет сумму этих значений (общее число заказанных товаров) и сумму произведений этих значений на соответствующее каждому коду число из массива prc - списка цен (т.е. считает общую сумму покупки). Полученные значения помещаются в элементы web-страницы с именем mess (текстовое сообщение), stoim (стоимость заказа), kolvo (количество заказанных единиц товара). В каждый тэг с кодом этого товара; - добавить в сценарий-калькулятор новые элементы массивов кодов и цен товаров - можно просто в конец; - добавить в сценарии-обработчике строчку, вставляющую в текст письма название товара согласно его коду. 5) Требования по оформлению результатов лабораторной работы Результаты лабораторной работы должны быть оформлены в форме отчета по лабораторной работе в соответствии с требованиями ГОСТ 7.32–2001 «Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления». Страницы не обводятся в рамках, поля не отделяются чертой. Размеры полей не менее: левого – 30 мм, правого – 10 мм, верхнего – 20 мм и нижнего – 20 мм. Нумерация страниц отчета - сквозная: от титульного листа до последнего листа. Номер страницы на титульном листе не проставляют. Номер страницы ставят в центре нижней части листа, точка после номера не ставится. Страницы, занятые таблицами и иллюстрациями, включают в сквозную нумерацию. Объем отчета по лабораторной работе не нормируется. Отчет оформляется машинописным текстом (шрифт 14пт, Times New Roman, через 1 интервал). Отчет должен быть отпечатан на формате А4 и подшит в папку. Описания должны быть сжатыми. Титульный лист является первым листом отчета, после которого помещается содержание, если это альбом отчетов, если каждая работа сдается отдельно, то содержание не нужно. Титульный лист отчета оформляется по установленной единой форме, приводимой в приложении. Цифровой материал необходимо оформлять в виде таблиц. Каждая таблица должна иметь номер и тематическое название. Таблицу следует помещать после первого упоминания о ней в тексте. Вопросы для самоконтроля: 1. Сколько файлов необходимо создать для простейшего интернетмагазина? 2. Опишите содержимое этих файлов, связь между ними. Приложение А Образец титульного листа Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «Пермский национальный исследовательский политехнический университет» Лысьвенский филиал Направление: 09.03.01 Информатика и вычислительная техника Лабораторная работа По дисциплине «______________________-» На тему: « » Выполнил: студент группы ______________________ И.О.Фамилия ________________________ (Подпись) Руководитель: ________________________ (Подпись) Лысьва 2016 г.

Комментариев нет:

Отправить комментарий

купить Рабочий дюп предметов роблокс

 Ура наконец дошли руки до скрипта дюп предметов в роблокс. Многие игру работают стабильно но с некоторыми проблемы. DUPING] Рабочий дюп пре...