takya.ru страница 1страница 2
скачать файл
Министерство образования

Российской Федерации
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
____

WEB - ПРОГРАММИРОВАНИЕ

Методические указания к лабораторным работам

для студентов III курса АВТФ

направления230100.62

«Информатика и вычислительная техника»

дневной формы обучения

НОВОСИБИРСК

2014

Составитель: А.В. Гунько, канд. техн. наук, доц.

Рецензент Ю.В. Новицкая, ст. преп. каф. ВТ
Работа подготовлена на кафедре автоматики


© Новосибирский государственный технический университет, 2014 г.


ЛАБОРАТОРНАЯ РАБОТА № 1


MySQL. Проектирование и реализация базы данных.

  1. Цель работы

Изучить команды монитора MySQL, освоить операции создания таблиц, выборки, вставки, изменения и удаления данных.

  1. Краткие теоретические сведения

Технология реляционных баз данных предполагает структурирование данных в таблицах, приведенных к нормальной форме. При этом связь между таблицами осуществляется с помощью ключевых полей. Структура таблиц с указанием типов данных в столбцах совместно со связями между таблицами образует структуру базы данных.

Сервер MySQLрасположен на компьютере с адресом 217.71.139.72 под управлением ОС Linux, учетное имя для подключения: userNM, где N – порядковый номер группы (задает преподаватель), M- Ваш номер по журналу, пароль сообщается преподавателем.

Для создания баз данных и таблиц в них, для настройки прав доступа к данным и манипулирования ими в СУБД MySQL применяется программа-монитор mysql. Запустив ее из командной строки, вы подключаетесь к СУБД с именем текущего пользователя операционной системы, если он имеет право на подключение. Для выбора базы данных применяется команда usedbname, где dbname - имя базы данных. Можно указать базу данных, имя пользователя и пароль при вызове монитора:

Mysql dbname -h hostname -u username -p password

Собственно пароль в командной строке лучше не вводить, а оставить ключ -p, тогда пароль будет запрошен дополнительно. Для выхода из монитора применяется команда exit или quit.

Базы данных пользователей и права доступа к ним создаются администратором. Студентам доступна лишь одна (userNM) база, операции создания и удаления таблиц, извлечения, вставки, добавления, удаления записей и изменения структуры таблиц.

Для создания таблиц базы данных применяют командуcreate table tablename (columns), где в скобках перечисляются названия, типы данных и другие атрибуты полей, например:

create table books (id int unsigned not null auto_increment primary key, author char(30), title char(60), price float(5,2));

Для устранения ошибок при вводе длинных команд рекомендуется записывать их в текстовые файлы, запускаемые из командной строки:

mysql dbname -h hostname -u user -p < create.sql

Для просмотра списка созданных таблиц применяют команду show tables, а для просмотра структуры таблицы - команду describe tablename.

Для ввода, извлечения, изменения и удаления данных из таблиц применяют операторы структурированного языка запросов SQL: insert, select, update и delete. Для отбора данных по условию, уточнения изменяемых и удаляемых записей применяется конструкция where, для группирования - groupby, для упорядочивания - orderby. Для удаления таблиц служит команда drop table tablename.

Монитор mysql помнит в буфере ранее введенные команды. Для их вызова используйте стрелку вверх.

По окончании работы с базой данных выгрузите ее структуру и данные в текстовый файл и сохраните его. Он пригодится для восстановления испорченной или уничтоженной базы данных. Для сохранения в текстовых файлах структуры и содержимого базы данных применяют (по выходу из монитора mysql командой exit) утилиту mysqldump:



