Федеральное агентство по образованию ГОУ ВПО Уфимский государственный авиационный технический университет Кафедра информатики ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №4 по дисциплине: «Компьютерные технологии в науке и производстве» на тему: «ОСНОВЫ КЛИЕНТ-СЕРВЕРНЫХ ТЕХНОЛОГИЙ» Выполнил: магистрант гр.АД-525М Агзамов Д.В. « 16 » января 2010 г. Проверил: канд.техн.наук, доцент Минасов Ш.М. « 16 » января 2010 г. Оценка « » Уфа – 2010 ОГЛАВЛЕНИЕ Введение ....................................................................................................................... 3 1.Цель работы .............................................................................................................. 3 2.Индивидуальное задание ......................................................................................... 3 2.1.Постановка задачи............................................................................................. 3 2.2.Фрагменты программного кода ....................................................................... 3 2.3.Экранные формы реализованного проекта .................................................... 9 Выводы ....................................................................................................................... 11 Список литературы ................................................................................................... 12 2 ВВЕДЕНИЕ Применение web-технологий для создания PHP-приложения. 1. ЦЕЛЬ РАБОТЫ Целью настоящей работы является: Получение навыков по установке и настройке интерпретатора серверных сценариев PHP. Ход выполнения работы 1. В соответствии с методическими указаниями по лабораторной работе [1] была произведена установка и настройка программного продукта PHP. 2. Выполнены и проанализированы примеры, приведенные в методических указаниях [1]. 3. Выполнено индивидуальное задание для самостоятельной работы. 2. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ 2.1. Постановка задачи В качестве индивидуального задания выдано задание №1. Создайте приложение, реализующее анализ продаж литературы научной тематики. Данные о продукции и продажах находятся в отдельном файле. Анализ проводится по критериям, вводимым пользователем путем выбора соответствующего пункта в форме. 2.2. Фрагменты программного кода Файл: index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 3 <title>Лабораторная работа № 4</title> <style> table { background:#ccc; } </style> </head> <?php if(isset($_POST["login"])&&isset($_POST["pass"])) { $login=$_POST["login"]; $pass=$_POST["pass"]; } ?> <body background="bg.jpg" text="#111" link="#FFFF00" vlink="#FFFF00" alink="#FFFF00"> <div align="center"> <form method="post"> <input type="text" name="login"> <input type="password" name="pass"> <input type="submit" value="Войти"> </form> </div> <?php global $login; include 'library.php'; foreach ($loginpass as $user=>$info){ if ($login==$info[0] and $pass==$info[1]) { ?> <?php if(!isset($_GET['asd'])){ echo '<form action="katalog.php" method="get"> <br/><br/> <table width="600" align=center> <tr> <td><label> <input type="radio" name="asd" value="1" id="asd_0" /> Сравнение оборачивамости книг по сравнению с прошлым годом.</label></td> </tr> <tr> <td><label> <input type="radio" name="asd" value="2" id="asd_0" /> Сравнение оборачивамости книг по сравнению с прошлым меясцем.</label></td> </tr> <tr> <td><label> <input type="radio" name="asd" value="3" id="asd_1" /> Cоотношение числа книг в библиотечном фонде с числом обращений читателей.</label></td> </tr> <tr> <td><label> <input type="radio" name="asd" value="4" id="asd_2" /> Топ 10 книг по популярности.</label></td> </tr> <tr align=center><td colspan="2"><input name="button" type="submit" value="Показать" /></td></tr> 4 </table></form>'; } else{ $act=$_GET['asd']; switch($act){ case 1: include '1.php'; break; case 2: include '2.php'; break; case 3: include '3.php'; break; case 4: include '4.php'; break; } } ?> </h4> <?php }; } ?> <center> <a href="../../lab.html">Вернуться к списку лабораторных работ</a><br/> <a href="../../index.html">Вернуться на главную</a> </center> </body> </html> Файл: library.php (файл с данными) <?php $library=array( "Дейч М.Е Техническая газодинамика. — М.: Энергия, 1974."=> array('13','21','10','5','2'), "Дейч М. Е. Газодинамика решёток турбомашин. — М.: Энергоатомиздат, 1996."=> array('44','32','40','7','8'), "Стечкин Б. С. Избранные труды. Теория тепловых двигателей. — М.: Наука, 1977."=> array('21','22','25','4','1'), "Кулагин В. В. Теория, расчёт и проектирование АД и ЭУ. - М.: Машиностроение, 2003."=> array('0','2','1','1','1'), "Клячкин А. Л., Теория воздушно-реактивных двигателей. - М.: Машиностроение, 1969."=> array('11','13','10','0','2'), "Справочник молодого обмотчика электрических машин. 6-е изд. — М.: Высш. школа, 1985 ."=> array('32','32','15','2','0'), "Очков В.Ф. 128 советов начинающему программисту. 2-е изд. — М.: Энергоатомиздат, 1992."=> array('14','1','10','1','0'), "Ратнер С.Б. Физическая механика пластмасс: Как прогнозируют работоспособность? — М.: Химия, 1992."=> array('15','21','2','2','1'), "Лосев К.С. Вода. — Л.: Гидрометеоиздат, 1989."=> array('36','32','11','3','4'), "Классен В.И. Вода и магнит. — М.: Наука, 1973."=> array('15','9','7','1','1'), "Райков Е.И. Справочник молодого монтажника лифтов. — М.: Высшая школа, 1990."=> array('51','39','15','3','2'), "Никифоров Н.И. Справочник молодого газосварщика и газорезчика. — М.: Высшая школа, 1990."=> array('31','33','13','3','3'), "Литвинов В.Н. Справочник молодого рабочего по монтажу электропроводок. — М.: Высш.школа, 1971."=> array('2','4','1','1','1'), "Наерман М.С. Справочник молодого шлифовщика. — М.: Высшая школа, 1985."=> array('13','12','40','2','4'), 5 "Сергеев Н.П. Справочник молодого сварщика на контактных машинах. — М.: Высшая школа, 1984."=>array('15','22','8','2','5'), "Колесниченко В.В. Справочник молодого машиниста бульдозера,скрепера,грейдера. — М.: Высшая школа, 1988."=>array('114','113','67','10','11'), "Сильвестров Б. Н. Справочник молодого зуборезчика. — М.: Высшая школа, 1981."=>array('16','15','3','1','1'), ); $loginpass=array( "user1"=> array ('login1','pass1'), "user2"=> array ('login2','pass2'), "admin"=> array ('admin','admin'), ); ?> Файл: katalog.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Лабораторная работа № 4</title> <style> table { background:#ccc; } </style> </head> <?php if(isset($_POST["login"])&&isset($_POST["pass"])) { $login=$_POST["login"]; $pass=$_POST["pass"]; } ?> <body background="bg.jpg" text="#111" link="#FFFF00" vlink="#FFFF00" alink="#FFFF00"> <br /><br /><br /> <h4> <?php if(!isset($_GET['asd'])){ echo '<form action="katalog.php" method="get"> <table width="600" align=center> <tr> <td><label> <input type="radio" name="asd" value="1" id="asd_0" /> Сравнение оборачивамости книг по сравнению с прошлым годом.</label></td> </tr> <tr> <td><label> <input type="radio" name="asd" value="2" id="asd_0" /> Сравнение оборачивамости книг по сравнению с прошлым меясцем.</label></td> </tr> 6 <tr> <td><label> <input type="radio" name="asd" value="3" id="asd_1" /> Cоотношение числа книг в библиотечном фонде с числом обращений читателей.</label></td> </tr> <tr> <td><label> <input type="radio" name="asd" value="4" id="asd_2" /> Топ 10 книг по популярности.</label></td> </tr> <tr align=center><td colspan="2"><input name="button" type="submit" value="Показать" /></td></tr> </table></form>'; } else{ $act=$_GET['asd']; switch($act){ case 1: include '1.php'; break; case 2: include '2.php'; break; case 3: include '3.php'; break; case 4: include '4.php'; break; } } ?> </h4> </body> </html> Файл: 1.php <?php echo '<h3 align=center>Сравнение оборачивамости книг по сравнению с прошлым годом.</h3> <table width="80%" border="1" cellspacing="0" cellpadding="3" align="center"><tr><th width="50">№</th><th >Книга</th><th width="70">В этом году</th><th width="70">В прошлом году</th><th width="200">Изменение</th></tr>'; include 'library.php'; $n=0; foreach ($library as $book=>$add){ echo '<tr><td>'.++$n.'</td><td>'.$book.'</td><td align=center>'.$add[1].'</td><td align=center>'.$add[0].'</td>'; $q=($add[1]-$add[0]); if($q>0) echo ("<td><font color=\"green\">$q</font></td></tr>"); if($q<0) echo ("<td><font color=\"red\">$q</font></td></tr>"); if($q==0) echo ("<td><font color=\"yellow\">$q</font></td></tr>"); } echo '</table>'; echo ("<h4 align=center><a href=\"javascript:history.back()\" onMouseOver=\"window.status='Назад';return true\">Назад</a></h4>"); ?> 7 Файл: 2.php <?php echo '<h3 align=center>Сравнение оборачивамости книг по сравнению с прошлым месяцем.</h3> <table width="80%" border="1" cellspacing="0" cellpadding="3" align="center"><tr><th width="50">№</th><th >Книга</th><th width="70">В этом месяце</th><th width="70">В прошлом месяце</th><th width="200">Изменение</th></tr>'; include 'library.php'; $n=0; foreach ($library as $book=>$add){ $q=($add[3]-$add[4]); echo '<tr><td>'.++$n.'</td><td>'.$book.'</td><td align=center>'.$add[3].'</td><td align=center>'.$add[4].'</td>'; if($q>0) echo ("<td><font color=\"green\">$q</font></td></tr>"); if($q<0) echo ("<td><font color=\"red\">$q</font></td></tr>"); if($q==0) echo ("<td><font color=\"yellow\">$q</font></td></tr>"); } echo '</table>'; echo ("<h4 align=center><a href=\"javascript:history.back()\" onMouseOver=\"window.status='Назад';return true\">Назад</a></h4>"); ?> Файл: 3.php <?php echo '<h3 align="center">Отношение числа книг в библиотечном фонде к числу обращений читателей составляет:'; include 'library.php'; $n=0; $c=0; foreach ($library as $book=>$add){ $n=$n+$add[2]; $c=$c+$add[1]; } echo $n/$c; echo '.</h3>'; echo '<h4 align=center>Общее количество книг: '.$n.'. Общее количество обращений: '.$c.'</h4>'; echo ("<h4 align=center><a href=\"javascript:history.back()\" onMouseOver=\"window.status='Назад';return true\">Назад</a></h4>"); ?> Файл: 4.php <?php echo '<h3 align="center"> Топ 10 книг по популярности</h3> 8 <table width="50%" border="1" cellspacing="0" cellpadding="3" align="center"><tr><th width="50">Место</th><th>Название книги</th><th width="90">Оборачиваемость</th></tr>'; include 'library.php'; foreach ($library as $book=>$add){ $t[$book]=$add[1]; } arsort($t); reset($t); for ($i=1;$i<11;$i++){ $key = key ($t); next ($t); echo '<tr><td>'.$i.'</td><td>'.$key.'</td><td>'.$t[$key].'</td></tr>'; } echo '</table>'; echo ("<h4 align=center><a href=\"javascript:history.back()\" onMouseOver=\"window.status='Назад';return true\">Назад</a></h4>"); ?> 2.3. Экранные формы реализованного проекта На рис. 1 представлена экранная форма созданного мной приложения. 9 Рисунок 1. Внешний вид страницы index.php При запросе выводится следующее окно на котором можно увидеть список книг и данные об их продажах по указанным критериям. 10 ВЫВОДЫ В результате выполнения лабораторной работы была решена поставленная в рамках самостоятельной работы задача: «Создание phpприложения». В процессе решения задачи были получены навыки по установке программного продукта PHP, а так же изучены основы работы динамических приложений. Получено приложение в соответствии с индивидуальным заданием. 11 СПИСОК ЛИТЕРАТУРЫ 1. Разработка распределенных интерактивных приложений на базе Интернет- технологий: Лабораторный практикум по дисциплине «Основы Интернет технологий» Часть 1 / Уфимск. гос. авиац. техн. ун-т; Сост. Ш.М. Минасов. – Уфа, 2007. – 15 с. 2. РНР: настольная книга программиста /Александр Мазуркевич, Дмитрий Еловой. — Мн.: Новое знание, 2003. — 480 с.: ил. 12