Смекни!
smekni.com

Анализ информационной системы автосалона "Питер-Лада" и улучшение ее при помощи СУБД MySQL, PHP и HTML (стр. 7 из 14)

Сервер баз данных предоставляет мощные средства защиты данных от несанкционированного доступа, невозможные в настольных СУБД. При этом, права доступа администрируются очень гибко - до уровня полей таблиц. Кроме того, можно вообще запретить прямое обращение к таблицам, осуществляя взаимодействие пользователя с данными через промежуточные объекты - представления и хранимые процедуры.

Для создания базы данных было решено использовать MySQL 5.0благодаря её функциональности и простоте в использовании. MySQL - это популярная система управления базами данных (СУБД), очень часто применяемая в сочетании с PHP. MySQL - это система управления реляционными базами данных. В реляционной базе данных данные хранятся не все скопом, а в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MySQL можно охарактеризовать как язык структурированных запросов плюс наиболее распространенный стандартный язык, используемый для доступа к базам данных.

MySQL - это ПО с открытым кодом. Применять его и модифицировать может любой желающий. Такое ПО можно получать по Internet и использовать бесплатно. При этом каждый пользователь может изучить исходный код и изменить его в соответствии со своими потребностями. Использование программного обеспечения MySQL регламентируется лицензией GPL (GNU General Public License), http://www.gnu.org/licenses/, в которой указано, что можно и чего нельзя делать с этим программным обеспечением в различных ситуациях.

MySQL состоит из двух частей: серверной и клиентской. Сервер MySQL постоянно работает на компьютере. Клиентские программы (например, скрипты PHP) посылают серверу MySQL SQL-запросы через механизм сокетов (то есть при помощи сетевых средств), сервер их обрабатывает и запоминает результат. То есть скрипт (клиент) указывает, какую информацио он хочет получить от сервера баз данных. Затем сервер баз данных посылает ответ (результат) клиенту (скрипту). Почему всегда передается не весь результат? Очень просто: дело в том, что размер результирующего набора данных может быть слишком большим, и на его передачу по сети уйдет чересчур много времени. Да и редко когда бывает нужно получать сразу весь вывод запроса (то есть все записи, удовлетворяющие выражению запроса). Например, нам может потребоваться лишь подсчитать, сколько записей удовлетворяет тому или иному условию, или же выбрать из данных только первые 10 записей. Механизм использования сокетов подразумевает технологию клиент-сервер, а это означает, что в системе должна быть запущена специальная программа — MySQL-сервер, которая принимает и обрабатывает запросы от программ. [10]

Для создания графического интерфейса было принято решение использовать PHP и HTML. PHP - это язык программирования, специально разработанный для написания web-приложений (сценариев), исполняющихся на Web-сервере. PHP и HTML тесно связаны: PHP генерирует HTML, а HTML содержит информацию, которая высылается в PHP. Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. Возможности PHP очень большие. Главным образом, область применения PHP сфокусирована на написание скриптов, работающих на стороне сервера; таким образом, PHP способен выполнять всё то, что выполняет любая другая программа CGI. Например, обрабатывать данных форм, генерировать динамические страницы, отсылать и принимать cookies. Но PHP способен выполнять и множество других задач. PHP — язык, который может быть встроен непосредственно в html -код страниц, которые, в свою очередь будут корректно обрабатываться PHP -интерпретатором. Очень важное преимущество PHP заключается в его «движке». «Движок» PHP не является ни компилятором, ни интерпретатором. Он является транслирующим интерпретатором. Такое устройство «движка» PHP позволяет обрабатывать сценарии с достаточно высокой скоростью.

РНР предоставляет в распоряжение разработчиков и администраторов гибкие и эффективные средства безопасности, которые условно делятся на две категории: средства системного уровня и средства уровня приложения.

- Средства безопасности системного уровня

В РНР реализованы механизмы безопасности, находящиеся под управлением администраторов; при правильной настройке РНР это обеспечивает максимальную свободу действий и безопасность. РНР может работать в так называемом безопасном режиме (safemode), который ограничивает возможности применения РНР пользователями по ряду важных показателей. Например, можно ограничить максимальное время выполнения и использование памяти (неконтролируемый расход памяти отрицательно влияет на быстродействие сервера). По аналогии с cgi-bin администратор также может устанавливать ограничения на каталоги, в которых пользователь может просматривать и исполнять сценарии РНР, а также использовать сценарии РНР для просмотра конфиденциальной информации на сервере (например, файла passwd).

- Средства безопасности уровня приложения

