Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Уфимский государственный авиационный технический университет Кафедра информатики ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №4 по дисциплине: «Обработка информации в системах реального времени» на тему: «Функции в PHP» Выполнил: студентка гр. МС-502в Чувашова Ю.В. Проверил: канд.техн.наук, доцент Минасов Ш. М. Уфа 2012 ОГЛАВЛЕНИЕ Цель работы ................................................................................................................. 3 1.Ход выполнения работы ........................................ Error! Bookmark not defined. 2.Индивидуальное задание ......................................................................................... 3 2.1.Постановка задачи............................................................................................. 3 2.2.Выполнение задания ......................................................................................... 3 Выводы ......................................................................................................................... 8 Список литературы ..................................................................................................... 9 2 ЦЕЛЬ РАБОТЫ Целью лабораторной работы является изучение технологии создания, а так же особенностей передачи аргументов пользовательских функций в PHP. 1. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ 1.1. Постановка задачи Для приложения разработанного в соответствии с заданием для самостоятельной работы в рамках Лабораторной работы №3, выделить фрагменты кода используемого для анализа рассматриваемых критериев и оформить их в виде функций. 1.2. Выполнение задания На рис. 1 представлена экранная форма главной страницы index.htm. Рисунок 1 - Экранная форма главной страницы index.htm 3 Вид главной страницы после авторизации под правами администратора представлен на рис. 2 Рисунок 2 - Вид страницы admin.php после успешной авторизации Программный код главной страницы (файл «admin.php») <?php include "func.php"; auth("admin") ?> <HTML> <HEAD> <TITLE>каталог женской одежды и обуви</TITLE> <META NAME="Author" CONTENT="Чувашова Ю.В."/> </HEAD> <BODY bgcolor=F0E68C background="../fon.jpg"> <H1 align="center"><font color="8A2BE2">Добро пожаловать в каталог женской одежды и обуви</font></H1> <table align="center"> <tr> <td><BR></td> </tr> </table> <table align="left"> <tr> <td align="left"><a HREF="../index.htm">Главная страница</a> </tr> 4 <tr> <td align="left"><a HREF="../rezume.htm">Резюме</a> </tr> <tr> <td align="left"><a HREF="../foto.htm">Фотогалерея</a> </tr> <tr> <td align="left"><a HREF="../ot4et.htm">Отчеты по лабораторным работам</a> </tr> </table> <table align="center"> <tr> <td><b><BR></td> </tr> </table> <table align="left"> <tr> <td> <button type="button" onClick='location.href="add.php"'><font color="8A2BE2">Новое поступление</font></button> </td> </tr> </table> <BR CLEAR=ALL> <form method="post" action="delete.php"> <table align="center" border=1 bordercolor="8A2BE2"> <tr> <td width="300" align="center"><b><font color="FAF0E6">Тип</font></b></td> <td width="300" align="center"><b><font color="FAF0E6">Бренд</font></b></td> <td width="300" align="center"><b><font color="FAF0E6">Цена</font></b></td> <td width="300" align="center"><b><font color="FAF0E6">Миниатюра</font></b></td> </tr> <?php include "data.inc"; for($i = 0; $i < count($type_arr); $i++) { echo "<tr>"; echo "<td width=\"300\" align=\"center\">".$type_arr[$i]."<br> <button type=\"submit\" name=\"".$i."\"><font color=\"006400\">Удалить</font></button> <button type=\"submit\" name=\"change".$i."\"><font 5 color=\"006400\">Изменить</font></button> </td>"; echo "<td width=\"300\" align=\"center\">".$brend_arr[$i]."</td>"; echo "<td width=\"300\" align=\"center\">".$price_arr[$i]."</td>"; echo "<td width=\"300\" align=\"center\"><a HREF=\"foto_gallery/".$file_name_arr[$i]."\"><IMG src=\"foto_gallery/preview/".$file_name_min_arr[$i]."\"/></a></td> "; echo "</tr>"; } ?> </table> </form> </BODY> </HTML> Авторизация пользователей выполнена в виде отдельной функции auth() и вынесена в отдельный скрипт «func.php» <?php function auth($mode) { $admin_arr = file("admins.txt"); $user_arr = file("users.txt"); $prodavec_arr = file("prodavec.txt"); if (!$admin_arr | !$user_arr | !$prodavec_arr) { exit ("Одного из файлов с логинами и паролями пользователей не существует<br>"); } else if ((count($admin_arr)%2 != 0) | (count($user_arr)%2 != 0) | (count($prodavec_arr)%2 != 0)) { exit ("Количество логинов в одном из файлов не совпадает с количеством паролей<br>"); } else { SESSION_START(); if($mode=="admin") { for($i=0; $i < count($admin_arr)-1; $i+=2)//цикл по логинам в файле if (($_SESSION["login"] != trim($admin_arr[$i])) | ($_SESSION["pass"] != 6 trim($admin_arr[$i+1]))) exit ("Пройдите <a HREF=\"index.htm\">авторизацию</a>"); } elseif($mode=="user") { for($i=0; $i < count($user_arr)-1; $i+=2)//цикл по логинам в файле if (($_SESSION["login"] != trim($user_arr[$i])) | ($_SESSION["pass"] != trim($user_arr[$i+1]))) exit ("Пройдите <a HREF=\"index.htm\">авторизацию</a>"); } elseif($mode=="prodavec") { for($i=0; $i < count($prodavec_arr)-1; $i+=2)//цикл по логинам в файле if (($_SESSION["login"] != trim($prodavec_arr[$i])) | ($_SESSION["pass"] != trim($prodavec_arr[$i+1]))) exit ("Пройдите <a HREF=\"index.htm\">авторизацию</a>"); } } } ?> Система поддерживает 3 группы пользователей: администраторы (полный доступ), продавцы (добавление новых поступлений товара и изменение его описания) и пользователи (просмотр и сортировка по нужному полю). Логины и пароли на вход хранятся в текстовых файлах на сервере: admins.txt Администраторы users.txt Пользователи prodavec.txt Продавцы Формат любого из этих файлов следующий: Логин1 Пароль1 Логин2 Пароль2 7 ВЫВОДЫ В результате выполнения лабораторной работы мы изучили технологию создания, а так же особенности передачи аргументов пользовательских функций в PHP. 8 СПИСОК ЛИТЕРАТУРЫ 1. Разработка распределенных интерактивных приложений на базе Интернет - технологий: Лабораторный практикум по дисциплине «Основы Интернет технологий» Часть 1 / Уфимск. гос. авиац. техн. ун-т; Сост. Ш.М. Минасов. – Уфа, 2007. – 15 с. 2. Скотт Хокинс. Администрирование Web-сервера Apache и руководство по электронной коммерции, – М.:Вильямс, 2001. – 336 с. 3. Гончаров А.С. Самоучитель HTML. – СПб.: Питер, 2002. – 240 с.: ил. 4. Петюшкин А.В. HTML. Экспресс-курс. – СПб.: БХВ-Петербург, 2003. – 256 с.: ил. 5. Разработка Web-приложений на РНР и MySQL: Пер. с англ./Лаура Томсон Люк Веллинг. – 2-е изд., испр. – СПб: ООО «ДиаСофтЮП», 2003. – 672 с. 9