mysqldump -u user -p dbname >file.type



  1. Методические указания

    1. Для подключения к серверу MySQL применяйте терминальные программы, поддерживающие протокол ssh, различные кодовые страницы и функциональные клавиши, например, telneat или putty.

    2. Базы данных пользователей и права доступа к ним создаются администратором. Вам требуется лишь попросить его задать пароль для доступа к своей базе данных.

    3. При работе с монитором mysql заканчивайте команды точкой с запятой.

    4. Длинные команды (создания таблиц, ввода данных в таблицу) лучше вводить в текстовый файл, передаваемый монитору через командную строку.

    5. Монитор mysql помнит в буфере ранее введенные команды. Для их вызова используйте стрелку вверх.

    6. Для просмотра содержимого таблиц в кодировке, отличающейся от кодировки сервера MySQL, удобно использовать утилиту netadmin.exe.

    7. Как правило, пользователи не имеют прав доступа к базе данных mysql. Для проверки назначенных Вами прав доступа к Вашей базе данных обратитесь к администратору (преподавателю).

    8. По окончании работы с базой данных выгрузите ее структуру и данные в текстовый файл и сохраните его. Он пригодится для восстановления испорченной или уничтоженной базы данных.

  2. Порядок выполнения работы

    1. Спроектировать структуру базы данных согласно варианту, обеспечить третью нормальную форму.

    2. Используя выданные преподавателем учетные записи (userNM) и пароли, подключиться по протоколу ssh к серверу 217.71.139.72.

    3. Подключиться к MySQL-серверу, создать и заполнить таблицы, отладить и записать запросы на добавление, извлечение, изменение и удаление записей.

    4. Выгрузить в текстовые файлы структуру и содержимое базы данных с помощью утилиты mysqldump, сохранить на локальной машине и распечатать эти файлы.

  3. Варианты заданий

Вариант 1. Спроектировать структуру базы данных о студентах для их распределения по местам практики: фамилия, год рождения, пол, группа, факультет, средний балл, место работы, город.

Вариант 2. Спроектировать структуру базы данных об автомобилях: номер, год выпуска, марка, цвет, состояние, фамилия владельца, адрес.

Вариант 3. Спроектировать структуру базы данных о квартирах, предназначенных для продажи: район, этаж, площадь, количество комнат, сведения о владельце, цена.

Вариант 4. Спроектировать структуру базы данных о книгах, купленных библиотекой: название, автор, год издания, адрес автора, адрес издательства, цена, книготорговая фирма.

Вариант 5. Спроектировать структуру базы данных о сотрудниках, имеющих компьютер: фамилия, номер комнаты, название отдела, данные о компьютерах.

Вариант 6. Спроектировать структуру базы данных о заказах, полученных сотрудниками фирмы: фамилия, сумма заказа, наименование товара, название фирмы-клиента, фамилия заказчика.

Вариант 7. Спроектировать структуру базы данных об оценках, полученных студентами на экзаменах: фамилия, группа, предмет, номер билета, оценка, преподаватель.

Вариант 8. Спроектировать структуру базы данных о преподавателях кафедры: фамилия, должность, степень, номер комнаты, читаемые курсы.

Вариант 9. Спроектировать структуру базы данных об авторах web-сайта и их статьях: имя, адрес, учетная запись, пароль, тема, заголовок, текст статьи, иллюстрации.

Вариант 10. Спроектировать структуру базы данных о списке рассылки и подписчиках: тема и содержание письма, дата отправки, имена и адреса подписчиков, их учетные записи и пароли.

Вариант 11. Спроектировать структуру базы данных технологических карт: деталь, вид обработки, длительность.

Вариант 12. Спроектировать структуру базы данных о документах, переданных исполнителям: исполнитель, документ, дата передачи, дата возврата.

Вариант 13. Спроектировать структуру базы данных об угнанных автомобилях: номер, марка, состояние (угнан/найден), фамилия владельца.

Вариант 14. Спроектировать структуру базы данных объявлений о квартирах: вид объявления (сдам/продам/сниму/куплю), адрес, количество комнат, дата, цена.

Вариант 15. Спроектировать структуру базы данных о книгах, выданных в библиотеке: название, читатель, дата выдачи, дата возврата.

Вариант 16. Спроектировать структуру базы данных о договорах: название фирмы–клиента, вид договора, срок действия.

Вариант 17. Спроектировать структуру базы данных о выдаче материальных ценностей сотрудникам: фамилия, номер комнаты, изделие, дата выдачи.

