Диплом: Автоматизация приема заявок на ремонт и модернизацию ПК (на примере аптечной сети "Ригла")

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
54
Работа над базой данных осуществляется всеми сотрудниками отдела
автоматизации. Ответственным сотрудником за поддержку базы назначается
старший инженер отдела. В его задачи входит обеспечение сохранности базы
данных, обучение вновь назначаемых сотрудников аптек, подготовка актов
на списание техники и прием-передачу, присвоение учетных номеров
техническим объектам, проведение инвентаризации.
2.11 База логинов и паролей для сотрудников аптек. Код для проверки
подключения
Кроме того, в обязанности сотрудников входит ввод данных о клиентах
с предоставлением им логинов и паролей.
На сервере MySQL создана таблица
CREATE TABLE “users_table”
(
“user_id”int(11) unsigned NOT NULL auto_increment,
“user_login”varchar(30) NOT NULL,
“user_password”varchar(32) NOT NULL,
“user_hash”varchar(32) NOT NULL default '',
“user_ip” int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`user_id`)
)
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;
<?
// регистрации пользователя
// соединение с БД
$link=mysqli_connect("localhost", "mysql_user", "mysql_password", " users_table
");
if(isset($_POST['submit']))
{
$err = [];
55
//проверка логин
if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['login']))
{
$err[] = "Логин может состоять только из букв латинского алфавита и цифр";
}
if(strlen($_POST['login']) < 3 or strlen($_POST['login']) > 30)
{
$err[] = "Логин должен быть не меньше 3-х символов и не больше 30";
}
//проверка на наличие еще одного пользователя с таким именем
$query = mysqli_query($link, "SELECT user_id FROM users WHERE
user_login='".mysqli_real_escape_string($link, $_POST['login'])."'");
if(mysqli_num_rows($query) > 0)
{
$err[] = "Пользователь с таким логином уже существует в базе данных";
}
//Если нет ошибок, то добавляем в БД нового пользователя
if(count($err) == 0)
{
$login = $_POST['login'];
//убираем лишние пробелы и делаем двойное хеширование
$password = md5(md5(trim($_POST['password'])));
mysqli_query($link,"INSERT INTO users SET user_login='".$login."',
user_password='".$password."'");
header("Location: login.php"); exit();
}
else
{
print "<b>При регистрации произошли следующие ошибки:</b><br>";
foreach($err AS $error)
56
{
print $error."<br>";
} } }
?>
<form method="POST">
Логин <input name="login" type="text" required><br>
Пароль <input name="password" type="password" required><br>
<input name="submit" type="submit" value="Зарегистрироваться">
</form>
2.12 Разработка html-формы и кодов запросов на php к базе данных со
стороны сотрудников аптек
Сотрудники аптек, а также сотрудники отдела автоматизации могут
зайти на сервер ООО «Ригла» (рисунок 44) для того чтобы соединиться с
базой данных под своим логином и паролем
При регистрации в базу данных записывается логин пользователя и
пароль в двойном md5 шифровании.
Все сведения о пользователях хранятся в таблице user_table
user_id int(11) unsigned NOT NULL auto_increment,
user_login varchar(30) NOT NULL,
user_password varchar(32) NOT NULL,
user_hash varchar(32) NOT NULL default '',
user_ip int(10) unsigned NOT NULL default '0',
PRIMARY KEY (user_id)
57
Рисунок 44. Форма входа для сотрудника
//соединение с БД
$link=mysqli_connect("localhost","mysql_user","mysql_password","user_table");/
if(isset($_POST['submit']))
{
//поиск в БД записи с логином равным введенному
$query = mysqli_query($link,"SELECT user_id, user_password FROM users
WHERE user_login='".mysqli_real_escape_string($link,$_POST['login'])."'
LIMIT 1");
$data = mysqli_fetch_assoc($query);
//сравнение паролей
if($data['user_password'] === md5(md5($_POST['password'])))
{
//генерируем случайное число и шифруем его
$hash = md5(generateCode(10));
if(!empty($_POST['not_attach_ip']))
{
// привязка к IP
//переводим IP в строку
$insip = ", user_ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."')";
58
}
//записываем в БД новый хеш авторизации и IP
mysqli_query($link, "UPDATE users SET user_hash='".$hash."' ".$insip."
WHERE user_id='".$data['user_id']."'");
//храним куки
setcookie("id", $data['user_id'], time()+60*60*24*30);
setcookie("hash", $hash, time()+60*60*24*30,null,null,null,true);
//переадресовываем браузер на страницу проверки скрипта
header("Location: check.php"); exit();
}
else{
print "Вы ввели неправильный логин/пароль";
} } ?>
Сотрудники аптеки должны иметь возможность составить заявку
(рисунки 45,46,47), изменить ранее составленную заявку, и, в случае
затруднений, заказать обратный звонок (приложение 1).
Рисунок 45. Форма выбора
Код формы, без таблицы стилей
<html>
<head>
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="stylesotrud.css">
59
<title>форма выбора кнопки</title>
</head>
<body>
<form action="knopka1.php" method="POST">
<input name="Submit1" type="submit" value="Создать новую заявку" />;
</form>
<form action="knopka2.php" method="POST">
<input name="Submit2" type="submit" value="Внести изменения в
существующую заявку" />;
</form>
<form action="knopka3.php" method="POST">
<input name="Submit3" type="submit" value="Заказать обратный звонок
специалиста отдела автоматизации" />; </form> </body> </html>
Форма для создания новой заявки.
Рисунок 46. Форма заявки на проведение заявки
Код формы, без таблицы стилей
60
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>форма ввода транзакции</title>
<link rel="stylesheet" type="text/css" href="styleform2.css">
<div id="tab1">
<form action="plus2_1.php" method="POST">
<fieldset>
<span class="note1">заявка на проведение ремонта</span>
<span lang="ru"> Аптека/подразделение </span>
<input name="branch_office" type="int" size="55" />
<span lang="ru">Вид поломки</span>
<input name="vid_polomki" type="text" size="40" />
<span lang="ru">Серийный номер присвоен отделом
автоматизации</span>
<input name="Code_techique" type="text" size="40" />
<span lang="ru">Дата поломки</span>
<input name="Data_polomki " type="date" size="20" />
<span lang="ru">Описание поломки (текст)</span>
<input name="Opicanie_polomku_text" type="int" size="255" />
</fieldset>
</div>
<div id="tab2">
<input name="Submit1" type="submit" value="отправить" />
<input name="Reset1" type="reset" value="сброс" />
</form>
</div>
<div id=class3>
<img alt="" src="image/1_2.png" width="400" height="350"> <div
id="tab3">
61
</div>
</body>
</html>
Код загрузчика
<?php
print ("В базу вносятся следующие данные!");
echo "<br/>";
$x1=$_POST[' branch_office '];
echo $_POST[' branch_office ']."<br>";
echo "<br/>";
$x2=$_POST[' vid_polomki '];
echo $_POST[' vid_polomki ']."<br>";
echo "<br/>";
$x3=$_POST[' Code_techique '];
echo "имя: $_POST[Code_techique]."<br>";
echo "<br/>";
$x5=$_POST[' Data_polomki '];
Echo $_POST[' Data_polomki ']."<br>";
echo "<br/>";
$x6=$_POST[' Opicanie_polomku_text '];
echo $_POST[' Opicanie_polomku_text ']."<br>";
echo "<br/>";
require_once 'connect.php';
$insert_sql = "INSERT INTO product (branch_office, vid_polomki,
Code_techique, Data_polomki, Opicanie_polomku_text )" .
"VALUES('{$x1}', '{$x2}', '{$x3}', '{$x4}', '{$x5}'";
mysql_query($insert_sql)
or die
("<p>Ошибка ввода данных! ". mysql_error() . "</p>");
62
echo "<p>Новая запись вставлена в базу в таблицу polomka!</p>";
?>
В том случае если, сотрудникам аптеки потребуется внести
корректировку в заявку, то они могут ее найти, воспользовавшись формой
поиска.
Рисунок 47. Форма поиска заявки
Код формы, без таблицы стилей
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>форма ввода транзакции</title>
<link rel="stylesheet" type="text/css" href="styleform2.css">
<div id="tab1">
<form action="plus2_2.php" method="POST">
<fieldset>
<span class="note1"> Уточнение сведений по заявке. Введите
наименование подразделения (словарь) и идентификатор оборудования
(написан на корпусе)</span>
<span lang="ru"> Аптека/подразделение </span>
<input name="branch_office" type="int" size="55" />
<span lang="ru">Серийный номер присвоен отделом
автоматизации</span>
63
<input name="Code_techique" type="text" size="40" />
<div id="tab3">
<input name="Submit1" type="submit" value="отправить" />
<input name="Reset1" type="reset" value="сброс" />
</form>
</div>
<div id=class3>
<img alt="" src="image/1_2.png" width="400" height="350"> <div
id="tab3">
</div>
</body>
</html>
По серийному номеру составляются заявки (рисунок 48)
Рисунок 48. Форма поиска заявки
<?php
\\соединяемся с базой данных
require_once 'connect.php';
\\выбираем сведения из таблицы Аптеки (словарь) (branch_office) и Заявка
(polomka)
$sql1= "SELECT * FROM branch_office ";
$sql2= "SELECT * FROM polomka";
$result1 = mysql_query($sql1);
$result2 = mysql_query($sql2);
or die(mysql_error() ."<br/>".$sql);

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)