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

Сетевые технологии. Обработка форм в рамках динамических Интернет-сайтов. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
111
} else { echo "\n<FONT color=blue><B>Запись данных в таблицу ".$tbname[$tb]." реляционной базы данных ".$dbname." успешно добав- лена!</B></FONT><BR>"; } } } } } } } } } @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);
112
// echo "\n<FONT color=blue><B>CУБД MySQL успешно подклю­чена!</B></FONT><BR>";
// Работа с реляционной базой данных global $dbname; $dbname = 'db_02'; // Подключение к реляционной базе данных $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>"; // Установка кодировки $zapkod = "SET NAMES 'utf8'"; $reskod = @mysql_query($zapkod); if (!$reskod) { // echo "\n<FONT color=red><B>Невозможно установить кодировку для реляционной базы данных ".$dbname."!</B> </FONT><BR>"; exit; } else { // echo "\n<FONT color=blue><B>Кодировка для реляционной базы данных ".$dbname." успешно установлена!</B> </FONT><BR>"; } } } ?> </BODY> </HTML>
4.1. Обработка форм динамических Интернет-страниц с сохранением
информации во взаимосвязанных таблицах реляционной базы данных
Представленная ниже программа предназначена для реализации пользовательских возможностей по обработке информации в рамках
113
взаимосвязанных таблиц реляционной базы данных за исключением таблиц-
справочников, то есть выполнения операций для добавления необходимых компонентов новой записи на основе применения визуальной формы (аналог
рис. 4) и вывода записей из таблиц в рамках единой динамической Интернет­страницы (аналог рис. 5).
Исходный код программы имеет следующий вид:
<HTML><HEAD> <?PHP // Подключение к реляционной базе данных require("podkl_02.php"); // Формирование одномерных массивов для элементов формы // Однозначный список $mods = array(); $zaptbods = "SELECT * FROM tb_ods;"; $restbods = @mysql_query($zaptbods); $rowstbods = @mysql_num_rows($restbods); $colstbods = @mysql_num_fields($restbods); if ($rowstbods==0) { // echo "\n<FONT color=red><B>Отсутствуют данные в таблице tb_ods реляционной базы данных ".$dbname."!</B></FONT>"; // echo "\n<HR color=green size=2>"; // echo "\n<DIV align=center>"; // echo "\n<FONT color=red><B>Отсутствуют данные в таблице­справочнике элементов однозначного списка!</B> </FONT>"; // echo "\n</DIV>"; } else { // echo "\n<FONT color=red><B>Успешно выбраны данные в таблице- справочнике tb_ods реляционной базы данных ". $dbname."!</B></FONT>"; // echo "\n<HR color=green size=2>"; // echo "\n<DIV align=center>"; // echo "\n<FONT color=red><B>Успешно выбраны данные в таблице­справочнике элементов однозначного списка!</B></FONT>"; // echo "\n</DIV>"; while ($rowtbods = @mysql_fetch_array($restbods)) { // Элементы однозначного списка $mods[$rowtbods[0]-1] = $rowtbods[1]; } }
114
// Множественный список $mmns = array(); $zaptbmns = "SELECT * FROM tb_mns;"; $restbmns = @mysql_query($zaptbmns); $rowstbmns = @mysql_num_rows($restbmns); $colstbmns = @mysql_num_fields($restbmns); if ($rowstbmns==0) { // echo "\n<FONT color=red><B>Отсутствуют данные в таблице tb_mns реляционной базы данных ".$dbname."!</B></FONT>"; // echo "\n<HR color=green size=2>"; // echo "\n<DIV align=center>"; // echo "\n<FONT color=red><B>Отсутствуют данные в таблице­справочнике элементов множественного списка!</B> </FONT>"; // echo "\n</DIV>"; } else { // echo "\n<FONT color=red><B>Успешно выбраны данные в таблице- справочнике tb_mns реляционной базы данных ". $dbname."!</B></FONT>"; // echo "\n<HR color=green size=2>"; // echo "\n<DIV align=center>"; // echo "\n<FONT color=red><B>Успешно выбраны данные в таблице- справочнике элементов множественного списка!</B> </FONT>"; // echo "\n</DIV>"; while ($rowtbmns = @mysql_fetch_array($restbmns)) { // Элементы однозначного списка $mmns[$rowtbmns[0]-1] = $rowtbmns[1]; } } // Однозначный выбор $modv = array(); $zaptbodv = "SELECT * FROM tb_odv;"; $restbodv = @mysql_query($zaptbodv); $rowstbodv = @mysql_num_rows($restbodv); $colstbodv = @mysql_num_fields($restbodv); if ($rowstbodv==0) { // echo "\n<FONT color=red><B>Отсутствуют данные в таблице tb_odv реляционной базы данных ".$dbname."!</B></FONT>"; // echo "\n<HR color=green size=2>";
115
// echo "\n<DIV align=center>"; // echo "\n<FONT color=red><B>Отсутствуют данные в таблице­справочнике элементов однозначного выбора!</B> </FONT>"; // echo "\n</DIV>"; } else { // echo "\n<FONT color=red><B>Успешно выбраны данные в таблице­справочнике tb_odv реляционной базы данных ". $dbname."!</B></FONT>"; // echo "\n<HR color=green size=2>"; // echo "\n<DIV align=center>"; // echo "\n<FONT color=red><B>Успешно выбраны данные в таблице­справочнике элементов однозначного выбора!</B> </FONT>"; // echo "\n</DIV>"; while ($rowtbodv = @mysql_fetch_array($restbodv)) { // Элементы однозначного выбора $modv[$rowtbodv[0]-1] = $rowtbodv[1]; } } // Множественный выбор $mmnv = array(); $zaptbmnv = "SELECT * FROM tb_mnv;"; $restbmnv = @mysql_query($zaptbmnv); $rowstbmnv = @mysql_num_rows($restbmnv); $colstbmnv = @mysql_num_fields($restbmnv); if ($rowstbmnv==0) { // echo "\n<FONT color=red><B>Отсутствуют данные в таблице tb_mnv реляционной базы данных ".$dbname."!</B></FONT>"; // echo "\n<HR color=green size=2>"; // echo "\n<DIV align=center>"; // echo "\n<FONT color=red><B>Отсутствуют данные в таблице­справочнике элементов множественного выбора!</B> </FONT>"; // echo "\n</DIV>"; } else { // echo "\n<FONT color=red><B>Успешно выбраны данные в таблице­справочнике tb_mnv реляционной базы данных ". $dbname."!</B></FONT>"; // echo "\n<HR color=green size=2>";
116
// echo "\n<DIV align=center>"; // echo "\n<FONT color=red><B>Успешно выбраны данные в таблице- справочнике элементов множественного выбора!</B> </FONT>"; // echo "\n</DIV>"; while ($rowtbmnv = @mysql_fetch_array($restbmnv)) { // Элементы однозначного выбора $mmnv[$rowtbmnv[0]-1] = $rowtbmnv[1]; } } // Формирование директории для хранения загружаемых файлов $dirs = "files_reltb"; 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>
117
<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> <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>
118
</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"; } ?> </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++)
119
{ 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
// Добавление новой записи во взаимосвязанные таблицы реляционной
базы данных db_02
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); // Получение данных из поля пароля settype($_POST['ps'], string); $addps = trim(strip_tags($_POST['ps'])); // Получение данных из поля адреса Интернет-сайта settype($_POST['st'], string); $addst = trim(strip_tags($_POST['st'])); // Получение данных из поля адреса электронной почты settype($_POST['et'], string); $addet = trim(strip_tags($_POST['et'])); // Получение данных из поля номера телефона settype($_POST['tl'], string); $addtl = trim(strip_tags($_POST['tl'])); // Получение данных о выборе даты settype($_POST['dtv'], string); $adddtv = trim(strip_tags($_POST['dtv'])); // Получение данных о выборе времени
120
settype($_POST['ttv'], string); $addttv = trim(strip_tags($_POST['ttv'])); // Получение данных о выборе цвета settype($_POST['clv'], string); $addclv = trim(strip_tags($_POST['clv'])); // Получение данных о загружаемом файла if ($_FILES['flv']['name']!="") { settype($_FILES['flv']['name'], string); $addflv = $_FILES['flv']['name']; if (@copy(iconv('utf-8','windows-1251',$_FILES['flv'] ['tmp_name']), $dirs."/".iconv('utf-8','windows-1251',$addflv))) { // echo "\n<FONT color=blue><B>Файл ".$addflv." успешно загружен!</B></FONT>"; } else { // echo "\n<FONT color=red><B>Файл ".$addflv." невозможно загрузить!</B></FONT>"; $addflv = ""; } @unlink($_FILES['flv']['tmp_name']); } // Получение данных из однозначного списка $vods = 0; for ($i=0;$i<count($_POST['ods']);$i++) { $vods++; settype($_POST['ods'][$i], integer); $iods = $_POST['ods'][$i]+1; } // Получение данных из множественного списка $vmns = 0; $imns = array(); for ($i=0;$i<count($_POST['mns']);$i++) { $vmns++; settype($_POST['mns'][$i], integer); $imns[$i] = $_POST['mns'][$i]+1; } // Получение данных из однозначного выбора $vodv = 0;
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]