Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сетевые технологии. Обработка форм в рамках динамических Интернет-сайтов. Учебное пособие
.pdf
21
$razd = "-";
$obrgod = substr($obrdtv,0,strpos($obrdtv,$razd));
$obrmes = substr($obrdtv,(strpos($obrdtv,$razd)+1),strpos(substr($obrdtv,(strpos($obrdtv,$r
azd)+1)),$razd));
$obrday = substr($obrdtv,(strpos($obrdtv,$razd)+strpos(substr($obrdtv,(strpos($obrdtv,$raz
d)+1)),$razd)+2));
echo "\n<TD>".$obrday.".".$obrmes.".".$obrgod."</TD>";
}
echo "\n</TR>";
// Вывод данных о выборе времени
echo "\n<TR valign=top align=left bgcolor=#E0FFFF>";
echo "\n<TD>Выбор времени</TD>";
settype($obrttv, string);
if ($obrttv=="")
{
echo "\n<TD>Информация о выборе времени отсутствует!</TD>";
}
else
{
echo "\n<TD>".$obrttv."</TD>";
}
echo "\n</TR>";
// Вывод данных о выборе цвета
echo "\n<TR valign=top align=left bgcolor=#FFFFFF>";
echo "\n<TD>Выбор цвета</TD>";
settype($obrclv, string);
if ($obrclv=="")
{
echo "\n<TD>Информация о выборе цвета отсутствует!</TD>";
}
else
{
echo "\n<TD><FONT color=\"".$obrclv."\">".$obrclv."</FONT></TD>";
}
echo "\n</TR>";
// Вывод данных о выборе файла
echo "\n<TR valign=top align=left bgcolor=#E0FFFF>";
echo "\n<TD>Загрузка файла</TD>";
settype($obrflv, string);
if ($obrflv=="")
{

22
echo "\n<TD>Информация о выборе файла отсутствует!</TD>";
}
else
{
if (file_exists(iconv('utf-8','windows-1251',$dirs."/".$obrflv)))
{
echo "\n<TD><A href=\"".$dirs."/".$obrflv."\" target=\"_blank\">".$obrflv."</A> (".(round(filesize($dirs."/".iconv('utf-8','windows1251',$obrflv))/(1024*1024),2))." Мб)</TD>";
}
else
{
echo "\n<TD>Файл ".$obrflv." не доступен</TD>";
}
}
echo "\n</TR>";
// Вывод данных из однозначного списка
echo "\n<TR valign=top align=left bgcolor=#FFFFFF>";
echo "\n<TD>Однозначный список</TD>";
settype($obrods, integer);
if ($obrods==-1)
{
echo "\n<TD>Не выделен элемент однозначного списка</TD>";
}
else
{
echo "\n<TD>".$mods[$obrods]."</TD>";
}
echo "\n</TR>";
// Вывод данных из множественного списка
echo "\n<TR valign=top align=left bgcolor=#E0FFFF>";
echo "\n<TD>Множественный список</TD>";
settype($obrmns, string);
if ($obrmns=="-1")
{
echo "\n<TD>Не выделены элементы множественного списка</TD>";
}
else
{
echo "\n<TD>";
$fmns = explode("##", $obrmns);
for ($j = 0; $j<count($fmns); $j++)
{

23
settype($fmns[$j], integer);
echo $mmns[$fmns[$j]];
if ($j!=count($fmns)-1)
{
echo "<BR>";
}
}
echo "</TD>";
}
echo "\n</TR>";
// Вывод данных из однозначного выбора
echo "\n<TR valign=top align=left bgcolor=#FFFFFF>";
echo "\n<TD>Однозначный выбор</TD>";
settype($obrodv, integer);
if ($obrodv==-1)
{
echo "\n<TD>Не выделен элемент однозначного выбора</TD>";
}
else
{
echo "\n<TD>".$modv[$obrodv]."</TD>";
}
echo "\n</TR>";
// Вывод данных из множественного выбора
echo "\n<TR valign=top align=left bgcolor=#E0FFFF>";
echo "\n<TD>Множественный выбор</TD>";
settype($imnv, string);
if ($imnv=="-1")
{
echo "\n<TD>Не выделены элементы множественного выбора</TD>";
}
else
{
echo "\n<TD>";
$fmnv = explode("##", $obrmnv);
for ($j = 0; $j<count($fmnv); $j++)
{
settype($fmnv[$j], integer);
echo $mmnv[$fmnv[$j]];
if ($j!=count($fmnv)-1)
{
echo "<BR>";
}

24
}
echo "</TD>";
}
echo "\n</TABLE>";
echo "\n</DIV>";
}
?>
<HR color=green size=2>
</BODY>
</HTML>

