-->
<!--<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>
Учтите, что этот вариант создает определенные неудобства, поскольку при повторной загрузке страницы пользователь ничего не узнает о том, правильно ли были заполнены поля формы. Процедура проверки ошибок рассматривается далее в, а пока достаточно запомнить, что ввод данных можно осуществить при помощи одного сценария.