Федеральное агентство по образованию ГОУ ВПО Уфимский государственный авиационный технический университет Кафедра информатики ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №4 по дисциплине: «Компьютерные технологии в науке и производстве» на тему: «Обработка данных. Передача данных при помощи HTML форм.» Выполнил: магистрант гр.Т-15 Пятков П.А. «23» ноября 2010 г. Проверил: канд.техн.наук, доцент Минасов Ш.М. « » 20 10 г. Оценка « » Уфа – 2010 ОГЛАВЛЕНИЕ 1.Цель работы .............................................................................................................. 3 2.Ход выполнения работы .......................................................................................... 3 3.Индивидуальное задание ......................................................................................... 3 3.1.Постановка задачи............................................................................................. 3 3.2.Алгоритм выполнения задачи .......................................................................... 3 3.3.Фрагменты программного кода ....................................................................... 3 3.4.Экранные формы реализованного проекта .................................................. 10 Выводы ....................................................................................................................... 15 Список литературы ................................................................................................... 16 2 1. ЦЕЛЬ РАБОТЫ Целями настоящей работы являются изучение процесса передачи данных с помощью HTML форм и их последующая обработка. 2. ХОД ВЫПОЛНЕНИЯ РАБОТЫ 1. В соответствии с методическими указаниями по лабораторной работе [Error! Reference source not found.] были изучены методы передачи данных. 2. Выполнены и проанализированы примеры, приведенные в методических указаниях [Error! Reference source not found.]. 3. Выполнено индивидуальное задание для самостоятельной работы. 3. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ 3.1. Постановка задачи Создать приложение, реализующее выборку данных из файла данных data.inc по определенным параметрам. 3.2. Алгоритм выполнения задачи Для выполнения работы необходимо создадим форму для ввода пользователем логина и пароля index.htm, скрипт для проверки введенных данных secret.php, форму для ввода пользовательской информации form.php и скрипт lab4.php, обрабатывающий эти данные. 3.3. Фрагменты программного кода Файл data.inc: <?php $Monday=array( array("SU892","06.35","08.40","Уфа: МАУ","Москва: Внуково","2500"), array("EH194","08.50","10.50","Уфа: МАУ","Москва: Домодедово","2000"), 3 array("GL96","15.00","17.05","Уфа: МАУ","Москва: Внуково","2300"), array("MO511","17.50","19.50","Уфа: МАУ","Москва: Домодедово","2500"), array("PA66","22.00","24.05","Уфа: МАУ","Москва: Шереметьево","2000") ); $Tuesday=array( array("EH194","07.50","09.50","Уфа: МАУ","Москва: Внуково","2000"), array("AO496","12.00","14.10","Уфа: МАУ","Москва: Шереметьево","2000"), array("SU892","15.35","17.40","Уфа: МАУ","Москва: Домодедово","2300"), array("XY77","19.55","21.55","Уфа: МАУ","Москва: Внуково","2500"), array("NB66","24.00","02.05","Уфа: МАУ","Москва: Домодедово","2000") ); $Wednesday=array( array("SU892","06.35","08.40","Уфа: МАУ","Москва: Внуково","2000"), array("GL96","08.00","10.05","Уфа: МАУ","Москва: Шереметьево","2300"), array("EH194","17.50","19.50","Уфа: МАУ","Москва: Домодедово","2500"), array("WE666","21.55","23.55","Уфа: МАУ","Москва: Внуково","2000"), array("RE656","03.00","05.05","Уфа: МАУ","Москва: Домодедово","2300") ); $Thursday=array( array("QQ77","03.55","05.55","Уфа: МАУ","Москва: Внуково","2300"), array("SU892","06.35","08.40","Уфа: МАУ","Москва: Домодедово","2000"), array("EH194","07.50","09.50","Уфа: МАУ","Москва: Шереметьево","2500"), array("GL96","18.00","20.05","Уфа: МАУ","Москва: Внуково","2000"), array("ZZ66","21.00","23.05","Уфа: МАУ","Москва: Домодедово","2000") ); 4 $Friday=array( array("QQ66","05.00","07.05","Уфа: МАУ","Москва: Шереметьево","2300"), array("GL96","08.00","10.05","Уфа: МАУ","Москва: Внуково","2500"), array("YH152","14.00","16.10","Уфа: МАУ","Москва: Домодедово","2000"), array("UT592","18.35","20.45","Уфа: МАУ","Москва: Внуково","2000"), array("EE77","22.55","24.55","Уфа: МАУ","Москва: Домодедово","2300") ); $Saturday=array( array("EH194","07.50","09.50","Уфа: МАУ","Москва: Шереметьево","2000"), array("WW77","12.55","14.55","Уфа: МАУ","Москва: Домодедово","2300"), array("NB66","13.00","15.05","Уфа: МАУ","Москва: Внуково","2000"), array("YH152","14.00","16.10","Уфа: МАУ","Москва: Домодедово","2000"), array("GL96","20.00","22.05","Уфа: МАУ","Москва: Внуково","2500") ); $a=array("SU892","06.35","06.40","Уфа: МАУ","Москва: Внуково","2500"); $b=array("GL96","08.00","08.05","Уфа: МАУ","Москва: Домодедово","1950"); $c=array("XY77","15.55","15.55","Уфа: МАУ","Москва: Шереметьево","2500"); $d=array("NB66","16.00","16.05","Уфа: МАУ","Москва: Внуково","2500"); $e=array("EH194","16.50","16.50","Уфа: МАУ","Москва: Внуково","2700"); $g=array("XY77","18.55","18.55","Уфа: МАУ","Москва: Шереметьево","2000"); $f=array("NB66","19.00","19.05","Уфа: МАУ","Москва: Внуково","2500"); $k=array("QQ77","19.55","19.55","Уфа: МАУ","Москва: Домодедово","2900"); $m=array("BV66","24.00","24.05","Уфа: МАУ","Москва: Шереметьево","3000"); 5 $Sunday=array($a, $b, $c, $d, $e, $g, $f, $k, $m); $Week=array($Monday, $Tuesday, $Wednesday, $Thursday, $Friday, $Saturday, $Sunday); $Weekr=array("Понедельник", "Вторник","Среду","Четверг","Пятницу","Субботу","Воскресе нье"); ?> Файл index.htm: <html lang="ru"> <head> <title>Лабораторная работа №4</title> <style type="text/css"> body, html { margin:0; padding:0; background:#FFF; color:#000; } #wrap { margin-top: 20; margin-left: 15%; text-align: justify; width:800px; } </style> </head> <body> <div id="wrap"> <style type="text/css"> <!-body { background-color: #FEF7C0; } --> </style> <h4 align='left'>Лабораторная работа №4<br>Добро пожаловать в систему интернет-расписание!<br>Для 6 просмотра расписания необходимо пройти авторизацию.</h4> <hr> <FORM action="secret.php" method="POST"> Входное имя <INPUT TYPE=text name=login> Пароль <INPUT TYPE=password name=password> <p><input type=submit value="Подтвердить"> <p><A HREF="../index.htm">Вернуться на сайт</A> </FORM> </body> </html> Файл secret.php: <?php SESSION_START(); $_SESSION['login']=$_POST['login']; $_SESSION['password']=$_POST['password']; if ($_SESSION['login']!="admin" OR $_SESSION['password']!="12345") die ("У вас нет прав на просмотр данной информации :-("); echo 'Теперь вы можете начать просмотр расписания.<br>'; echo"<p><A HREF='form.php'>Для этого пройдите по данной ссылке</A>"; ?> Файл form.php: <?php SESSION_START(); If(!array_key_exists("login",$_SESSION)) die ('Пройдите <a href="index.htm"> авторизацию </a> '); if ($_SESSION['login']!="admin" OR $_SESSION['password']!="admin") die ('Пройдите <a href="index.htm">авторизацию</a>'); echo' <style type="text/css"> <!-body { background-color: #FEF7C0; 7 } --> </style> '; echo ' <h3>Авиакомпания "4363" приветствует Вас!</h3> <hr> Выберите направление полета:<br> <form action="lab4.php" method=POST> <select name="city" size="1"> <option value="Moscow">Уфа-Москва</option> <option value="Sent">Уфа-Санкт-Петербург</option> <option value="MskUfa">Москва-Уфа</option> <option value="SentUfa">Санкт-Петербург-Уфа</option> </select> <br><br> Выберите день недели: <br> <form action="lab4.php" method=POST> <select name="day" size="1"> <option value="Monday">Понедельник</option> <option value="Tuesday">Вторник</option> <option value="Wednesday">Среда</option> <option value="Thursday">Четверг</option> <option value="Friday">Пятница</option> <option value="Saturday">Суббота</option> <option value="Sunday">Воскресенье</option> </select> <p>Выберите время вылета:<br> <input type=radio name="vzlet" value="00.00"> Все рейсы с 00.00 до 08.00<br> <input type=radio name="vzlet" value="8.00"> Все рейсы с 08.00 до 16.00<br> <input type=radio name="vzlet" value="16.00"> Все рейсы с 16.00 до 24.00<br> <input type=radio name="vzlet" value="150"> Расписание на весь день<br> <input type=submit value="Отправить"> <input type=reset value="Отменить"> </form>'; echo'<hr>'; ?> 8 Файл lab4.php: <?php SESSION_START(); If(!array_key_exists("login",$_SESSION)) die ('Пройдите <a href="index.htm"> авторизацию </a> '); if ($_SESSION['login']!="admin" OR $_SESSION['password']!="admin") die ('Пройдите <a href="index.htm">авторизацию</a>'); echo' <style type="text/css"> <!-body { background-color: #FEF7C0; } --> </style> '; switch($_REQUEST["city"]){ case "Moscow":require("data.inc"); break; case "Sent":require("data1.inc");break; case "MskUfa":require("data2.inc"); break; case "SentUfa":require("data3.inc"); break; }; //require("data.inc"); echo'<h3>Авиакомпания "4363" приветствует Вас!</h3> <hr>'; $vzlet=$_REQUEST["vzlet"]; $vzletprilet=$vzlet+8.00; if ($vzlet>100){$vzlet=00.00; $vzletprilet=24.00;} switch($_REQUEST["day"]){ case "Monday":$sort=$Monday; $den="Понедельник"; break; case "Tuesday":$sort=$Tuesday; $den="Вторник";break; case "Wednesday":$sort=$Wednesday;$den="Среду"; break; case "Thursday":$sort=$Thursday;$den="Четверг"; break; case "Friday":$sort=$Friday;$den="Пятницу"; break; case "Saturday":$sort=$Saturday;$den="Субботу"; break; case "Sunday":$sort=$Sunday;$den="Воскресенье"; break; }; $sum = count($sort); 9 echo "Расписание самолетов на ".$den."<br>Время вылета показано с ".$vzlet." до ".$vzletprilet.".00"; //вывод массива с расписанием echo "<table border='1' cellpadding='3'> <tr> <th>Номер борта</th><th>Время вылета</th><th>Время прилета</th><th>Пункт отправления</th><th>Пункт прибытия</th><th>Стоимость, руб.</th> </tr>"; for($i=0; $i <= $sum-1; $i++) { if ($sort[$i][1]>=$vzlet and $sort[$i][1]<=$vzletprilet) { echo "<tr>"; //$sum = count($sort[$i]); for($q=0; $q <6; $q++) { echo "<td> ".$sort[$i][$q]."</td>"; } echo "</tr>"; } } echo "</table>"; echo '<a href="form.php"> <hr> Вернуться назад </a> ' ?> Экранные формы реализованного проекта На рис. 1. представлена экранная форма index.htm, где пользователь вводит логин и пароль доступа. 10 Рис.1. Экранная форма index.htm 11 На рис. 2. представлена экранная форма secret.php. При помощи этого скрипта проверяется правильность, введенного пароля и, в зависимости от результата проверки, появляется ссылка на скрипт выбора параметров расписания form.php или ссылка на страницу авторизации. Рис.2. Экранная форма secret.php 12 На рис. 3. представлена экранная форма form.php .При помощи этой формы пользователь может ограничивать вывод расписания. Есть возможность выбора дня недели и интервала времени вылета самолетов. Рис.3. Экранная форма form.php 13 На рис. 4. представлена экранная форма lab4.php. Скрипт обрабатывает выбранные пользователем параметры и выводит результат на экран. Рис.4. Экранная форма lab4.php 14 ВЫВОДЫ В результате выполнения лабораторной работы были изучены основы передачи данных при помощи HTML форм. Составлена программа, анализирующая данные, отправленные пользователем и, выводящая на экран результат обработки. Данные выводятся в виде таблицы. Пользователь может выбрать расписание на любой день недели. Имеется возможность вывода расписания, как на весь день, так и с ограничение по времени вылета. Для доступа к информации о расписании пользователь должен пройти авторизацию 15 СПИСОК ЛИТЕРАТУРЫ 1. Разработка распределенных интерактивных приложений на базе Интернет-технологий: Лабораторный практикум по дисциплине «Основы Интернет технологи» Часть 2 / Уфимск. гос. авиац. техн. унт; Сост. Ш.М. Минасов. – Уфа, 2007. – 33 с. 2. РНР: настольная книга программиста /Александр Мазуркевич, Дмитрий Еловой. – Мн.: Новое знание, 2003. – 480 с.: ил. 3. Разработка Web-приложений на РНР и MySQL: Пер. с англ./Лаура Томсон, Люк Веллинг. – 2-е изд., испр. – СПб: ООО «ДиаСофтЮП», 2003. – 672 с. 16