Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сетевые технологии. Обработка форм в рамках динамических Интернет-сайтов. Учебное пособие
.pdf
61
3. Алгоритмы обработки информации в формах динамических Интернет-
страниц с сохранением информации в таблице базы данных
В данной главе по аналогии с первой главой представлено описание про-
грамммных компонентов, реализующих алгоритмы обработки информации
различных визуальных элементов форм, представленных в рамках динамических Интернет-сайтов, однако сохранение получаемых в процессе обработки
информации на сервере результатов, представленных в виде массива данных,
осуществляется в рамках единой таблицы базы данных. Подобная схема орга-
низации обработки данных способствует реализации более высокого уровня
выдвигаемых требований к безопасности хранимой на сервере информации.
Ниже представлен программный код программы для создания базы данных,
одной таблицы и заполнения данной таблицы двумя произвольными записями,
которые аналогичны по своей структуре строкам данных в рамках текстового
файла, работа с которым отражена в первой главе учебного пособия.
<HTML><HEAD>
<?PHP
// Подключение с CУБД MySQL
$Host = "localhost";
$User = "root";
$Password = "";
if (!@mysql_connect($Host, $User, $Password))
{
echo "\n<FONT color=red><B>CУБД MySQL не может быть
подключена!</B></FONT><BR>";
exit;
}
else
{
$MyLink = @mysql_connect($Host, $User, $Password);
echo "\n<FONT color=blue><B>CУБД MySQL успешно подклю-
чена!</B></FONT><BR>";
// Работа с базой данных
$dbname = 'db_01';
// Удаление базы данных если она существует
$zapdb01 = "DROP DATABASE IF EXISTS ".$dbname.";";
$resdb01 = @mysql_query($zapdb01);
if (!$resdb01)
{
echo "\n<FONT color=red><B>База данных ".$dbname." не может быть
удалена или отсутствует!</B></FONT><BR>";
exit;

62
}
else
{
echo "\n<FONT color=blue><B>База данных ".$dbname." успеш-
но удалена!</B></FONT><BR>";
// Создание базы данных
$zapdb02 = "CREATE DATABASE ".$dbname." DEFAULT CHARACTER
SET 'utf8';";
$resdb02 = @mysql_query($zapdb02);
if (!$resdb02)
{
echo "\n<FONT color=red><B>База данных ".$dbname." не может
быть создана!</B></FONT><BR>";
exit;
}
else
{
echo "\n<FONT color=blue><B>База данных ".$dbname." успешно со-
здана!</B></FONT><BR>";
// Подключение к базе данных
$zapdb03 = "USE ".$dbname.";";
$resdb03 = @mysql_query($zapdb03);
if (!$resdb03)
{
echo "\n<FONT color=red><B>Невозможно подключить базу данных
".$dbname."!</B></FONT><BR>";
exit;
}
else
{
echo "\n<FONT color=blue><B>База данных ".$dbname." успешно
подключена!</B></FONT><BR>";
// Работа с таблицей в базе данных
$tbname = 'tb_01';
// Удаление таблицы в базе данных если она существует
$zaptb01 = "DROP TABLE IF EXISTS ".$tbname.";";
$restb01 = @mysql_query($zaptb01);
if (!$restb01)
{
echo "\n<FONT color=red><B>Таблица ".$tbname." в базе данных
".$dbname." не может быть удалена или отсутствует!</B></FONT><BR>";
}

63
else
{
echo "\n<FONT color=blue><B>Таблица ".$tbname." в базе данных
".$dbname." успешно удалена!</B></FONT><BR>";
// Создание таблицы в базы данных с указанием структуры
$zaptb02 = "CREATE TABLE ".$tbname."
(
tbkod serial comment 'Код записи',
tbhdn varchar(255) comment 'Скрытый элемент',
tbtp varchar(255) comment 'Текстовое поле',
tbto mediumtext comment 'Текстовая область',
tbps varchar(255) comment 'Поле пароля',
tbst varchar(255) comment 'Поле адреса Интернет-сайта',
tbet varchar(255) comment 'Поле адреса электронной почты',
tbtl char(14) comment 'Поле номера телефона',
tbdtv date comment 'Выбор даты',
tbttv time comment 'Выбор времени',
tbclv varchar(255) comment 'Выбор цвета',
tbflv varchar(255) comment 'Загрузка файла',
tbods int comment 'Однозначный список',
tbmns varchar(255) comment 'Множественный список',
tbodv int comment 'Однозначный выбор',
tbmnv varchar(255) comment 'Множественный выбор',
primary key (tbkod)
) ENGINE = InnoDB CHARACTER SET = 'utf8';";
$restb02 = @mysql_query($zaptb02);
if (!$restb02)
{
echo "\n<FONT color=red><B>Таблица ".$tbname." в базе данных
".$dbname." не может быть создана!</B></FONT> <BR>";
}
else
{
echo "\n<FONT color=blue><B>Таблица ".$tbname." в базе данных
".$dbname." успешно создана!</B></FONT><BR>"; // Удаление
записей из таблицы базы данных
$zaptb03 = "DELETE FROM ".$tbname.";";
$restb03 = @mysql_query($zaptb03);
if (!$restb03)
{
echo "\n<FONT color=red><B>Записи данных из таблицы
".$tbname." базы данных ".$dbname." не могут быть
удалены!</B></FONT><BR>";

64
}
else
{
echo "\n<FONT color=blue><B>Записи данных из таблицы
".$tbname." базы данных ".$dbname." успешно
удалены!</B></FONT><BR>";
// Добавление записи в таблицу базы данных
$zaptb04 = "INSERT INTO ".$tbname."
(
tbkod, tbhdn, tbtp, tbto, tbps, tbst, tbet, tbtl, tbdtv, tbttv, tbclv, tbflv,
tbods, tbmns, tbodv, tbmnv
)
VALUES
(
NULL, '18-06-2018 13:45', 'Иванов Иван', 'Первое письмо Ивано-
ва Ивана!##Добро пожаловать##Доброе утро!', 'reW3Q65z3',
'https://www.ivanov_ivan.com', 'ivanov_ivan@mail.ru', '8-905-456-7890',
'2018-07-13', '08:37:00', '#f4a5d7', 'Иванов Иван Мой файл.pdf', '3', '0##2',
'1', '0##2##3'
),
(
NULL, '30-06-2018 10:34', 'Петров Петр', 'Приветственное пись-
мо Петрова Петра!##Добро пожаловать##Доброе утро!',
'reW3Q65z3', 'https://www.petrov_01.ru', 'petrov001@yandex.ru', '8-960-0015346', '2018-08-11', '11:03:00', '#ffd5ee', 'Резюме Петрова П.П..pdf', '1',
'0##1##3', '2', '0##1');";
$restb04 = @mysql_query($zaptb04);
if (!$restb04)
{
echo "\n<FONT color=red><B>Запись данных в таблицу
".$tbname." базы данных ".$dbname." не может быть
добавлена!</B></FONT><BR>";
}
else
{
echo "\n<FONT color=blue><B>Запись данных в таблицу
".$tbname." базы данных ".$dbname." успешно
добавлена!</B></FONT><BR>";
}
}
}
}
}

65
}
}
}
@mysql_close($MyLink);
?>
</BODY>
</HTML>
Необходимо отметить, что для работы с записями в рамках таблицы необходимо ссылаться из программы пользователя или администратора на внешний
программный файл, в котором прописаны параметры подключения к таблице
базы данных, что отражено в исходном коде данного файла ниже.
<HTML><HEAD>
<?PHP
// Установка кодировки
//$zapkod = "SET NAMES 'cp1251'";
//$reskod = @mysql_query($zapkod);
// Подключение с CУБД MySQL
$Host = "localhost";
$User = "root";
$Password = "";
if (!@mysql_connect($Host, $User, $Password))
{
// echo "\n<FONT color=red><B>CУБД MySQL не может быть подключе-
на!</B></FONT><BR>";
// exit;
}
else
{
$MyLink = @mysql_connect($Host, $User, $Password);
// echo "\n<FONT color=blue><B>CУБД MySQL успешно подклю-
чена!</B></FONT><BR>";
// Работа с базой данных
global $dbname;
$dbname = 'db_01';
// Подключение к базе данных
$zapdb03 = "USE ".$dbname.";";
$resdb03 = @mysql_query($zapdb03);
if (!$resdb03)
{
// echo "\n<FONT color=red><B>Невозможно подключить базу данных
".$dbname."!</B></FONT><BR>";
exit;
}

66
else
{
// echo "\n<FONT color=blue><B>База данных ".$dbname." успешно
подключена!</B></FONT><BR>";
// Установка кодировки
$zapkod = "SET NAMES 'utf8'";
$reskod = @mysql_query($zapkod);
if (!$reskod)
{
// echo "\n<FONT color=red><B>Невозможно установить кодировку
для базы данных ".$dbname."!</B></FONT><BR>";
}
else
{
// echo "\n<FONT color=blue><B>Кодировка для базы данных
".$dbname." успешно установлена!</B></FONT><BR>";
}
}
}
?>
</BODY>
</HTML>
В рамках данной главы ниже представлены пользовательская программа с
возможностями просмотра имеющейся в таблице базы данных информации и
добавления новых записей данных в таблицу базы данных и администраторская
программа, подразумевающая в дополнение к пользовательским возможностям
реализацию механизмов изменения или удаления произвольно выбираемых администратором записей, представленных в рамках единой таблицы базы данных.
3.1. Обработка форм динамических Интернет-страниц с сохранением
информации в таблице базы данных
Представленная ниже программа предназначена для реализации пользова-
тельских возможностей обработки информации в рамках единой таблицы базы
данных, то есть выполнения операций по добавлению новой записи в таблицу
базы данных на основе применения визуальной формы (аналог рис. 4) и вывода
записей из рассматриваемой таблицы в рамках единой динамической Интернетстраницы (аналог рис. 5).
Исходный код программы имеет следующий вид:

