КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Тема №3. Создание формы и РНР-сценария в одном файле
Цель работы: Получение навыков и понимание взаимосвязанной работы формы и ее обработки. Обработка форм Все данные, которые Вы хотите получить из HTML-формы в PHP сценарий обрабатываются с помощью суперглобальных массивов $_POST или $_GET, в зависимости от указанного в атрибуте method метода передачи данных. Задание 1: Получение данных из текстового поля Вам необходимо получить данные из текстового поля и многострочного поля ввода и передать их сценарию. Решение: Необходимо создать HTML форму и PHP – сценарий для обработки формы. Создадим два файла: form.html и action.php. В файле form.html будет содержаться html-форма с текстовым полем mytext и текстовой областью msg:
<form action="action.php" name="myform" method="post"> <input type="text" name="mytext" size="50"> <textarea name="msg" cols="20" rows=”10” ></textarea> <input name="Submit" type=submit value="Отправить данные"> </form>
В этой html-форме нас интересует три элемента: action, который указывает путь к обработчику формы (action.php), имя текстового поля (mytext) и имя многострочного поля вода (msg). Также в форме присутствует кнопка (Submit), при нажатии на которую, происходит передача данных.
После того как html-форма готова, необходимо создать обработчик формы action.php:
<?php $text = $_POST['mytext']; $msg = $_POST['mytext']; echo $text; // Выводим содержимое текстового поля ?>
После того как мы введем любые значение в текстовые поля и нажмем на кнопку "Отправить данные" html-форма отправит значения сценарию action.php. После этого в переменных $text и $msg будут содержаться значения текстового поля и многострочного поля ввода соответственно, значения которых взяты из суперглобальных переменных $_POST.
Если вы хотите, чтобы в многострочном текстовом поле соблюдалось html-форматирование, то используйте функцию nl2br():
<?php $text = nl2br($_POST['mytext']); ?>
Задание 1.: Разработать приложение, в котором: Создается форма ввода (см. рис. 3.11.) помощью программы Lab3.php (см. рис. 3.12.) для введения пользователем данных: · Имени; · Фамилии; · Адреса электронной почты; · Текста - комментария. Информация указанных данных должна быть охвачена рамкой (fieldset).
Введенные данные обабатываются этим же PHP-сценарием Lab3.php (при нажатии кнопки “OK” или Enter на поле ввода). В программе показана реализация ограничения, требующего обязательного ввода значения поля Фамилия. Если поле Фамилия будет означено и нажата кнопка “OK”, то необходимо вызвать программу Lab3_1.php, в которую необходимо передать зашифрованную информацию. Lab3_1.php должна отобразить данные в окне браузера.
Рис. 3.11. Форма созданная с помощью программы Lab3.php с введенными данными.
Исходный код программы Lab3.php создающий форму средствами 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 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> Рис. 3.12. Код программы Lab3.php для создания формы. Прим. HTML код на рис. 3.12. показан мелким жирным шрифтом. Если пользователь введет данные (как показано на рис. 3.11) и нажмет кнопку “OK”, то вновь будет вызвана программа Lab3.php, но в ней сработает ветка else {//Вывод введенных данных и на экран будет выведена следующая информация (рис. 3.13)
Рис. 3.13. Результат обработки события “OK” при вводе значений данных как показано на рис. 3.11.
Если Пользователь использует
Программа Lab3_1.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_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> Рис. 3.14. Исходный код программы Lab3_1.php – обработка ссылки.
Рамка (fieldset) Объект fieldset позволяет вам нарисовать рамку вокруг объектов. Имеет закрывающий тэг </fieldset>. Заголовок указывается в тэгах <legend></legend>. Основное назначение объекта – задавание различных стилей оформления.
Например: <fieldset> <legend>Программное обеспечение (заголовок рамки)</legend> Текст, который будет помещен внутри рамки.</fieldset >
Рис. 3.15. Результат работы программы Lab3_1.php – обработка ссылки.
Задание 2. Использование рамок в приложении Разработать приложение в котором создается форма ввода, испоющая рамку (см. рис. 3.16.).
Рис. 3.16. Пример формы ввода на экране. Программа Lab3_2.php (рис. 3.17) подготавливает форму для ввода информации: · Имени; · Фамилии; · Текста - комментария. Информация указанных данных должна быть охвачена рамкой (fieldset) и выделена цветом отличным от стандартного цвета браузера.
Введенные данные обабатываются этим же PHP-сценарием Lab3_2.php (при нажатии кнопки “OK”). В программе показано реализация ограничения, требующего обязательного ввода значения поля Фамилия. Если поле Фамилия будет означено и нажата кнопка “OK” (рис. 3.17),
Рис. 3.17. Пример ввода значения фамилии. то необходимо вызвать программу Lab3_2.php, в которой необходимо вывести на экран информацию в виде, показанном на рис. 3.18.
Рис. 3.18. Пример вывода введенных значений.
Исходный код программы, реализующий обработку и вывод информации на экран, показанный на рис. 3.17, 3.18 и 3.20 приведен на рис. 3.19 (мелким шрифтом показан текст относящийся к HTML коду).
<!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" /> <!--Обработчик формы в этом же файле 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 "телетайпный" текст, т.е. текст одного размера
Дата добавления: 2014-12-07; Просмотров: 999; Нарушение авторских прав?; Мы поможем в написании вашей работы! |