МУ_лаб_РНР_1. Методические указания к практическим занятиям по дисциплине Публикация баз данных в Интернет для студентов специальности
Скачать 0.9 Mb.
|
1 2 Министерство образования и науки Республики Казахстан Актюбинский государственный университет им. К. Жубанова Методические указания к практическим занятиям по дисциплине «Публикация баз данных в Интернет» для студентов специальности «Вычислительная техника и программное обеспечение» дневной формы обучения Лабораторная работа №1. Установка Apache. Цель: приобрести навыки установки сервера Apache. Задание № 1: Установить Apache на ПК В лабораторной работе №1 необходимо установить Apache на компьютер. Контрольные вопросы. 1. Что такое Apache? 2. Для чего необходим Apache? 3. Как устанавливается Apache? Лабораторная работа №2. Обработка данных форм Цель: изучить особенности языка PHP по передачи на сервер данных введенных пользователем; Изучить специфику передачи данных методами POST и GET; Научиться динамически формировать странички с использованием данных форм Практическая часть
Задание № 2. РАБОТА С ФОРМАМИ
Лабораторная работа №3 Ввод-вывод. Управляющие конструкции. Условный оператор. Оператор выбора. Цель: приобрести практические навыки по созданию форм с применением условного оператора, оператора выбора языка программирования РНР. Задание № 1 1. Создайте php-скрипт lab2-1.php, в котором должны быть: переменная $breakfast со значением «gamburger» и динамическая переменная $$breakfast со значением « and tea». Объясните, что и почему будет выведено на экран в случаях (а), (б), (в): (а) print "$breakfast $gamburger"; (б) print "$breakfast"; print "$$breakfast"; (в) print $breakfast; print $$breakfast; 2. В этом же скрипте lab2-1.php создайте переменную $breakfast2 являющуюся ссылкой на переменную $breakfast и переменные $color1, $color2 для двух значений цвета (на ваш выбор). Отобразите на экране значение переменной $breakfast2 цветом $color1 до, а затем цветом $color2 после присвоения переменной $breakfast значения «pizza». Объясните результат. Задание № 2 1. В скрипте lab2-2.php создайте константу NUM_E со значением 2.71828 (число е). 2. Выведите на экран значение этой константы в виде строки «Число e равно …». 3. Присвойте переменной $num_e1 значение константы и отобразите тип переменной $num_e1. 4. Последовательно измените тип переменной $num_e1 на строковый, целый и булевский; отобразите тип и получившееся значение переменной $num_e1. Задание № 3 Пусть в скрипте lab2-3.php переменная $lang может принимать значения «ru», «en», «fr» или «de». Используя операторы if-else-elseif обеспечьте вывод на экран полного названия языка (русский, английский, …) в зависимости от того, что задано в строке вызова скрипта: z02-1.php?lang=ru [или =en или =fr или =de] Обязательно предусмотрите случай неверного задания значения параметра lang - тогда должна выводиться надпись «Язык неизвестен». Задание № 4 Сделайте тоже самое, что в задании № 3, но используя оператор switch (скрипт lab2-4.php). Задание № 5 Пусть в скрипте lab2-5.php переменная $lang может принимать 2 значения «ru» или «en». Используя оператор ? обеспечьте вывод на экран фразы «Привет» или «Hello» в зависимости от того, что задано в строке вызова скрипта: z02-3.php?lang=ru [или =en] Лабораторная работа №4. Операторы цикла Цель: приобрести практические навыки по созданию форм с применением циклических операторов выбора языка программирования РНР. Во всех скриптах, в заголовке окна браузера должны быть ваши фамилия и имя! Задание № 1В скрипте lab3-1.php, используя вложенные циклы for, отобразите на экране таблицу 10×10, в ячейках которой идут числа от 1 до 100. При этом красным цветом выделены «треугольные» числа, т.е. числа вида n(n+1)/2 (где n=1,2,… 14). Все другие числа черного цвета. Массивы не использовать! Ширина рамки таблицы равна 1, отступ содержимого ячеек от границы равен 5. Обязательно используйте служебные символы табуляции и новой строки для создания читабельного html-файла. Лабораторная работа №5. Функции Цель: приобрести навыки работы с функциями, применение функций для работы с датой и временем. Задание № 1В скрипте lab3-2.php создайте 4 функции с именами Ru(), En(), Fr(), De(). Каждая функция выводит на экран приветствие на соответствующем языке: Ru() - «Здравствуйте!», En() - «Hello!», Fr() - «Bonjour!» и De() - «Guten Tag!». Эти функции имеют аргумент $color, который определяет цвет выводимого текста. Используя функцию-переменную $lang(), отобразить на экране одно из приветствий, причем какое приветствие будет выведено и каким цветом - задать как параметры в строке вызова скрипта: z04-1.php?lang=Ru&color=[назв-е цвета] En/Fr/De Задание № 2В скрипте lab3-3.php используя аргументы $day и $color функции WeekDay(), а также глобальную переменную $size отобразите названия дней недели уменьшающимся размером (начиная с 7) и разными цветами:
Задание № 3В скрипте lab7-4.php создайте функцию finance($income, $month), аргументы которой — доход за месяц и номер месяца (1-12). В этой функции должны вычисляться: • название месяца по-русски; • размер подоходного налога (13% от дохода) за указанный месяц; • сумма, подлежащая выдаче на руки (87% от дохода) за указанный месяц. Кроме того, при последовательном вызове функции finance() для разных месяцев в переменной $summa должна сохраняться общая сумма дохода за эти месяцы. В строке вызова скрипта задаются значения переменных, например, таких: $7, $8, $9 — доход за июль, август и сентябрь соответственно: z04-3.php?7=...&8=...&9=... например, z04-3.php?7=100&8=200&9=300 То есть, количество месяцев, для которых будет задаваться доход, заранее неизвестно (их может быть и 2, и 3, и все 12) После вызова функции finance() для этих трех месяцев должен получиться список такого вида:
Причем, нумерация как "1), 2), ..." должна формироваться исходя из предположения, что заранее количество элементов списка неизвестно. Лабораторная работа № 6. Массивы Цель: приобрести навыки работы с одномерными массивами, а также функций для работы с массивами. Во всех скриптах, в заголовке окна браузера должны быть ваши фамилия и имя! Задание № 1В скрипте lab5-1.php
Задание № 2В скрипте lab5-2.php 1. Создайте массив $treug[] «треугольных» чисел (для n от 1 до 30) и массив квадратов $kvd[] (для n от 1 до 30). 2. Используя вложенные циклы while отобразите на экране таблицу Пифагора 30×30 (размер чисел в ячейках равен 8 пунктов). В этой таблице фон у ячеек с квадратами чисел должен быть синим, а у ячеек с «треугольными» числами - зеленым. У ячеек, в которых стоят числа, одновременно являющиеся и квадратами и «треугольными» (здесь это числа 1 и 36) фон должен быть красным. У остальных ячеек фон белый. Для проверки правильности закрашивания ячеек, под таблицей выведите «треугольные» числа в строку. В результате должно получиться так: Задание № 3В скрипте lab5-3.php 1. Создайте ассоциативный массив $cust[] с ключами cnum, cname, city и snum и значениями: 2001, Hoffman, London, и 1001. Выведите этот массив (вместе с именами ключей) на экран. 2. Добавьте в массив ключ rating со значением 100. Выведите этот массив (вместе с именами ключей) на экран. Где именно стоит добавленное значение? 3. Отсортируйте этот массив по значениям. Выведите результат на экран. 4. Отсортируйте этот массив по ключам. Выведите результат на экран. 5. Выполните сортировку массива с помощью функции sort(). Выведите результат на экран и объясните что получилось. Задание № 4В скрипте lab5-4.php 1. Создайте двумерный ассоциативный массив $depart[] в котором на первом уровне содержатся ключи: ММФ, ФИТ, ФФ, ГГФ, ... МедФ являющиеся сокращенными названиями факультетов НГУ: Эти ключи на втором уровне связаны с ассоциативными массивами, в которых ключами являются каф1, каф2, каф3, а значениями ключей — названия кафедр (без слова "кафедра"), эти названия находятся в файле spisok.txt. Причем названия заносить в массивы точно как в файле spisok.txt. 2. С помощью сортировки массивов выведите на экран в алфавитном порядке названия факультетов, а под названием каждого факультета — список его кафедр тоже в алфавитном порядке (как маркированный список), причем перед названием кафедры должно быть слово «кафедра»: Лабораторная работа 7. Многомерные массивы Цель: приобрести навыки работы с многомерными массивами, а также функций для работы с массивами. Практическая часть
Лабораторная работа № 8. Во всех скриптах, в заголовке окна браузера должны быть ваши фамилия и имя! Задание № 1Создайте файл z10-1.htm с HTML-формой, позволяющей выбрать а) структуру (группа флажков "structure") и/или б) содержимое (группа флажков "content") любой таблицы базы данных sample: Примечание. Если вы работаете с MySQL на своем компьютере, то сперва создайте базу данных sample, а в ней - таблицы, как в файле sample.sql При нажатии кнопки «Вывести» должен вызываться скрипт z10-2.php (для передачи названий таблиц используйте метод GET): Скрипт z10-2.php должен быть составным, т.е. иметь вид: Именно таким образом и происходит отделение оформления страниц сайта от обращения к СУБД и от собственно наполнения (контента) каждой страницы. Особенно важно, чтобы для инициализации обращения к базе данных был один единственный inc-файл! Тогда, чтобы заменить логин и пароль доступа к БД (например, при смене провайдера сайта), достаточно исправить всего один файл. В файле z10-3.inc содержится раздел , в котором заданы CSS-стили для:
и команды В файле z10-4.inc содержатся php-команды для подключение к базе данных sample. В файле z10-5.inc содержатся функции vid_structure() и vid_content() для отображения структуры и содержимого таблицы, выбранной в HTML-форме (имя таблицы является аргументом функций). Перед вызовом функций обязательно проверять, заданы ли значения для переменных $structure и $content. Функция vid_structure() отображает структуру выбранной таблицы. Функция vid_content() отображает содержимое выбранной таблицы, причем в первой строке таблицы, в каждой ячейке | сперва указаны русские названия для столбцов таблицы, а через — собственно имена столбцов. Для этого в функции создайте ассоциативный массив $rus_name[], в котором ключами будут имена столбцов, а значениями ключей — русские названия этих столбцов. Массив единый для всех 3 таблиц: snum - номер продавца, sname - имя продавца, city - город, comm - комиссионные, cnum - номер покупателя, cname - имя покупателя, rating - рейтинг покупателя, onum - номер заказа, amt - сумма заказа, odate - дата заказа В заголовках («Структура таблицы …» и «Содержимое таблицы …») должно подставляться название выбранной таблицы. В конце файла z10-5.inc поставьте гиперссылку на z10-1.htm («Возврат к выбору таблицы»). В файле z10-6.inc содержится php-команда для отключения от базы данных. Задание № 2Создайте скрипт lab10-2.php, в котором в СУБД MySQL в базе данных study с помощью функций РНР создайте таблицу notebook_NNN (где NNN — первые 3-4 латинских буквы вашей фамилии, напр. notebook_kov) со следующими полями: id — целое, непустое, автоинкремент, первичный ключ, name — строка переменной длины, но не более 50 символов, city — строка переменной длины, но не более 50 символов, address — строка переменной длины, но не более 50 символов, birthday — значение даты (DATE), т.е. год, месяц и число, mail — строка переменной длины без ограничения количества символов. После создания таблицы на экране должно появиться сообщение: «Таблица notebook_NNN создана». Предусмотрите, чтобы в случае ошибки был вывод предупреждения: «Нельзя создать таблицу notebook_NNN». Обязательно сделайте отдельный inc-файл для подключения к базе данных (т.е. где задаются логин и пароль). Совет. Перед командами создания таблицы добавьте две РНР-команды, в первой из которых содержится SQL-запрос, уничтожающий таблицу, если она уже есть: "DROP TABLE IF EXISTS notebook_NNN" — для того, чтобы при повторном выполнении скрипта lab10-2.php не появлялось сообщения об ошибке. Задание № 3Создайте скрипт lab10-3.php с HTML-формой для заполнения таблицы notebook_NNN: Полями, обязательными для заполнения являются name и mail, т.е. только когда они не пустые, информация заносится в таблицу notebook_NNN. Задание № 4Создайте скрипт lab10-4.php для вывода всех записей таблицы notebook_NNN. В форме для заполнения таблицы (lab10-3.php) введите дату с нарушением формата (или вообще не число) и посмотрите, что будет занесено в таблицу. Задание № 5Создайте скрипт lab10-5.php, в котором: 1. Должна быть HTML-форма, выводящая все записи таблицы notebook_NNN, причем рядом с каждой строкой таблицы стоит радиокнопка для выбора той строки, в которой нужно что-то изменить: Имя этой группы радиокнопок — id, а передаваемое значение — соответствующее значение поля id таблицы notebook_NNN (оно равно $a_row[0]). 2. Если значение переменной $id задано, вывести соответствующую строку таблицы в виде выпадающего списка, а рядом текстовое поле для ввода нового значения: Под выпадающим списком стоит кнопка «Заменить»: Имя элемента select в форме — field_name, имя текстового поля - field_value. В атрибуте VALUE элементов OPTION (выпадающего списка) значения укажите явно ('name', 'city' и т.д.). А на экране должны отображаться значения ассоциативного массива $a_row['name'] ... $a_row['mail']. Совет. В этой же форме добавьте еще скрытое поле чтобы не «потерять» значение пременной $id. 3. Если заданы значения переменных $id и $field_name, обновите в таблице notebook_brNN значение поля $field_name на $field_value где id='$id'. Здесь же вставьте ссылку на файл lab10-4.php, чтобы увидеть результат (возможно придется дополнительно нажать кнопку «Обновить» браузера). Лабораторная работа № 9. Во всех скриптах, в заголовке окна браузера должны быть ваши фамилия и имя! Задание № 1Создайте скрипт z11-1.php, являющийся модификацией скрипта lab10-5.php: В столбце Изменить стоит не радиокнопка, а гиперссылка на скрипт в таком виде: z11-2.php?id=*** где вместо *** подставлено соответствующее значение поля id: Ввести новые данные
А перед таблицей стоит гиперссылка "Ввести новые данные" на скрипт в таком виде: z11-2.php что означает, что значение переменной $id в этом случае не задано. Задание № 2Создайте скрипт z11-2.php, являющийся модификацией скрипта lab10-3.php: 1. Поля для ввода данных сделайте как . Причем, если этот скрипт вызывается без значения id, то поля для ввода остаются пустыми. Если же скрипт вызывается для изменения данных (значение переменной $id чему-то равно), то в элементах |
---|