Вариант 18. Спроектировать структуру базы данных о галерее изображений: автор, имя файла, дата размещения.

Вариант 19. Спроектировать структуру базы данных о турпутевках: страна, курорт, стоимость, дата выезда.

Вариант 20. Спроектировать структуру базы данных о маршрутах транспорта: вид транспорта, номер, маршрут (начальная и конечная остановки), время в пути.


  1. Содержание отчета

    1. Цель работы.

    2. Вариант задания.

    3. Структура базы данных в графическом виде.

    4. Протокол команд создания таблиц, ввода, отбора, изменения и удаления данных, задания прав доступа.

    5. Структура и содержимое базы данных.

    6. Выводы по работе.

  2. Контрольные вопросы

    1. Варианты подключения к базе данных с помощью монитора MySQL.

    2. Таблицы системы привилегий MySQL.

    3. Последовательность контроля доступа к данным в MySQL.

    4. Задание прав доступа к данным в MySQL.

    5. Архитектура языка SQL.

    6. Создание и удаление баз данных и таблиц.

    7. Типы данных в MySQL.

    8. Индексы, их назначение и создание.

    9. Последовательности и автоинкрементирование в MySQL.

    10. Добавление данных в таблицу.

    11. Изменение и удаление данных.

    12. Запросы на извлечение данных.

    13. Объединения данных.

    14. Группирование и упорядочивание данных.

    15. Параметры утилиты mysqldump.

ЛАБОРАТОРНАЯ РАБОТА № 2


PHP. Работа с файлами теневых посылок (cookies) и текстовыми файлами.

  1. Цель работы

Изучить методы получения данных из форм, методы чтения и записи теневых посылок и текстовых файлов.

  1. Краткие теоретические сведения

Сценарии работы с теневой посылкой(cookie) предполагают получение данных формы, проверку наличия файла cookie, его считывание и запись новых данных, отображение предыдущего содержимого теневой посылки.

Для передачи данных Web-серверу используется отправка формы. В форме содержатся текстовые поля, переключатели, списки и т.п. Клиент размещает введенные данные в этих полях и пересылает пакет серверу. Процессом передачи формы управляют два атрибута тега

: METHOD и ACTION. Первый атрибут - METHOD - определяет, каким именно запросом данные пересылаются серверу. Атрибут может иметь два значения: POST и GET. POST диктует программе просмотра, что данные нужно поместить внутрь запроса, а GET пересылает данные как составную часть URL целевой страницы. Второй атрибут - ACTION - задает целевой файл сценария для обработки отправленных данных. Следующий код посылает данные формы сценарию DATA.PHP методом POST:









Элемент формы с типом SUBMIT - это кнопка, нажатие которой пользователем заставляет программу просмотра упаковать данные формы и отправить их. Данные имеют вид пар Поле=Значение, отсылаемых серверу в формате открытого текста. На сервере эти данные можно вновь разобрать по полям и использовать в любых целях. Для разбора полученных от клиента данных, в зависимости от метода их отправки, в PHP используются глобальные ассоциативные массивы $HTTP_POST_VARS[] и $HTTP_GET_VARS[], ключами которых являются имена полей форм. Допустима сокращенная форма записи этих массивов: $_POST и $_GET соответственно. Например, следующие три строки кода вернут значение поля Name:

$a=$HTTP_POST_VARS["Name"];

$a=$_POST["Name"];

$a=$Name;

Часто в теневых посылках сохраняется текущая дата, она определяется так:$date=date("d.m.Y");

Форматы даты/времени многочисленны и здесь не приводятся.

Зная имя теневой посылки и имена хранящихся в ней переменных, можно проверить наличие значения переменной (value) в указанной теневой посылке (visit):

if (isset($_COOKIE["visit"])) $value =$visit;

Здесь приведена сокращенная форма обращения к глобальному ассоциативному массиву $HTTP_COOKIE_VARS[]. Новое значение переменной и срок действия теневой посылки устанавливается так:

setcookie("visit",$_POST[value],time()+365*24*60*60);

header("location:index.php");

Здесь не используются два дополнительных параметра теневой посылки, ограничивающих домены и пути к сценариям, которые имеют право чтения теневой посылки, а также параметр, требующий ее передачи по защищенному (протокол https) каналу связи.

Запись теневой посылки всегда производится до начала отображения результатов работы сценария, поэтому применяется перенаправление на файл сценария.

Пример работы сценария см. здесь: http://gun.cs.nstu.ru/web/labs/lab2/lab2_1/.

При работе с текстовыми файлами, как правило, применяется построчная запись и чтение, поэтому заранее формируется строка с разделителями – символами табуляции:

$str = $date."\t".$_POST["name"]."\t".$_POST["textarea"]."\t". join($checkboxes,",")."\t".$_POST["list"]."\n";

Файл может открываться на добавление ("a") (на запись: "w", на чтение: "r"), при отсутствии - создается:

@ $fp = fopen("1c3.txt", "a");

Символ @ в начале строки служит для подавления вывода в браузер сообщения об ошибке открытия файла (если он не может быть открыт или создан).

Файл открывается в текущем или указанном перед именем файла каталоге, на который сценариям даны соответствующие разрешения.

После открытия файла требуется заблокировать его от записи другими сценариями:

flock($fp, 2);

if (!$fp)

{

echo "Ваша анкета не может быть обработана сейчас!";



exit;

}

Существуют блокировки чтения (1), записи (2) и режим снятия блокировки (по окончании работы с файлом - 3):



flock($fp, 3);

В файл, открытый на запись и добавление, можно только записывать, в данном случае целесообразно писать построчно:

fwrite($fp, $str);

По окончании работы с файлом или при необходимости изменить режим работы с ним его необходимо закрыть:

fclose($fp);

При чтении файла необходимо отслеживать его окончание:

while(!feof($fp)){ . . . }

при этом чтение происходит построчно:

$a = fgets($fp, 100);

Другие функции чтения и записи приведены в справочнике по языку.



Пример работы сценария см. здесь: http://gun.cs.nstu.ru/web/labs/lab2/lab2_2/

  1. Методические указания

    1. Для разработки сценариев применяйте любые доступные текстовые редакторы, например, Jview или Notepad++.

    2. Сценарии располагаются на сервере с адресом 217.71.139.72, подключение к которому производится по протоколу FTP с именем учетной записи userNM, где N – порядковый номер группы, M- номер студента по журналу, пароль сообщается преподавателем.

    3. При настройке клиента FTP необходимо установить пассивный режим.

    4. При разработке страниц периодически сохраняйте их и проверяйте их отображение в любом из доступных браузеров.

    5. По окончании лабораторной работы сохраните документы сайта на сменный носитель.

  2. Порядок выполнения работы

    1. Разработать Web-страницу с формой, содержащей указанные в вариантах заданий элементы управления.

    2. Разработать сценарий, проверяющий наличие теневой посылки на компьютере посетителя, при ее наличии выводящий данные из теневой посылки в браузер и отображающий ссылку на страницу с формой, и сценарий, считывающий данные формы и сохраняющий их и текущую дату в теневой посылке.

    3. Разработать сценарий, считывающий данные формы и сохраняющий их и текущую дату в текстовом файле с последующим отображением всех записей из файла в браузере.

    4. Продемонстрировать работу сценариев преподавателю.

    5. Сохранить файлы сценария на локальный компьютер.

  3. Варианты заданий

    1. Для теневых посылок:

Вариант 1. Текстовое поле для ввода имени пользователя и кнопка отправки данных.

Вариант 2. Список для выбора языка отображения страницы и кнопка отправки данных.

Вариант 3. Текстовое поле для ввода даты рождения пользователя и кнопка отправки данных.

Вариант 4. Список для выбора кодировки страницы и кнопка отправки данных.

Вариант 5. Набор радиокнопок для выбора прав доступа (пользователь, модератор, администратор) и кнопка отправки данных.