25
2. Алгоритмы обработки информации в формах динамических Интернетстраниц с сохранением информации в текстовом файле
В данной главе представлено детальное описание программных компонен-
тов, реализующих алгоритмы обработки информации различных визуальных
элементов форм, представленных на динамических Интернет-сайтах, в процессе обмена информацией между удаленным клиентом и сервером. Сохранение
получаемых в процессе обработки информации на сервере результатов, осу-
щестляется в виде последовательности строк в рамках текстовых файлов. По-
добная схема организации обработки данных может применяться, например,
при реализации гостевых книг, новостей, прайс-листов и других подобных информационных структур, не предъявляющих значительных требований к безопасности хранимой на сервере информации. Представлены пользовательская
программа с возможностями просмотра имеющейся в текстовом файле информации и добавления новых строк данных в текстовый файл и администратор-
ская программа, подразумевающая в дополнение к пользовательским возможностям реализацию механизмов изменения и удаления произвольно выбирае-
мых администратором строк данных, представленных в рамках текстового файла данных.
2.1. Обработка форм динамических Интернет-страниц с сохранением
информации в текстовом файле
Представленная ниже программа предназначена, во-первых, для реализации
наглядных форм в рамках динамических Интернет-сайтов с использованием
различных по структуре и функциональным особенностям визуальных
компонентов элементов управления (рис. 4), во-вторых, для обработки
получаемого в процессе отправки удаленным клиентом на сервер массива
данных, формируемого на основе программной обработки информации для
каждого из компонента формы, с последующим сохранением результирующей
информации в виде новой строки данных в рамках текстового файла, и, втретьих, для отображения содержимого файла в рамках единой динамической
Интернет-страницы (рис. 5). Обработка значений исходных данных
осуществляется в процессе реализации события, заключающегося в нажатии
кнопки отправки данных на сервер, при этом обработка информации для
элементов однозначного и множественного списков и выбора осуществляется с
применением одномерных массивов.
Исходный код программы имеет следующий вид:
<HTML><HEAD>
<?PHP
// Формирование одномерных массивов для элементов формы
// Однозначный список
$mods = array();
$mods[0] = "Вариант 11";
$mods[1] = "Вариант 12";

26
$mods[2] = "Вариант 13";
$mods[3] = "Вариант 14";
// Множественный список
$mmns = array();
$mmns[0] = "Вариант 21";
$mmns[1] = "Вариант 22";
$mmns[2] = "Вариант 23";
$mmns[3] = "Вариант 24";
Рисунок 4. Формирование значений исходных данных на форме в рамках
динамической Интернет-страницы

27
Рисунок 5. Вывод результатов обработки формы и содержимого текстового
файла на Интернет-странице
// Однозначный выбор
$modv = array();
$modv[0] = "Вариант 31";
$modv[1] = "Вариант 32";
$modv[2] = "Вариант 33";
$modv[3] = "Вариант 34";