В стандартный набор функций РНР входит ряд надежных механизмов шифрования. РНР также совместим с многими приложениями независимых фирм, что позволяет легко интегрировать его с защищенными технологиями электронной коммерции (e-commerce). Другое преимущество заключается в том, что исходный текст сценариев РНР нельзя просмотреть в браузере, поскольку сценарий компилируется до его отправки по запросу пользователя. Реализация РНР на стороне сервера предотвращает похищение нетривиальных сценариев пользователями, знаний которых хватает хотя бы для выполнения команды ViewSource. Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Поскольку РНР не содержит кода, ориентированного на конкретный web-сервер, пользователи не ограничиваются определенными серверами (возможно, незнакомыми для них). Apache, Microsoft IIS, Netscape Enterprise Server, Stronghold и Zeus — РНР работает на всех перечисленных серверах. Поскольку эти серверы работают на разных платформах, РНР в целом является платформенно-независимым языком и существует на таких платформах, как UNIX, Solaris, FreeBSD и Windows 95/98/NT/2000/XP/2003. [8,9]

2.5 Реализация ИС автосалона «Питер-Лада»

Как уже отмечалось выше, в качестве средств реализации разработанной информационной системы с базой данных были выбраны MySQL, PHP.

Подключение к базе данных происходит следующим образом:

Settings.cfg

<?

$dbname = 'BD_Autosalon';

$hostname ='Localhost';

$usernameman = 'MefedAN';

$passwordman = '12345';

$usernamemech = 'Ruk_CTO';

$passwordmech = '123123';

$usernameboss = Direktor;

$passwordboss = 222111;

?>

При заходе на сайт ИС мы автоматически попадаем в меню авторизации. После ее прохождения определяются права на использование данной системы. Эта страница реализована следующим образом:

Index.html

<html>

<head> <title>Официальный диллер ОАО "АВТОВАЗ" </head>

<body>

<img src="AuthHeader.jpg"><br>

<table>

<tr>

<td>

<img src="LadaLogo.jpg" align=left><br>

<font face="Segoe Print">Вы собираетесь войти в систему.<br> Пожалуйста авторизуйтесь.

</td>

<td>

<img src="AuthLogo.jpg" align=right>

</td>

</tr>

<tr>

<Form ACTION = "auth.php" METHOD = "post">

<font face="Segoe Print">

<p >Пользователь: <input type="text" name="Login"></p>

<p>Пароль : <input type="password" name="Pass">

<input type="submit" value="Войтивситему">

</font>

</tr>

</table>

<img src="Footter.jpg">

</html>

auth.php

<?

if (($_POST["Login"]=='Manager')&($_POST["Pass"]=='12345'))

{

Header("Location: manager_menu.html");

}

elseif (($_POST["Login"]=='Ruk_CTO')&($_POST["Pass"]=='123123'))

{

Header("Location: zakaz-nariad.php");

}

else

{

echo 'Неврный логин и/или пароль';

}

?>

<body>

<br>

<a href="index.html">Назад.</a>


После прохождения авторизации менеджером компании, загружается его личная страница.

Со страницы менеджера можно посмотреть модельный ряд автомобилей Lada, автомобили находящиеся в наличии, заказать дополнительное оборудование, или перейти в меню утилизации, нажав соответствующую кнопку в меню.

При авторизации как директор автосалона – открывается точно такое же меню как и у менеджеров, только с тем отличаем, что вместо кнопки «Утилизация» находится кнопка «Отчет за день». При нажатии на нее, выводится список всех автомобилей проданных за день. В этом списке указывается модель автомобиля, дата его сборки, а так же фамилия менеджера, составившего заказ. Под этими сведениями будет находиться общая сумма в рублях, от реализации за день. Данная таблица выполняется благодаря следующему РНР запросу:

usert1.php

<html>

<head> <title>Отчёт продаж за день</head>

<body>

<?

include ("settings.cfg");

$db = mysql_connect ($hostname,$usernameboss,$passwordboss); <---- mysql_select_db($dbname,$db);

$dt=date('Y-m-d');

$result = mysql_query("SELECT model_avto,data_sborki,FIO_manager FROM Zakazi WHERE data_oforml_zakaz=$dt",$db);

if(!$result)

{

echo "Возниклаошибка - ".mysql_error()."<br>";

echo $sql;

exit();

}

echo ("<table border ='1'>");

echo ("<tr><td>Модельавтомобиля</td><td>Датасборки</td><td>ФИОменеджера</td></tr>");

while ($tablerows = mysql_fetch_row($result))

{

echo("<tr><td>$tablerows[0]</td><td>$tablerows[1]</td><td>$tablerows[2]</td></tr> ");

}

$result = mysql_query("SELECT sum(predoplata) FROM Zakazi WHERE data_oforml_zakaz=$dt",$db);

if(!$result)

{

echo "Возниклаошибка - ".mysql_error()."<br>";

echo $sql;

exit();

}

echo "<tr><td collspan=2>Итого,руб:</td><td>$tablerows[0]</td></tr></table>";

echo "<a href=BossMenu.html> Назад </a>";

?>

</body>

</html>

Картинки с автомобилями являются кликабельными. Нажав на картинку с изображением нужной модели, менеджер попадает на страницу выбора комплектации и цвета нужного автомобиля.