Вариант 6. Набор флажков для выбора допустимых режимов работы (чтение, запись, изменение, удаление) и кнопка отправки данных.

Вариант 7. Набор радиокнопок для выбора кодировки страницы и кнопка отправки данных.

Вариант 8. Набор флажков для выбора управляемых компонентов сайта (текст, графические данные, стили оформления) и кнопка отправки данных.

Вариант 9. Текстовое поле типа password для ввода пароля пользователя и кнопка отправки данных.

Вариант 10. Список для выбора текста уведомления и кнопка отправки данных.

Вариант 11. Набор радиокнопок для выбора шрифта текста и кнопка отправки данных.

Вариант 12. Набор флажков для выбора стиля текста (размер, жирность, курсив, цвет) и кнопка отправки данных.

Вариант 13. Текстовое поле для ввода e-mail пользователя и кнопка отправки данных.

Вариант 14. Список для выбора интервала уведомления и кнопка отправки данных.

Вариант 15. Набор радиокнопок для выбора времени отправки уведомления и кнопка отправки данных.

Вариант 16. Набор флажков для выбора способа уведомления (звонок, SMS, e-mail) и кнопка отправки данных.

Вариант 17. Текстовое поле для ввода приветствия пользователя и кнопка отправки данных.

Вариант 18. Список для выбора места размещения приветствия и кнопка отправки данных.

Вариант 19. Набор радиокнопок для выбора места размещения приветствия и кнопка отправки данных.

Вариант 20. Набор флажков для выбора степени детализации сообщений об ошибках (замечание, предупреждение, ошибка, фатальная ошибка) и кнопка отправки данных.

    1. Для текстовых файлов:

Вариант 1. Текстовое поле для ввода имени пользователя, текстовое поле для ввода даты рождения пользователя и кнопка отправки данных.

Вариант 2. Список для выбора темы обсуждения, поле TEXTAREAдля ввода сообщения и кнопка отправки данных.

Вариант 3. Текстовое поле для ввода имени пользователя, поле TEXTAREAдля ввода комментария и кнопка отправки данных.

Вариант 4. Список для выбора наименования товара, текстовое поле для ввода количества товара и кнопка отправки данных.

Вариант 5. Набор радиокнопок для выбора дня недели, список для выбора интервала времени для связи и кнопка отправки данных.

Вариант 6. Набор флажков для выбора дня недели, список для выбора интервала времени для связи и кнопка отправки данных.

Вариант 7. Набор радиокнопок для выбора кодировки сообщения, поле TEXTAREAдля ввода сообщения и кнопка отправки данных.

Вариант 8. Набор флажков для выбора вариантов оформления текста, поле TEXTAREAдля ввода комментария и кнопка отправки данных.

Вариант 9. Текстовое поле для ввода имени пользователя, поле TEXTAREAдля ввода приветствия и кнопка отправки данных.

Вариант 10. Список для выбора стиля приветствия, текстовое поле для ввода размера шрифта и кнопка отправки данных.

Вариант 11. Набор радиокнопок для выбора стиля приветствия, список для выбора размера шрифта и кнопка отправки данных.

Вариант 12. Набор флажков для выбора стиля приветствия, список для выбора размера шрифта для связи и кнопка отправки данных.

Вариант 13. Текстовое поле для ввода имени пользователя, поле TEXTAREAдля ввода сайтов для управления и кнопка отправки данных.

Вариант 14. Список для выбора прав доступа (пользователь, модератор, администратор), текстовое поле типа password для ввода пароля и кнопка отправки данных.

Вариант 15. Набор радиокнопок для выбора кодировки страницы, список для выбора шрифта и кнопка отправки данных.

Вариант 16. Набор флажков для выбора допустимых режимов работы (чтение, запись, изменение, удаление), список для выбора управляемого сайта и кнопка отправки данных.

Вариант 17. Текстовое поле для ввода имени туриста, поле TEXTAREAдля ввода пожеланий по формам отдыха и кнопка отправки данных.

