МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ХАРЬКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
РАДІОЕЛЕКТРОНІКИ
Кафедра ТАВР
Звіт
з лабораторної роботи №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>
ВИСНОВКИ