Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Pelyulya / ТОБД / tobd_lb5

.doc
Скачиваний:
30
Добавлен:
14.04.2015
Размер:
183.81 Кб
Скачать

11

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХАРЬКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

РАДІОЕЛЕКТРОНІКИ

Кафедра ТАВР

Звіт

з лабораторної роботи №5

з дисципліни:

«Технологія організації баз даних та знань»

Виконав:

Перевірив:

ст. гр. КІТПВс-13-1

Мілютіна С. С.

Лактіонов Я.В.

Харків, 2013

5 СТВОРЕННЯ ФОРМИ ТА PHP СЦЕНАРІЮ В ОДНОМУ ФАЙЛІ

5.1 Мета роботи

Отримання навичок та розуміння взаємопов’язаної роботи форми та її обробки.

5.2 Хід роботи

5.2.1 Отримання даних з текстового поля

5.2.1.1 Розробити программу в якій створюється форма для введення користувачем даних:

- імені;

- прізвища;

- адреси електронної пошти;

- текста коментаря.

Лістинг програми приведений нижче.

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title>Lab3 Anketa</title>

</head>

<h1 align="justify" >Анкета </h1><!--Заголовок формы-->

<!--justify: строки текста выравниваются по обоим краям.-->

<fieldset style="width: 50%" align="right">

<legend>Ввод исходных данных (заголовок рамки)</legend>

<body bgcolor=><!--по умолчанию белый фон формы-->

<?PHP //тело PHP блока для создания и обработки формы

if (!isset($_POST[Submit]))

{

//echo "Кнопку Submit=OK еще не нажимали <br>";

//Создание формы и описание ее объектов.

print("<form action=\"Lab3.php\" method=POST>");

print("<table> <tr><td> Имя </td>");

print("<td><input type=text name=\"FirstName\" size=20></td></tr>");

print("<tr><td>Фамилия</td>");

print("<td><input type=text name=\"LastName\" size=20></td></tr>");

print("<tr><td>E-mail</td>");

print("<td><input type=text name=\"Email\" size=40></td></tr>");

print("<tr><td> Комментарий</td>");

print("<td><textarea name=\"Comments\" rows=5 cols=40></textarea></td></tr></table>");

print("<input type=submit name=\"Submit\" value=\"OK\"> ");

print("<input type=reset name=\"Reset\" value=\"Отмена-Cancel\">");

//print("<input type=reset name=\"Reset\" value=\"Cancel\">//");

print("</form>");

}

else

{//Вывод введенных данных

$FirstName=trim($_POST[FirstName]);

$iFirstName=$FirstName;

echo "Вышли из формы, нажав кнопку OK. Вывод значений переменных <br>";

$LastName=trim($_POST[LastName]);

if (empty($LastName))

{//проверка на пустое значение переменной $LastName- Фамилия

echo '$LastName Не введена. Введите Фамилию ';

exit; //выйти из программы

}

$Email=trim($_POST[Email]);

$Comments=trim($_POST[Comments]);

$Name=$FirstName." ".$LastName;

print("Ваше имя Firstname is: $FirstName <br>");

print("Ваша фамилия is: $LastName <br>");

print("Ваш e-mail is: $Email <br>");

print("В поле комментария было: $Comments <br>");

$FirstName=md5($FirstName);//шифруем имя

print("Шифрованное имя через md5(Firstname) - is $FirstName <br>");

print("Конкатенация Имени и фамилии: $Name <br>");

$Name=urlencode($Name);

print("urlencode Имени и фамилии: $Name <br>");

print("Click <A href=\"Lab3_1.php?Name=$Name\">here</a> здесь и будет вызвана Lab3_1.php с параметром Name=<br> $Name, ввели имя=".$iFirstName);

//Действие каждого из 6-и ниже стоящих операторов

//эквивалентно действию вышестоящего оператора

//print (" <a href=Lab3_1.php?Name=$Name> here</a> ");

//print " <a href=Lab3_1.php?Name=$Name> here</a> ";

//echo ("<br><a href='Lab3_1.php?Name=$Name'> here</a>");

//echo "<br><a href='Lab3_1.php?Name=$Name'> here</a>";

//echo "<br><a href='Lab3_1.php?Name=$Name'> См.далее</a>";

//print("Click <A href=\"http://localhost/PHP/Lab3_1.php?Name=$Name\">here</a> здесь и будет вызвана Lab3_1.php с параметром $Name, ввели имя=".$iFirstName);

}

