- •Технология организации баз данных и знаний
- •Методические указания к выполнению лабораторных работ
- •Методические указания к выполнению лабораторных работ
- •Предисловие
- •Библиографический список
- •Лабораторная работа № 1 Тема №1. ИнсталляцияMySqLи создание локального сервера
- •1. Цель работы
- •2. Основные технические возможности
- •3. Описание установки
- •4. Порядок выполнения работы
- •5. Содержание отчета
- •Лабораторная работа № 1
- •6. Содержание отчета
- •Лабораторная работа № 2 Тема №1. Создание баз и таблиц данных
- •1. Цель работы
- •2. Основные сведения
- •3. Программа работы
- •4. Указания к выполнению работы
- •3. Программа работы
- •00 Проверка моего домена с именем Moy.Loc
- •4. Указания к выполнению работы
- •5. Содержание отчета
- •3. Указания к выполнению работы
- •Задание 2: Разработать html-форму с методом Post
- •Тема №2. Передача значений переменным в сценариях php. Использование возможностей метода get без html-формы для передачи значений переменных в сценариях php
- •Тема №3. Создание формы и рнр-сценария в одном файле
- •Задание 1: Получение данных из текстового поля
- •I курсив
- •Тема №4. Использование чисел. Управляющие структуры
- •Тема №5. Использование управляющей структурыswitch
- •Тема № 6. Использование регулярных выражений в сценариях рнр
- •Проверка ошибок
- •Задание 1. Вывод информации о ошибочно заполненных полях формы
- •Задание 2. Использование функций пользователя для контроля полей формы
- •Задание 3. Проверка ограничений в текстовом поле.Lab6_0_2.Php
- •Задание 4. Специфика имени пользователя. Lab6_0_3.Php
- •Задание 5. Специфика имени пользователя с помощью JavaScript. Lab6_0_4.Php
- •Тема №7. Работа с массивами
- •Задание 1. Означивание массива и вывод на экран. Lab7_0.Php.
- •Задание 4. Сортировка массива.Lab7_3.Php.
- •Тема №8. Функции в сценариях рнр
- •Задание 1. Вложенные функции.Lab8_0_0.Php
- •Задание 2. Объявление функций внутри других функций.Lab8_0.Php
- •Задание 3. Возврат значений функцией.Lab8_1.Php
- •Задание 4. Возврат нескольких значений функцией.Lab8_2.Php
- •Задание 5. Возвращение функцией нескольких величин.Lab8_3.Php
- •Задание 6. Рекурсивные функции .Lab8_4.Php
- •Задание 7. Функции-переменные.Lab8_5.Php
- •Задание 8. Построение библиотек функций.Lab8_6_0.Php.
- •Задание 9. Построение шаблона сайта.Lab8_7_0.Php.
- •Тема №9. Использование файлов для хранения данных в сценариях рнр
- •Создание сценария загрузки.
- •Задание 3. Сохранение пользовательских данных в текстовом файлеLab9_5.Php
- •Задание 4. Сохранение пользовательских данных в текстовом файлеLab9_6_0.Php
- •Тема № 10. Работа с каталогами в сценариях рнр
- •Тема №11. Создание панели управления файлами
- •Задание 1. Разработать форму и сопутствующее ей приложение для панели управления файлами.
- •Тема № 12.Работа с базой через монтторMySql и PhpMyAdmin
- •Задание 1. Создать базу данных через командную строку
- •Задание 3. Вставка данных в базу данных
- •Задание 4. Создание командных файлов и файлов сценариев для вставки данных в базу данных.
- •Тема № 13. Извлечение данных из базы данных
- •Задание 1. Оператор выборки данныхSelect
- •Задание 2. Извлечение данных по определенному критерию
- •Задание 3. Извлечение данных из нескольких таблиц
- •Задание 4. Поиск несоответствующих строк
- •Задание 5. Использование псевдонимов имен таблиц (as)
- •Задание 6. Извлечение данных в определенном порядке
- •Задание 7. Группировка и агрегирование данных
- •Задание 8. Обновление записей в базе данных (update)
- •Задание 10. Удаление записей, таблиц и базы данных (delete)
- •Тема № 14.Php и MySql. Доступ к базе данных MySql из Web с помощью рнр
- •Задание 1. Изучение работы архитектуры Web-баз данных
- •Задание 2. Проверка и фильтрация данных, исходящих от пользователя. Использование объектно-ориентированного синтаксисаPhp
- •Задание 3. Внесение новой информации в базу данных. Проверка и фильтрация данных, исходящих от администратора
- •Задание 4. Создание и удаление баз данных
- •Содержание
I курсив
B выделение
U подчеркивание
STRIKE зачеркнутый текст
BIG большой шрифт
SMALL малый шрифт
SUB подстрочный текст
SUP надстрочный текст.
-->
<!--<fieldset style="width: 50%" align="right">-->
<fieldset style="width: 50%" ><!--Рамка формы-->
<legend><b>Ввод исходных данных(заголовок рамки)</b></legend>
<?PHP //начало встроеннго PHP кода
if (!isset($_POST[Submit]))//
{
$NameG=$_GET['LastName'];
$NameR=$_REQUEST['LastName'];
$NameP=$_POST['LastName'];
if (empty($NameG))
echo "Кнопку Submit=OK еще не нажимали. Значение Фамилии в массивах должно быть Get=$NameG = Пусто,REQUEST=$NameR =Пусто,Post=$NameP =Пусто <br>";
// на экране будет:
//Кнопку Submit=OK еще не нажимали. Значение Фамилии в
//массивах должно быть Get= = Пусто,REQUEST= =Пусто,
//Post= =Пусто
else
// на экране будет (если ввели например фамилию Кук):
//Кнопку Submit=OK уже нажимали. Значение Фамилии в
//массивах $_GET=Кук, $_REQUEST=Кук, S_Post=
echo 'Кнопку Submit=OK <font color=red><BIG> уже </BIG> нажимали. Значение Фамилии в массивах $_GET='.$NameG.', $_REQUEST='.$NameR.', S_Post='.$NameP.' <font color=blue><br>';
$a=$_SERVER['REQUEST_URI'];
echo "<br>Передали через адресную строку ".$a;
//на экране (если Фамилия не означена):
//Передали через адресную строку /php/Lab3_2.php
//на экране (если Фамилия означена и равна Кук):
//Передали через адресную строку
// /php/Lab3_2.php?LastName=%CA%F3%EA
echo "<br> Метод указанный в SERVER = ".$_SERVER['REQUEST_METHOD']." ".$Name." " ; // GET
//на экране (при неозначенной или означенной фамилии):
//Метод указанный в SERVER = GET
$b=$_SERVER['QUERY_STRING'];
echo "<br>Передали через SERVER['QUERY_STRING'], b= ".$b;
//на экране (если Фамилия не означена):
//Передали через SERVER['QUERY_STRING'], b=
//на экране (если Фамилия означена и равна Кук):
//Передали через SERVER['QUERY_STRING'], b= LastName=%CA%F3%EA
$c = true;
if (!empty($b)) {
//в адресной строке указан параметр и его значение
//echo ''.$b.' SERVER='.$_SERVER['QUERY_STRING'].' не //пуста Факт = '.$_GET['LastName'];
$LastName=$_GET['LastName'];
$c=false;
}
echo "<br> QUERY_STRING ".($c ? 'Пусто' : 'Не пусто '.$b.' Фам=$LastName='.$LastName);
//на экране:
//QUERY_STRING Пусто, если значение $c = true
//иначе
//QUERY_STRING Не пусто LastName=%CA%F3%EA Фам=$LastName=Кук
//echo "<br> Выполняется PHP_SELF=".$_SERVER['PHP_SELF'];
//Вывод вышестоящего оператора будет:
//Выполняется PHP_SELF=/php/Lab3_2.php
//Создание формы и описание ее объектов
echo"<font color=blue>";//цвет имен атрибутов в форме голубой
print("<form action=\"Lab3_2.php\" method=POST>");
print("<table bgcolor='#33FF99'>
<tr><td> Имя </td>");//вывод атрибута на экран
print("<td><input type=text name=\"FirstName\" size=20></td></tr>");
print("<tr><td>Фамилия</td>");
//print("<tr bgcolor='#33FF99'><td>Фамилия</td>");
if (!empty($b))
// Внимание! if (!c) не эквивалентно if (!empty($b))
{// в адресной строке указан параметр и его значение
//print("<td><input type=text name=\"LastName\" value=$LastName size=20></td></tr>");
print("<td><input type=text name=\"LastName\" value=".$_GET['LastName']." size=20></td></tr>");
}
else
{
print("<td><input type=text name=\"LastName\" size=20></td></tr>");
}
print("<tr><td> Комментарий</td>");
print("<td><textarea name=\"Comments\" rows=5 cols=40></textarea></td>");
print("</tr></table>");
//формирование кнопок
print("<input type=submit name=\"Submit\" value=\"OK\"> ");
print("<input type=reset name=\"Reset\" value=\"Отмена-Cancel\">");
print("</form>");
}
else //Кнопку Submit=OK нажимали
{
$FirstName=trim($_POST[FirstName]);
echo "Вышли из формы, нажав кнопку OK. Вывод значений введенных переменных <br>";
$LastName=trim($_POST[LastName]);//значение фамилии
if (empty($LastName))
{//проверка на пустое значение переменной $LastName
echo'<font color=red><BIG> Введите Фамилию. Связь с сервером запрещена.</BIG> Вернитесь на предыдущую страницу!';
exit; //выйти из программы
}//конец if (empty($LastName))
$Comments=trim($_POST[Comments]);
print("Указали Имя : $FirstName <br>");
print(" Фамилия : $LastName <br>");
if (empty($Comments))//комментарий не вводили
print("Поле комментария не заполняли<br>");
else
{
print("В поле комментария было:<br> $Comments <br>");
}//конец if (empty($Comments))
print("Нажмите <a href=\"Lab3_2.php?LastName=$LastName\">здесь</a> и будет вызвана Lab3_2.php с параметром LastName,<br> значение = $LastName ");
}
?>
</fieldset> <!--Конец рамки-->
</body>
</html>
Рис. 3.19. Исходный код программы Lab3_2.php.
Нажатие на ссылке (рис. 3.18) должно привести к выводу следующего экрана (рис. 3.20).
Рис. 3.20. Пример вывода введенных значений.
Если пользователь не вводит значения фамилии и нажимает кнопку “OK”, то реакция программы Lab3_2.php показана на рис. 3.21.
Рис. 3.21. Пример сообщения из программы Lab3_2.php при отсутствии значения Фамилии в поле ввода.
Задание 3. Разработать приложение с использьзованием только HTML средств для ввода информации.
Вид формы форма ввода показан на рис. 3.22. Исходный код представлен на рис. 3.23
Рис. 3.22. Пример форм, реализованных программой Lab3_3.php
На рис. 3.22 показано несколько форм использующих два текстовых поля, конструкцию checkbox и выпадающий список select.
Синтаксис определения текстового поля:
<input type="text" name="имя переменной" size="N" maxlenght="N" value="">
Определение текстового поля включает пять атрибутов:
type - тип элемента (для текстовых полей - text);
name - тип переменной, в которой сохраняются введённой данные;
size - общий размер текстового поля в браузере;
maxlength - максимальное количество символов, вводимых в текстовом поле;
value - значение, отображаемое в текстовом поле по умолчанию;
Чтобы создать в форме поле для ввода паролей, достаточно указать
type="password" вместо type="text".
Флажки (checkboxes) используются в ситуациях, когда пользователь выбирает один или несколько вариантов из готового набора - по аналогии с тем, как ставятся "галочки" в анкетах.
Синтаксис определения флажка:
<input type="cheskbox" name="имя_переменной" value="начальное_значение">
Определение флажка включает три атрибута:
type - тип элемента (для флажков - checkbox);
name - имя переменной, в которой сохраняются введённые данные (в данном случае - состояние элемента);
value - значение, присваиваемое переменной по умолчанию. Если флажок установлен, именно это значение будет присвоено переменной с указанным именем. Если флажок не установлен, значение атрибута value не используется.
Раскрывающийся список
Раскрывающиеся списки особенно удобны в ситуации, когда у Вас имеется длинный перечень допустимых вариантов, из которых пользователь должен выбрать один вариант. Как правило, раскрывающиеся списки применяются при работе с относительно большими наборами данных - например, при перечислении областей или стран.
Синтаксис определения раскрывающегося списка:
<select name="имя_переменной">
<option value="имя_переменной1">
<option value="имя_переменной2">
"option value="имя_переменной3">
.........................................................
<option value="имя_переменнойN">
</select>
Определение раскрывающегося списка включает два атрибута:
name - имя переменной, в которой сохраняются введённые данные (в данном случае - строка, выбранная в списке);
value - значение, отображаемое в списке по умолчанию.
Далее приводится текст HTML кода (программа Lab3_3.php), обеспечивающая вывод странички на экран.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Lab3_3</title>
</head>
<h1> Пример форм в HTML </h1>
<body>
<!--1-я форма-->
<form
<label for="name"> Ваше имя </label>
<input type="text" name="Name" value="Вася" maxlengf="20" size=30><br>
<input type="reset" value="Очистить форму">
</form><br>
<!--2-я форма-->
<form
label for="name"> Введите пароль </label>
<input type="password" maxlengf="10" size=30><br>
<input type="reset" value="Сброс пароля">
</form><br>
<form
label for="name1"> Ваши интересы </label><br>
<input type="checkbox" name="name1" value="Comp"> Компьютеры<br>
<input type="checkbox" name="name1" value="Sport" > Спорт<br>
<input type="checkbox" name="name1" value="Art" > Искусство<br>
</form><br>
<!--Раскрывающийся список 1-->
<select name="SP">
<option value="SP1" >Базы данных
<option value="SP2" >Операционные системы
<option value="SP3" >Организация ЭВМ
<option value="SP4" >Сети ЭВМ
</select><br><br>
<!--Раскрывающийся список 2-->
<select name="SPP">
<option value="SPP1" >1-й урок 9.00 - 9.45
<option value="SPP2" >2-й урок 10.00 - 10.45
<option value="SPP3" >3-й урок 11.00 - 11.45
<option value="SPP4" >4-й урок 12.00 - 12.45
<option value="SPP5" >5-й урок 13.00 - 13.45
</select><br><br>
</body>
</html>
Рис. 3.23. Программа Lab3_3.php, реализующая различные формы средствами HTML.
Кнопка для загрузки файлов (browse)
Служит для реализации загрузки файлов на сервер. Объект browse начитается с парных тегов <form></form>. Начинающий тэг <form> содержит необходимый атрибут encrypt. Атрибут encrypt принимает значение multipart/form-data, который извещает сервер о том, что вместе с обычной информацией посылается и файл. При создании текстового поля также необходимо указать тип файла – “file”.
Синтаксис описания browse (Кнопка обзор)
<form enctype="multipart/form-data" action="upload.php" method="post">
Загрузить файл: <input name="my_file" type="file">
<input type="submit" value="Отправить">
</form>
Пример использования подобной конструкции рассмотрен в лабораторной работе в теме 9.
Ниже приведен еще один пример формы представленный в файле Lab3_4.php.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Lab3_4 Anketa</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#cbda74"
vlink="#808040" alink="f808040">
<?
// Все кавычки внутри $form должны экранироваться,
// в противном случае произойдет ошибка.
$form = "
<form action=\"Lab3_4.php\" method=\"post\">
<input type=\"hidden\" name=\"seenform\" value=\"y\">
<b>Введите информацию!</b><br>
Ваше имя :<br>
<input type=\"text\" name=\"name\" size=\"20\" maxlength=\"20\" value=\"\"><br>
Ваш Email:<br>
<input type=\"text\" name=\"email\" size=\"20\" maxlength=\"40\" value=\"\"><br>
<input type=\"submit\" value=\"Отправить\">
</form>";
// Если форма ранее не отображалась, отобразить ее.
// Для проверки используется значение скрытой переменной $seenform.
if ($seenform != "у"):
//print " форма ранее не отображалась ";
print "$form";
else:
print "Ввели. $name!. Your email address is $email";
endif;
?>
</body>
</html>
Учтите, что этот вариант создает определенные неудобства, поскольку при повторной загрузке страницы пользователь ничего не узнает о том, правильно ли были заполнены поля формы. Процедура проверки ошибок рассматривается далее в, а пока достаточно запомнить, что ввод данных можно осуществить при помощи одного сценария.