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

metoda / Ml_ITIn_2013

.pdf
Скачиваний:
17
Добавлен:
16.03.2016
Размер:
6.66 Mб
Скачать

71

Если вы хотите, чтобы в многострочном текстовом поле соблюдалось 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 с введенными данными.

72

Исходный код программы 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;

73

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, но в ней сработает ветка

74

else

{//Вывод введенных данных и на экран будет выведена следующая информация (рис. 3.13)

Рис. 3.13. Результат обработки события ―OK‖ при вводе значений данных как показано на рис. 3.11.

Если Пользователь использует (см. рис. 3.13), то будет вызвана программа Lab3_1.php, код которой приведен на рис. 3.14., а результат представлен на рис. 3.15.

Программа 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'];

75

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>. Основное назначение объекта – задавание различных стилей оформления.

Например:

76

<fieldset>

<legend>Программное обеспечение (заголовок рамки)</legend> Текст, который будет помещен внутри рамки.</fieldset>

Рис. 3.15. Результат работы программы Lab3_1.php – обработка ссылки.

Задание 2. Использование рамок в приложении

Разработать приложение в котором создается форма ввода, испоющая рамку (см. рис. 3.16.).

Рис. 3.16. Пример формы ввода на экране.

Программа Lab3_2.php (рис. 3.17) подготавливает форму для ввода информации:

Имени;

Фамилии;

77

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

Информация указанных данных должна быть охвачена рамкой (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-->

78

<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'];

79

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>");//вывод атрибута на экран

80

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>");

Соседние файлы в папке metoda