?>

</body>

</html>

Результат програми представлений на рисунку 5.1.

Рисунок 5.1 – Результат виконання програми

При введенні даних та натисненні кнопки ОК вконається вітка програми, лістинг якої представлений вище. Результат натиснення на кнопку ОК представлений на рисунку 5.2.

Рисунок 5.2 – Результат натиснення на кнопку ОК

Якщо натиснути на посилання here то виконається інша программа, лістинг якої приведений нижче.

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title>Lab3_1</title>

</head>

<body>

<?PHP

//реакция при нажатии на ссылку HERE, см. файл Lab3.php

//$FirstName = $_GET['FirstName'];

$Name = $_GET['Name'];

$Name1=$_REQUEST['Name'];

if (isset($Name1)) // проверка переменной Name1 на ее существование

{ echo "Переменная с именем Name1 доступна и равна ".$Name1." Ее тип=".gettype($Name1);}

else

{ echo "Переменная с именем Name1 НЕ доступна через REQUEST";

echo "<br>Ее тип=".gettype($Name1);//опеделение типа переменной

} //конец if-else

// echo "<br>Полный адрес к скрипту. Исполняется скрипт - http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

echo "<br>Исполняется скрипт-http://".$_SERVER['SERVER_NAME'];

$a=$_SERVER['REQUEST_URI'];

echo "<br>Передали через адресную строку <br>".$a;

echo "<br> Метод ".$_SERVER['REQUEST_METHOD']." также передал ".$Name ; // GET

echo "<br> QUERY_STRING ".$_SERVER['QUERY_STRING'];

echo "<br> PHP_SELF=".$_SERVER['PHP_SELF'];

if (isset($_SERVER['HTTP_REFERER'])) //контроль существования переменной

{

echo "<br>Вы пришли на данную страницу с адреса: ".$_SERVER['HTTP_REFERER'];

$e = $_SERVER['HTTP_REFERER'];//http://localhost/php/Lab3.php

$d = strstr($e, '/php/');

//print "<br> d=".$d; // печатает /php/Lab3.php

$pos = strpos($d, "/php/"); //

$str=substr($d,$pos+5); //вырежет только Lab3.php

}

print("<br>Hello из $str - Имя и Фамилия: ' $Name '.Отработала ".$_SERVER['PHP_SELF']);

//print("<center> Hello из $d Имя и Фамилия: ' $Name '!!!</center>");

?>

</body>

</html>

Результат виконання натиснення на посилання here на рисунку 5.3.

Рисунок 5.3 - Результат виконання натиснення на посилання here

5.2.1.2 Використання рамок в програмі. Розробили форму лістинг та результат виконання (рис. 5.4) якої представлені нижче.

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<!--Обработчик формы в этом же файле Lab3_2.php, method=POST-->

<title>Lab3_2</title>

</head>

<body bgcolor="#f6f6f6" text="#009999" >

<h2>Использование <i><b>bgcolor</b></i> и выделение ссылки цветом</h2><!--Заголовок формы-->

<!--строки текста прижаты по умолчанию, т.е. влево-->

<!--Шрифтовые элементы (font elements) - физическая разметка текста

Шрифтовые элементы это: TT "телетайпный" текст, т.е. текст одного размера

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>

Рисунок 5.4 – Результат виконання програми

Результат натиснення на кнопку ОК показаний на рисунку 5.5.

Рисунок 5.5 - Результат натиснення на кнопку ОК

5.2.1.3 Розробили программу з використанням лише html засобів для ввода інформації. Лістинг програми та результат її виконання (рис. 5.6) показані нижче.

Рисунок 5.6 – Результат виконання програми

<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>

ВИСНОВКИ

Соседние файлы в папке ТОБД