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

МУ по РСОИ

.pdf
Скачиваний:
7
Добавлен:
02.03.2016
Размер:
499.12 Кб
Скачать

Указания по выполнению практических работ по дисциплине «Распределенные

системы обработки информации»

Для работы нам понадобятся программы 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>

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.