Вариант 18. Список для выбора категории гостиницы, текстовое поле для ввода дней проживания и кнопка отправки данных.

Вариант 19. Набор радиокнопок для выбора страны посещения, список для выбора курортаи кнопка отправки данных.

Вариант 20. Набор флажков для выбора экскурсий, список для выбора времени экскурсий и кнопка отправки данных.

  1. Содержание отчета

    1. Цель работы.

    2. Вариант задания.

    3. Листинг сценариев.

    4. Выводы по результатам работы.

  2. Контрольные вопросы

    1. Атрибуты тега
      .

    2. Элементы управления, которые можно расположить в форме.

    3. Варианты получения данных из формы.

    4. Структура теневой посылки.

    5. Назначение параметров теневой посылки.

    6. Особенности записи теневой посылки.

    7. Режимы открытия текстовых файлов.

    8. Полный перечень параметров функции fopen.

    9. Функции записи в текстовый файл.

    10. Функции чтения из текстового файла.

    11. Назначение и параметры функции flock.

    12. Другие функции открытия файлов, кроме функции fopen.

    13. Функции проверки наличия, определения размера, удаления файлов.

    14. Функции форматного ввода из и вывода в файлы.

ЛАБОРАТОРНАЯ РАБОТА № 3


PHP. Работа с базой данных MySQL.

  1. Цель работы

Изучить синтаксис языка, освоить процедуру подключения к базе данных, реализацию операций выборки, вставки, изменения и удаления записей в базе данных средствами языка сценариев PHP.

  1. Краткие теоретические сведения

