
МУ по РСОИ
.pdf
Указания по выполнению практических работ по дисциплине «Распределенные
системы обработки информации»
Для работы нам понадобятся программы OpenServer и Notepad++.
В каталоге «html» установленной программы создадим папку «studyphp.ru» и в ней корневой каталог для нашего сайта с названием «www». В дальнейшем все файлы и каталоги будем создавать в нём.
Для более удобного доступа к выполняемым работам на стартовой странице проекта (index.html) будем размещать ссылки на эти работы и их краткое описание.
Создадим файл «index.html». Откроем его на редактирование с помощью программы
Notepad++ и наберем следующий текст.
<html>
<head>
<title>Практические работы по дисциплине РСОИ Иванова Ивана </title>
</head>
<body>
<p>Здесь представлены работы, выполненные на практических занятиях по дисциплине
"Распределенные системы обработки информации" студента группы АИС-10 Иванова Ивана Николаевича.
<dl>
<dt><a href="phpinfo.php">Версия PHP</a></dt>
<dd>Вызывается функция phpinfo, которая возвращает информацию об интерпретаторе php, установленном в данном http-сервере.</dd>
</dl>
</body>
</html>
При выполнении работы необходимо указать свою группу и свою фамилию, имя и отчество.
Список ссылок оформляем в виде списка определений. Ссылки на другие работы оформляем аналогичным образом.
В приведенном списке уже указана ссылка на первую работу.
Работа №1.
В данной работе выведем информацию об интерпретаторе PHP, используемом в
OpenServere.

Создайте файл «phpinfo.php». Откройте на редактирование с помощью программы
Notepad++. Наберите следующий текст.
<?php
echo "<p><a href='index.html'>К содержанию</a>"; phpinfo();
?>
В данном коде «<?php» и «?>» используются для обрамления скрипта на языке
PHP.
С помощью данной команды «echo "<p><a href='index.html'>К содержанию</a>";»
мы добавляем в документ ссылку на главную страницу оформленную с помощью элементов гипертекстовой разметки.
Функция «phpinfo();» возвращает информацию об интерпретаторе PHP.
Откройте программу Openserver, если она не была открыта и запустите сервер, если она была открыта, и был запущен сервер, то перезапустите его. В списке сайтов появится созданный нами проект. Выберите его. Откроется браузер, используемый по умолчанию,
и вы увидите следующее (рисунок 1).
Рисунок 1 Главная страница проекта.
Перейдя по ссылке на первую работу вы увидите следующее (рисунок 2).

Рисунок 2 Работа №1
Работа №2
В данной работе рассмотрим использование простых математических функций, использование переменных и организуем вывод результатов.
Создайте файл «work2.php» и добавьте в него следующий код.
<?php
echo "<p><a href='index.html'>К содержанию</a>"; $a=10;
$b=20; $c=$a+$b;
echo "<p>a=".$a; echo "<p>b=".$b; echo "<p>a+b=".$c; echo "<p>$a+$b=$c"; echo '<p>$a+$b=$c';
echo "<p>$a+$b=".($a+$b); echo "<p>$a-$b=".($a-$b); echo "<p>$a*$b=".($a*$b); echo "<p>$a/$b=".($a/$b);
?>
В данном коде следует обратить внимание на следующее. Все переменные в PHP
начинаются с символа «$». Операция сложения строк (операция конкатенации) обозначается с помощью «.». Выводить текст можно как в двойных так и в одинарных кавычках, обратите внимание на вывод результатов в строках.

echo "<p>$a+$b=$c"; echo '<p>$a+$b=$c';
Для того чтобы можно было перейти к данной работе в «index.html» в список определений добавьте ссылку и описание данной работы.
<dt><a href="work2.php">Работа №2</a></dt>
<dd>Использование переменных, использование простых математических операторов, вывод результатов</dd>
Сохраните изменения во всех файлах и посмотрите результат своей работы.
Работа №3.
В данной работе будет созданы скрипты с помощью которых можно будет принимать и сохранять заказы магазина «Автозапчасти». Принятые заказы будут сохраняться в текстовый документ.
Для решения данной задачи потребуется использовать несколько файлов скриптов и файл в котором будет храниться информация. Для того чтобы не запутаться создадим отдельный каталог под именем «work3». В этом каталоге и будем размещать все файлы 3-
й работы.
Создайте файлы «index.php», «orderform.html» и «processorder.php».
Файл «index.php» используется для просмотра принятых заказов и позволяет перейти к форме с помощью которой можно оформить заказ. Файл «orderform.html»
содержит форму заказа. Файл «processorder.php» содержит скрипт с помощью которого осуществляется обработка заказа и запись данных о заказе в файл.
Содержимое «index.php».
<html>
<head>
<title>Магазин "Автозапчасти"</title> </head>
<body>
<h1>Магазин "Автозапчасти"</h1> <h2>Принятые заказы</h2>
<?php
@ $fp = fopen('orders.txt','rb');
if (!$fp)
{
echo "<p>Нет ожидающих заказов. Пожалуйста, попытайтесь позже.";

echo "<p><a href='orderform.html'>Оформить заказ</a>"; echo "<p><a href='../index.html'>К содержанию</a>"; exit;
}
while (!feof($fp))
{
$order= fgets($fp, 999); echo '<br>'.$order;
}
fclose($fp); ?>
<p><a href='orderform.html'>Оформить заказ</a> <p><a href='../index.html'>К содержанию</a> </body>
</html>
Содержимое «orderform.html».
<html>
<head>
<title>Магазин "Автозапчасти" - Оформление заказа</title> </head>
<body>
<h1>Магазин "Автозапчасти"</h1>
<h2>Форма заказа</h2>
<form action="processorder.php" method=post> <table border=0>
<tr bgcolor=#cccccc>
<td width=150>Товар</td>
<td width=15>Количество</td>
</tr>
<tr>
<td>Автопокрышки</td>
<td align=left><input type="text" name="tireqty" size=3 maxlength=3></td> </tr>
<tr>