67
<HTML><HEAD>
<?PHP
// Формирование одномерных массивов для элементов формы
// Однозначный список
$mods = array();
$mods[0] = "Вариант 11";
$mods[1] = "Вариант 12";
$mods[2] = "Вариант 13";
$mods[3] = "Вариант 14";
// Множественный список
$mmns = array();
$mmns[0] = "Вариант 21";
$mmns[1] = "Вариант 22";
$mmns[2] = "Вариант 23";
$mmns[3] = "Вариант 24";
// Однозначный выбор
$modv = array();
$modv[0] = "Вариант 31";
$modv[1] = "Вариант 32";
$modv[2] = "Вариант 33";
$modv[3] = "Вариант 34";
// Множественный выбор
$mmnv = array();
$mmnv[0] = "Вариант 41";
$mmnv[1] = "Вариант 42";
$mmnv[2] = "Вариант 43";
$mmnv[3] = "Вариант 44";
// Формирование директории для хранения загружаемых файлов
$dirs = "files_tb";
if (@!opendir($dirs)) {mkdir($dirs, 0666);}
// Подключение к базе данных
require("podkl_01.php");
$tbname = "tb_01";
?>
<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)
{

68
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">
<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>

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

70
}
?>
</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>
<TD><INPUT type=submit name=add value="Добавление
данных"></INPUT></TD>
<TD><INPUT type=reset value="Отмена"></INPUT></TD></TR>
</TABLE></FORM>
</DIV>
<?PHP
// Добавление новой записи данных в таблицу tb_01 базы данных db_01
if (isset($_POST['add']))
{
// Получение данных из скрытого элемента
settype($_POST['hdn'], string);
$addhdn = trim(strip_tags($_POST['hdn']));
// Получение данных из текстового поля
settype($_POST['tp'], string);
$addtp = trim(strip_tags($_POST['tp']));
// Получение данных из текстовой области
settype($_POST['to'], string);
$addto = trim(strip_tags($_POST['to']));
$addto = str_replace("\r\n","##",$addto);
// Получение данных из поля пароля
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