Для подключения к базе данных используется функция int mysql_pconnect ([stringhost[:port], [stringuser], [stringpassword]);

Требуется указать имя узла (host), на котором размещен сервер MySQL, имя пользователя (user), чтобы войти в него, и пароль (password):

@ $db = mysql_pconnect("localhost", "bookorama", "bookorama");

При успехе функция вернет идентификатор связи с базой данных, а при неудаче — значение false. Результат стоит проверить:

if (!$db) {echo "Error: Could not connect to database."; exit; }

Работая с MySQL, следует указать, какая база данных нужна, с помощью функции mysql_select_db("books");

При этом будет использоваться последнее открытое соединение. Если открытое соединение не существует, оно открывается по умолчанию, как при вызове mysql_connect().

Далее необходимо настроить запрос: $query = "select * from books";

Запрос, отправляемый в MySQL, не требует в конце точки с запятой, в отличие от запроса, который вводится в среде монитора MySQL.

Теперь можно выполнить запрос: $result = mysql_query ($query);

В функцию можно также передать и соединение с базой данных (в нашем случае $db). Если его не указать, то будет использовано последнее открытое соединение. Если такового нет, функция откроет соединение точно так же, как при выполнении mysql_connect().

Вместо этого можно воспользоваться функцией: int mysql_db_query(string database, string query, [int database_connection]);

В каком-то смысле это комбинация функций mysql_select_db() и mysql_query(). Обе функции возвращают идентификатор результата в случае успеха и значение false в случае неудачи. Идентификатор результата следует сохранить, это ключ доступа к строкам, возвращенным запросом, которых может быть нуль, одна и более.

Функция mysql_num_rows() сообщает количество строк, которые возвращает запрос. В нее следует передать идентификатор результата:

$num_results = mysql_num_rows($result);

Зная их количество, можно организовать цикл:

for ($i=0; $i < num_results; $i++) { // обработка результатов }

На каждой итерации цикла можно вызвать mysql_fetch_array(). Эта функция берет каждую строку из списка результата и возвращает ее в виде ассоциативного массива, с ключом как именем атрибута и значением как соответствующим значением массива.

$row = mysql_fetch_array($result);

Имея $row в ассоциативном массиве, можно пройти каждое поле и отобразить его.

Существуют несколько вариантов получения результата из идентификатора результата. Вместо ассоциативного массива можно воспользоваться нумерованным массивом:

$row = mysql_fetch_row($result);

Значения атрибутов будут храниться в каждом порядковом значении $row[0], $row[l].

С помощью функции mysql_fetch_object() можно выбрать строку внутрь объекта:

$row = mysql_fetch_object ($result);

После этого к атрибутам можно получить доступ через $row->title, $row->author.

Каждый из этих вариантов подразумевает выборку строки за раз. Другой вариант — получить доступ, используя mysql_result(). Для этого потребуется указать номер строки (от 0 до количества строк минус 1) и название поля, например:

$row = mysql_result($result, $i, "title");

Название поля можно задать в виде строки (либо в форме "title" либо в форме “books.title”) или номером (как в mysql_fetch_row()). He стоит смешивать mysql_result() с другими функциями выборки. Строчно-ориентированные функции выборки намного более эффективны, нежели mysql_result(), так что лучше использовать одну из них.

Для закрытия непостоянного соединения применяется функция:

mysql_close(database_connect±on);

Однако с завершением выполнения сценария соединение закроется автоматически.

Если во время выполнения сценария возникают проблемы, связанные с нехваткой памяти, пригодится функция mysql_free_result(). Она вызывается с идентификатором результата:

mysql_free_result($result);

и освобождает память, занимаемую результатом. Очевидно, что до обработки результата эта функция вызываться не должна.

Внесение новой информации очень похоже на получение существующей. Только в данном случае вместо SELECT будет использоваться INSERT:

$query="insert into books

values('".$id."','".$author."','".$title."')";

$result = mysql_query($query);

if ($result) echo mysql_affected_rows()."row(s) inserted.";

Аналогично, для изменения и удаления записей применяются запросы UPDATE и DELETE. При редактировании изменяться должно лишь содержимое таблицы-связки, содержимое же таблиц справочников рекомендуется отображать в виде списков.

Пример работы сценариев см. здесь: http://gun.cs.nstu.ru/web/labs/lab3/.



  1. Методические указания

    1. Для разработки сценариев применяйте любые доступные текстовые редакторы, например, Jview или Notepad++.

    2. Сценарии располагаются на сервере с адресом 217.71.139.72, подключение к которому производится по протоколу FTP с именем учетной записи userNM, где N – порядковый номер группы, M- номер студента по журналу, пароль сообщается преподавателем.

    3. При настройке клиента FTP необходимо установить пассивный режим.

    4. При разработке страниц периодически сохраняйте их и проверяйте их отображение в любом из доступных браузеров.

    5. При написании сценариев обращайте внимание на кодировку русского текста, правильность написания HTML-тегов, имен переменных и функций PHP, парность открывающих и закрывающих кавычек в операторе echo.

    6. При отладке сценариев обновляйте содержимое окна браузера при нажатой клавише Shift. Для запрета кэширования web-страниц на локальном диске формируйте в сценариях заголовок header(expires='-1d').

    7. По окончании лабораторной работы запишите документы сайта на сменный носитель для сохранения и распечатки.

  2. Порядок выполнения работы

    1. Разработать алгоритмы сценариев извлечения, добавления, изменения и удаления записей в базе данных согласно варианту.

    2. Создать файл index.php сценария извлечения записей из базы данных в соответствии со структурой своей базы данных. Из браузера обратиться по адресу http://217.71.139.72/~userNM/index.php, убедиться в наличии прав доступа к базе данных.

    3. На локальном компьютере создать сценарии, реализующие операции извлечения по условию, добавления, изменения и удаления записей, сценарий меню для выбора операции, по протоколу ftp скопировать их на сервер 217.71.139.72.

    4. Отладить сценарии, продемонстрировать их работоспособность преподавателю.

    5. Сохранить на локальной машине и распечатать файлы отлаженных сценариев.

  3. Варианты заданий

Задания различаются структурой баз данных, реализованных в соответствии с заданиями к лабораторной работе №1. Обязательна реализация связанных запросов на извлечение данных, запросов на поиск (по параметру), добавления, изменения (редактирования) и удаления данных в/из таблицы-связки.

  1. Содержание отчета

    1. Цель работы.

    2. Вариант задания.

    3. Структура базы данных в графическом виде.

    4. Листинги сценариев.

    5. Выводы по работе.

  2. Контрольные вопросы

    1. Способы внедрения кода PHP в HTML.

    2. Применение конкатенации строк при формировании запросов к базе данных.

    3. Процедура подключения к базе данных из PHP.

    4. Типовые ошибки при подключении к базе данных и способы их перехвата.

    5. Формирование и выполнение запроса к базе данных.

    6. Перемещение по записям, извлеченным из базы данных.

    7. Извлечение данных из полей записи.

    8. Извлечение атрибутов столбцов таблицы базы данных.

    9. Отличие результатов запросов на извлечение и добавление/удаление записей.

    10. Методы смены кодировки данных, извлекаемых из базы данных.

    11. Всегда ли нужно закрывать соединение с базой данных? Когда именно?

    12. Как проще всего после изменения записей отобразить результат?

    13. В каких случаях и какими методами необходимо прерывать работу сценария взаимодействия с базой данных.

    14. Когда и зачем необходимо вызывать функцию mysql_free_result()?

    15. Можно ли реализовать все операции с базой данных в одном сценарии? Что для этого потребуется?


ЛАБОРАТОРНАЯ РАБОТА № 4


PHP. Разграничение прав доступа к сайту.

  1. Цель работы

Изучить синтаксис языка, методы аутентификации пользователей и управления сеансами, освоить процедуру разграничения доступа к страницам сайта средствами языка сценариев PHP.

  1. Краткие теоретические сведения

Просьба к пользователю доказать свою личность называется аутентификацией. Обычный метод аутентификации в Web — это требование к посетителям предоставить уникальное имя пользователя и пароль. Аутентификация обычно используется для разрешения или запрещения доступа к определенным страницам или ресурсам.

Например, вводятся такие группы доступа, как гости, пользователи, администраторы. Для гостей аутентификация не требуется, а данные доступны для просмотра и поиска. Пользователям и администраторам необходима аутентификация, после которой пользователи получат права добавления и изменения записей в базе данных, а администраторы – и право удаления записей.

Самый простой способ аутентификации - запрос имени пользователя и пароля через форму и сравнение их с данными, хранящимися прямо в сценарии, текстовом файле или базе данных.

Для защиты группы сценариев можно использовать базовую аутентификацию

if ($PHP_AUTH_USER != "user" || $PHP_AUTH_PW != "pass")

{ header('WWW-Authenticate: Basic realm="Restricted area"');

header("HTTP/1.0 401 Unauthorized");

echo "

скачать файл


следующая страница >>
Смотрите также:
Методические указания к лабораторным работам для студентов III курса автф направления230100. 62 «Информатика и вычислительная техника»
499.76kb.
Методические указания к лабораторным работам для студентов очной формы обучения
485.83kb.
Методические указания к лабораторным работам по строительным материалам для студентов 2 курсов
240.53kb.
Основы геотехники
424.75kb.
Н. Д. Бовда Дискретная математика
1017.72kb.
Учебное пособие Санкт-Петербург 2012 Содержание Лабораторная работа №1 3 Общие сведения 3
1108kb.
Программа дисциплины «Программирование» для направления 230100 «Информатика и вычислительная техника»
379.72kb.
Методические указания по производственной практике для студентов III и IV курсов по специальности 020302 Геофизика
64.63kb.
Методические указания по выполнению контрольных работ включают методические указания по выполнению контрольных работ, задания контрольной работы, вопросы для подготовки к экзамену, список рекомендуемой литературы
488.03kb.
Методические указания к выполнению лабораторных работ по исследованию полупроводниковых диодов Санкт-Петербург 2007
481.38kb.
Памятка для студентов направления 230100. 62 «Информатика и вычислительная техника»
60.43kb.
Методическое пособие к лабораторным работам по атомной и ядерной физике «Эффект Мёссбауэра». Зеленодольск, 2007
418.24kb.