<td>Машинное масло</td>
<td align=left><input type="text" name="oilqty" size=3 maxlength=3></td> </tr>
<tr>
<td>Свечи зажигания</td>
<td align=left><input type="text" name="sparkqty" size=3 maxlength=3></td> </tr>
<tr>
<td>Адрес доставки</td>
<td align=center><input type="text" name="address" size=40 maxlength=40></td> </tr>
<tr>
<td colspan=2 align=center><input type=submit value="Отправить заказ"></td>
</tr>
</table>
</form>
</body>
</html>
Содержимое «processorder.php».
<html>
<head>
<title>Магазин "Автозапчасти" - Результаты заказа</title> </head>
<body>
<h1>Магазин "Автозапчасти"</h1> <h2>Результаты заказа</h2>
<?php
$tireqty = $_POST['tireqty']; $oilqty = $_POST['oilqty']; $sparkqty = $_POST['sparkqty']; $address = $_POST['address'];
$date = date('H:i, d.m.Y');
echo '<p>Заказ обработан в ';

echo $date; echo '</p>';
echo '<p>Список вашего заказа: </p>';
$totalqty = 0;
$totalqty = $tireqty + $oilqty + $sparkqty; echo 'Заказано товаров: '.$totalqty.'<br />';
if( $totalqty == 0)
{
echo 'Вы ничего не заказали на предыдущей странице!<br />';
}
else
{
if ( $tireqty>0 )
echo $tireqty.' автопокрышек <br />'; if ( $oilqty>0 )
echo $oilqty.' бутылок с маслом<br />'; if ( $sparkqty>0 )
echo $sparkqty.' свечей зажигания<br />';
}
$totalamount = 0.00;
define('TIREPRICE', 100); define('OILPRICE', 10); define('SPARKPRICE', 4);
$totalamount = $tireqty * TIREPRICE
+$oilqty * OILPRICE
+$sparkqty * SPARKPRICE;
$totalamount=number_format($totalamount, 2, '.', ' ');
echo '<p>Итого по заказу: '.$totalamount.'</p>';

echo '<p>Адрес доставки: '.$address.'</p>';
$outputstring = $date."\t".$tireqty." автопокрышек\t".$oilqty.
"бутылок с маслом\t".$sparkqty.
"свечей зажигания\t\$".$totalamount."\t".$address."\n";
//открыть файл для добавления
@ $fp = fopen("orders.txt", 'ab');
if (!$fp)
{
echo '<p><strong>В настоящий момент ваш запрос не может быть обработан. '
.'Пожалуйста, попытайтесь позже.</strong></p></body></html>'; exit;
}
fwrite($fp, $outputstring, strlen($outputstring)); fclose($fp);
echo '<p>Заказ записан.</p>';
echo "<p><a href='index.php'>Принятые заказы</a>"; ?>
</body>
</html>
Сохраните изменения. Добавьте в «index.html» в список определений ссылку на 3-
ю работу.
<dt><a href="work3/index.php">Работа №3</a></dt> <dd>Приём и просмотр заказов магазина "Автозапчасти".</dd>
Работа №7.
В данной работе будет созданы скрипты с помощью которых можно будет принимать и сохранять заказы магазина «Автозапчасти», но теперь принятые заказы будут сохраняться в базе данных.

Создание базы данных.
Выбираем MySQL менеджер из раздела инструменты.
Создаем базу данных «spareparts». В контекстном меню OpenServer в разделе
«Create New» выбираем «database».
В списке баз данных появится вновь созданная. Выберем ее.
На вкладке «Database: spareparts» отображается список таблиц, входящих в базу данных. Таблицы можно создать через контекстное меню базы данных в списке в левой части формы или контекстное меню внутри вкладки. Для создания выбираем раздел
«Create New», но теперь выбираем «table».
Создаем таблицу «zakaz» и описываем структуру таблицы как указано на рисунке
ниже.

Чтобы сделать поле «idzakaz» ключевым необходимо в контекстном меню для этого поля выбрать «Create new index», а затем «Primary».
Нажимаем на кнопку «Save» внизу для сохранения изменений в структуре таблице. Для решения данной задачи потребуется использовать несколько файлов скриптов.
Создадим отдельный каталог под именем «work7». В этом каталоге и будем размещать все файлы этого проекта.
Создайте файлы «index.php», «orderform.html», «processorder.php», «delorder.php», «orderformedit.php» и «processorderedit.php».
Файл «index.php» используется для просмотра принятых заказов и позволяет перейти к формам и скриптам с помощью которых можно оформить заказ, удалить или изменить существующие заказы. Файл «orderform.html» содержит форму для оформления нового заказа. Файл «processorder.php» содержит скрипт с помощью которого осуществляется обработка заказа и запись данных о заказе в базу данных. В файле «delorder.php» содержится скрипт, используемый для удаления записи. В «orderformedit.php» описывается форма, используемая для изменения существующих заказов. В «processorderedit.php» содержится скрипт для сохранения изменений, сделанных в «orderformedit.php».
Добавьте в «index.html» в список определений ссылку на 7-ю работу.
<dt><a href="work7/index.php">Работа №7</a></dt>
<dd>Приём и просмотр заказов магазина "Автозапчасти" (с использованием баз данных).</dd>