28
// Множественный выбор
$mmnv = array();
$mmnv[0] = "Вариант 41";
$mmnv[1] = "Вариант 42";
$mmnv[2] = "Вариант 43";
$mmnv[3] = "Вариант 44";
// Формирование директории для хранения загружаемых файлов
$dirs = "files_fl";
if (@!opendir($dirs)) { mkdir($dirs, 0666); }
?>
<SCRIPT type="text/javascript" language=JavaScript>
function prfl(zagr)
{
max_size = "<? echo(ini_get('upload_max_filesize')); ?>";
max_size_mb = Math.round(max_size.substr(0,(max_size.length-1))
*100)/100;
zagr_size_mb = Math.round((zagr.files[0].size/(1024*1024))*100) /100;
if (zagr_size_mb>max_size_mb)
{
soob = "Ошибка загрузки файла!";
soob = soob+"\nРазмер загружаемого файла "+zagr_size_mb +"
Мбайт";
soob = soob+"\nМаксимальный размер файла "+max_size_mb +"
Мбайт";
soob = soob+"\nВыберите файл меньшего размера!";
alert(soob);
zagr.value = "";
zagr.focus();
}
}
</SCRIPT>
<TITLE>Обработка форм динамических Интернет-страниц с
сохранением информации в текстовом файле</TITLE>
</HEAD>
<BODY>
<HR color=green size=2>
<DIV align=center>
<FONT color=blue><B>Вывод формы исходных данных для добавления
строки данных в текстовый файл</B></FONT>
</DIV>
<HR color=green size=2>
<DIV align=justify>
<FORM name=fnam method=post enctype="multipart/form-data">

29
<TABLE border=1 bordercolor=green cellspacing=0>
<TR valign=top>
<TD>Скрытый элемент</TD>
<TD><INPUT type=hidden name=hdn value="<? echo
date("d").".".date("m").".".date(Y)." ".date("H:i:s") ?>"></INPUT> </TD>
</TR>
<TR valign=top>
<TD>Текстовое поле</TD>
<TD><INPUT type=text name=tp value=""></INPUT></TD>
</TR>
<TR valign=top>
<TD>Текстовая область</TD>
<TD><TEXTAREA rows=6 cols=40 name=to></TEXTAREA> </TD>
</TR>
<TR valign=top>
<TD>Поле пароля</TD>
<TD><INPUT type=password name=ps value=""></INPUT></TD>
</TR>
<TR valign=top>
<TD>Поле адреса Интернет-сайта (https://www.xxx.xxx)</TD>
<TD><INPUT type=url name=st value=""></INPUT></TD>
</TR>
<TD>Поле адреса электронной почты (xxx@xxx.xxx)</TD>
<TD><INPUT type=email name=et value=""></INPUT></TD>
</TR>
<TR valign=top>
<TD>Поле номера телефона (8-999-999-9999)</TD>
<TD><INPUT type=tel name=tl pattern="8-[0-9]{3}-[0-9]{3}-[0-9]{4}"
value=""></INPUT></TD>
</TR>
<TR valign=top>
<TD>Выбор даты</TD>
<TD><INPUT type=date name=dtv></INPUT></TD>
</TR>
<TD>Выбор времени</TD>
<TD><INPUT type=time name=ttv></INPUT></TD>
</TR>
<TR valign=top>
<TD>Выбор цвета</TD>
<TD><INPUT type=color name=clv></INPUT></TD>
</TR>
<TR valign=top>
<TD>Загрузка файла</TD>

30
<TD><INPUT type=file name=flv onchange="prfl(flv);"></INPUT> </TD>
</TR>
<TR valign=top>
<TD>Однозначный список</TD>
<TD><SELECT name=ods[]>
<OPTION value=-1>Выберите элемент однозначного списка </OPTION>
<?PHP
for ($i=0;$i<count($mods);$i++)
{
echo "<OPTION value=".$i.">".$mods[$i]."</OPTION>\n";
}
?>
</SELECT></TD></TR>
<TR valign=top>
<TD>Множественный список</TD>
<TD><SELECT name=mns[] multiple>
<?PHP
for ($i=0;$i<count($mmns);$i++)
{
echo "<OPTION value=".$i.">".$mmns[$i]."</OPTION>\n";
}
?>
</SELECT></TD></TR>
<TR valign=top><TD>Однозначный выбор</TD><TD>
<?PHP
for ($i=0;$i<count($modv);$i++)
{
echo "<INPUT type=radio name=odv[] value=".$i.">".$modv[$i].
"</INPUT><BR>\n";
}
?>
</TD></TR>
<TR valign=top>
<TD>Множественный выбор</TD><TD>
<?PHP
for ($i=0;$i<count($mmnv);$i++)
{
echo "<INPUT type=checkbox name=mnv[] value=".$i.">".
$mmnv[$i]."</INPUT><BR>\n";
}
?>
</TD></TR>
<TR align=center>
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
