Федеральное агентство по образованию ГОУ ВПО Уфимский государственный авиационный технический университет Кафедра информатики ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №4 по дисциплине: «Компьютерные технологии в науке и производстве» на тему: «Основы клиент-серверных технологий» Выполнил: магистрант гр. АиУ-506 Рыжов А.В. «26» октября 2010 г. Проверил: канд.техн.наук, доцент Минасов Ш.М. « 26 » октября 2010 г. Оценка « » Уфа – 2010 ОГЛАВЛЕНИЕ Введение ....................................................................................................................... 3 1.Цель работы .............................................................................................................. 3 2.Ход выполнения работы .......................................................................................... 3 3.Индивидуальное задание ......................................................................................... 3 3.1.Постановка задачи............................................................................................. 3 3.2.Фрагменты программного кода ....................................................................... 4 3.3.Экранные формы реализованного проекта .................................................... 4 Выводы ......................................................................................................................... 5 Список литературы ..................................................................................................... 6 Приложения ................................................................................................................. 7 2 ВВЕДЕНИЕ Рассматривается установка и настройка php-интерпретатора на сервере Apache, а также возможность создания web-приложения на языке php. 1. ЦЕЛЬ РАБОТЫ Целью настоящей работы является: создания интерактивного Web – приложения, работающего в режиме реального времени, которое осуществляет отправку данных на сервер и их обработку с помощью PHP. 2. ХОД ВЫПОЛНЕНИЯ РАБОТЫ 1. Выполнены и проанализированы примеры создания php-приложений отправки данных на сервер приведенные в методических указаниях. 2. Выполнено индивидуальное задание для самостоятельной работы, а именно, разработано web-приложение, осуществляющее отправку данных. Для удобства дальнейшего использования данные заносятся в базу mySQL. Ссылка на php-приложение: http://informatic.ugatu.ac.ru/resources/stdworks/mag2010/4326/index.php?act=summ a 3. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ 3.1. Постановка задачи В качестве индивидуального задания выдана тема «Обработка данных таблицы прогноза доходов коммерческого банка», которая подразумевает подсчет величины прогнозируемого дохода по кредитному портфелю коммерческого банка при различных ситуациях на рынке кредитования. В качестве исходных данных в поставленной задаче рассмотрены: данные о доходе коммерческого банка по каждой программе кредитования за различные промежутки времени. Доступ к данным предоставляется пользователю после успешной авторизации. 3 3.2. Фрагменты программного кода Файл: laba4.php – «Форма запроса авторизации» в Приложении 1. Файл: secret_info.php – «Секретная страница пользователя» в Приложении 2. Файл: tabl1.php – «Данные в табличном виде для пользователя» в Приложении 3. Файл: reg.php – «Форма регистрации авторизации» в Приложении 4. Файл: post_reg.php – «Обработка регистрационных данных» в Приложении 5. 3.3. Экранные формы реализованного проекта На рис. 1 представлена экранная форма страницы secret_info.php. Рисунок 1. Экранная форма страницы secret_info.php 4 ВЫВОДЫ В результате поставленная интерактивного в выполнения рамках лабораторной самостоятельной web-приложений, работы работы осуществляющего была задача: передачу решена «Создание данным средствами php». В процессе решения задачи было принято решение создать форму регистрации пользователей с использованием в качестве «хранилища» баз данных mySQL. Было разработано функциональное web-приложение отправки данных на сервер. Для выполнения индивидуального задания были изучены: язык программирование php. 5 СПИСОК ЛИТЕРАТУРЫ 1. Разработка распределенных интерактивных приложений на базе Интернет- технологий: Лабораторный практикум по дисциплине «Основы Интернет технологий» Часть 2 / Уфимск. гос. авиац. техн. ун-т; Сост. Ш.М. Минасов. – Уфа, 2007. – 15 с. 2. MySQL и другие веб-технологии. Дата обращения: 5.10.2010 http://php.su/ 3. HTML справочник. Дата обращения: 5.10.2010. http://html.manual.ru/ 6 ПРИЛОЖЕНИЯ Приложение 1. Полный текст сценария laba4.php <center> <FORM action="index.php?act=secret_info" method="POST"> <table border="0"> <tr> <td>Логин/e-mail</td><td><INPUT TYPE=text name=login></td> </tr> <tr> <td>Пароль</td><td><INPUT TYPE=password name=password></td> </tr> <tr> <td colspan="2" align="center"> <span font-size="10pt"> <a href="index.php?act=reg">Регистрация</a>&nbsp; <a href="index.php?act=pass">Забыли пароль?</a> </span> </td> </tr> <tr> <td colspan="2" align="center"> <input type=submit value="Войти"> </td> </tr> </table> </FORM> </center> Приложение 2. Полный текст сценария secret_info.php <?php session_start(); $host='informatic.ugatu.ac.ru'; $database='mag2010-4326'; $user='mag2010'; $pswd='sqrt'; error_reporting(0); $dbh=mysql_connect($host,$user,$pswd) or die("Не могу соединиться с MySQL."); 7 mysql_select_db($database) or die("Не могу подключиться к базе."); $_SESSION['login']=$_POST['login']; $_SESSION['password']=$_POST['password']; $idenlog = "SELECT mail FROM users where mail='".$_SESSION["login"]."'"; $idenpas = "SELECT password FROM users where password='".$_SESSION["password"]."'"; $idencat = "SELECT category FROM users where mail='".$_SESSION["login"]."'"; $mail = mysql_query($idenlog); $pass = mysql_query($idenpas); $cat = mysql_query($idencat); $mail1 = mysql_fetch_row($mail); $pass1 = mysql_fetch_row($pass); $cat1 = mysql_fetch_row($cat); $c = implode("", $mail1); $c2 = implode("", $pass1); $c3 = implode("", $cat1); if($c<>"" and $c2<>"") { if($c == $_SESSION['login'] and $c2 == $_SESSION['password']) { echo "<p align='left'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Здравствуйте, <b>".$_SESSION["login"]."</b>! вы выполнили вход на сайт! Следующая информация теперь доступна для Вас:</p>"; if($c3=="admin") {header ('Location: index.php?act=admin');} if($c3=="op") {header ('Location: index.php?act=operator');} if($c3=="bugalt") 8 {header ('Location: index.php?act=bugalter');} echo "<center>"; include("tabl1.php"); echo "</center>"; $users = "SELECT * FROM users"; $result = mysql_query($users); if (mysql_num_rows($result)>0) { while ($row = mysql_fetch_assoc($result)) { if ($row["oplata"]=="yes" and $_SESSION['login']==$row["mail"]) {echo"<p align='left'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color='red'>Внимание:</font> Ваш платеж прошел успешно! Доступ расширен.</p>"; include("kommerc.php"); } else { if ($_SESSION['login']==$row["mail"]) echo"<p align='left'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Доступ для Вас <font color='red'>ограничен</font>. Вы можете оставить заявку связавшись с нами по тел. <font color='green'>8800-277-77-77</font></p>"; } } } echo "<p align='left'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='index.php?act=destroy'>Выйти из профиля</a></p>"; } else echo "Неверный логин либо пароль, доступ запрещен!"; } else echo "Не введен логин либо пароль, доступ запрещен!"; ?> Приложение 3. Полный текст сценария tabl1.php <?php 9 $dbh=mysql_connect($host,$user,$pswd) or die("Не могу соединиться с MySQL."); mysql_select_db($database) or die("Не могу подключиться к базе."); $q = mysql_query("SELECT * FROM prognoz ORDER BY id"); echo "<center><H3>Таблица. Прогноз дохода по кредитным программам.</H3></center>"; echo'<table width="90%" bordercolor="#000000" border="1px" cellspacing="0" cellpadding="0">'; echo "<tr> <td></td> <td></td> <td align='center'><h4>Январь</h4></td> <td align='center'><h4>Февраль</h4></td> <td align='center'><h4>Март</h4></td> <td align='center'><h4>Апрель</h4></td> <td align='center'><h4>Май</h4></td> <td align='center'><h4>Июнь</h4></td> <td align='center'><h4>Июль</h4></td> <td align='center'><h4>Август</h4></td> <td align='center'><h4>Сентябрь</h4></td> <td align='center'><h4>Октябрь</h4></td> <td align='center'><h4>Ноябрь</h4></td> <td align='center'><h4>Декабрь</h4></td> <td align='center' bgcolor='pink'><h4>Январь</h4></td> </tr>"; while($r=mysql_fetch_array($q)) { echo '<tr><td align="center">'.$r["id"].'</td><td align="center">'.$r["programma"].'</td><td align="center">'.$r["jan"].'</td><td align="center">'.$r["feb"].'</td><td align="center">'.$r["mar"].'</td><td align="center">'.$r["apr"].'</td><td align="center">'.$r["may"].'</td><td align="center">'.$r["jun"].'</td><td align="center">'.$r["jul"].'</td><td align="center">'.$r["aug"].'</td><td align="center">'.$r["sep"].'</td><td align="center">'.$r["oct"].'</td><td align="center">'.$r["nov"].'</td><td 10 align="center">'.$r["dec"].'</td><td align="center">'.$r["jan_prog"].'</td></tr>'; } echo'</table>'; ?> Приложение 4. Полный текст сценария reg.php <h3>Регистрация</h3> <form action="post_reg.php" method=POST name="rizhov4326"> <table border="0"> <tr><td>Введите фамилию:</td> <td><input type=text name="lname"></td></tr> <tr><td>Введите имя: </td> <td><input type=text name="fname"></td></tr> <tr><td>Введите отчество: </td> <td><input type=text name="sname"></td></tr> <tr><td>E-mail/Логин: </td> <td><input type=text name="email"></td></tr> <tr><td>Пароль: </td> <td><input type=text name="pass"></td></tr> <tr><td colspan="2" align="center"><input type=submit value="Отправить">&nbsp;<input type=reset value="Отменить"></td></tr> </table> </form> Приложение 5. Полный текст сценария post_reg.php <?php $host='informatic.ugatu.ac.ru'; $database='mag2010-4326'; $user='mag2010'; $pswd='sqrt'; $dbh=mysql_connect($host,$user,$pswd) or die("Не могу соединиться с MySQL."); mysql_select_db($database) or die("Не могу подключиться к базе."); 11 $email = stripslashes(substr($_POST['email'],0,30)); $error=0; $d = mysql_query("SELECT * FROM users",$dbh); $c = mysql_num_rows($d); for($i=0;$i<=$c;$i++) { $iden = "SELECT mail FROM users where mail='".$_POST['email']."'"; $mail = mysql_query($iden,$dbh); if($row=MySQL_fetch_array($mail)) { $error=1; }; }; if($error==0) { $ins = mysql_query("insert into users values ('','".$_POST['lname']."','".$_POST['fname']."','".$_POST ['sname']."','".$_POST['email']."','".$_POST['pass']."', 'user','no','no')",$dbh); if($ins) { echo"Поздравляем вас, ".$_POST["fname"]." ".$_POST["sname"].", регистрация прошла успешно!";}; } else { echo"Учетная запись с таким e-mail уже зарегистрирована!"; }; ?> 12