Диплом: Автоматизация процесса систематизации документации архива организации (на примере Муниципального унитарного предприятия "Комплекс")"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
59
После этого устанавливаются связи с базой данных, работать с базой
данных находящейся на сервере MySQL можно через Access, т.е. можно
создавать формы и отчеты, выгружать нужную информацию в Excel и при
этом не использовать никаких дополнительных языков программирования,
поскольку средств, предоставляемых Access вполне достаточно.
Рисунок 52 - Подключение выполнено
Теперь можно работать со связанными таблицами как с обычными,
только данные будут хранится не в файле mdb, а в базе данных MySQL, а
сама оболочка программы (формы, запросы, отчеты). Это достаточно удобно,
поскольку оболочка обновляется достаточно редко и ее архив занимает мало
места и легко восстанавливается, а база данных установлена на
отказоустойчивый кластер и также сохраняется на архивный сервер, поэтому
надежность программы является достаточно высокой.
60
2.10. База логинов и паролей для сотрудников МУП «Комплекс»
для работы с информационной системой. Код для проверки
подключения
С проектируемой информационной системой работают секретарь-
делопроизводитель, ответственные за делопроизводство в структурных
подразделениях и сотрудники, которым необходимо ознакомиться с
документами. Логины и пароли генерирует инженер-программист.
На сервере 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 = [];
//проверкалогин
if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['login']))
{
61
$err[] = "Логин может состоять только из букв латинского алфавита и цифр";
}
if(strlen($_POST['login']) <3orstrlen($_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($errAS$error)
{
print$error."<br>";
62
} } }
?>
<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.11. Размещение сайта для доступа к ИС сотрудников на
внутреннем сервере
Для организации доступа к информационной системе с помощью
внутрисетевых веб-страниц было решено поднять внутренний Web-сервер
lighttpd с адресом http://mypkomlexe.loc. Операционная система Web-сервера
UbuntuServer. Топология сети, в которой будет производиться настройка: IP
маршрутизатора 192.168.08.1, IP развертываемого Web-сервера 192.168.08.5.
Компьютеры рабочих групп будут автоматически получать сетевые
настройки. Поэтапно устанавливаются
1.OpenSSH, для облегчения задач администрирования, пакет - ssh.
2.сервер lighttpd, пакет lighttpd.
3.определяем возможность обращение к сайту, прописываем в
/еtc/lighttpd/lighttpd.conf:
$HTTP["host"] ="mysite.loc"{sеrver.dоcument-rооt="/var/www/"}
Сайт будет установлен в директорию /var/www.
4. перезапускаем Web-сервер: sudosеrvicelighttpdrеstart
5.сообщаем компьютерам всех рабочих групп, что сайт http://mypkomlexe.loc
обслуживается Web-сервером с IP - 192.168.08.5. Это можно сделать
прописав это в hosts файле на каждом компьютере. Этот вариант
предпочтительнее, но можно это сделать централизованно, если используется
Dnsmasq, прописав в /etc/dnsmasq.conf:
address=/ mypkomlexe.loc /192.168.08.5
63
После этого на сервере можно размещать Web-страницы, затем нужно
установить PHP и MySQL, для этого проще воспользоваться пакетом Denver.
Но для успешной работы с внутренним сайтом необходимо в файле
/еtc/php5/cgi/php.ini раскомментироватьстрочку: cgi.fix_pаthinfо = 1 и
включить поддержу на сервере
sudolighttpd-еnable-modfastcgi
Для поддержки UTF-8 в /еtc/mysql/my.cnf прописать:
[client]
dеfault-charactеr-sеt=utf8
[mysqld]
charactеr_sеt_sеrvеr=utf8
collation_servеr=utf8_unicode_ci
2.12. Разработка html-формы и кодов запросов на php к базе
данных со стороны сотрудников МУП
Сотрудники МУП «Комплекс» для того чтобы соединиться с базой
данныхзаходят под своим под своим логином и паролем, который им выдаст
инженер программист.
При регистрации в базу данных записывается логин пользователя и
пароль в двойном md5 шифровании.
Все сведения о пользователях хранятся в таблице user_table
user_idint(11) unsigned NOT NULLauto_increment,
user_login varchar(30) NOT NULL,
user_password varchar(32) NOT NULL,
user_hash varchar(32) NOT NULL default '',
user_ipint(10) unsigned NOT NULL default '0',
PRIMARY KEY (user_id)
64
Рисунок 53 - Форма входа для сотрудника
//соединение с БД
$link=mysqli_connect("localhost","mysql_user","mysql_password","user_table");/
if(isset($_POST['submit']))
{
//поиск в БД записи с логином равным введенному
$query = mysqli_query($link,"SELECTuser_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']."')";
}
//записываем в БД новый хеш авторизации и IP
65
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 "Вы ввели неправильный логин/пароль";
} } ?>
После входа сотрудники могут самостоятельно найти и скачать
нужный документ при наличии его скан-копии на сервере, могут найти
документ по реквизитам и отправить заявку секретарю, либо, если они
затрудняются с поиском, то они могут направить письмо к секретарю с
просьбой найти нужный документ.
Рисунок 54 - Форма выбора
Код формы, без таблицы стилей:
<html>
<head>
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
66
<link rel="stylesheet" type="text/css" href="stylesotrud.css">
<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>
</body>
</html>
Форма для поиска документов.
Рисунок 55 -форма заявки
Код формы, без таблицы стилей
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>форма ввода транзакции</title>
<link rel="stylesheet" type="text/css" href="styleform2.css">
67
<div id="tab1">
<form action="plus2_1.php" method="POST">
<fieldset>
<span class="nomenklatura_slov">Номенклатурапословарю</span>
<spanlang="ru">Дата начала интервала поиска</span>
<input name="date1" type="int" size="10" />
<spanlang="ru"> Дата окончания интервала поиска </span>
<input name="date2" type="int" size="10" />
</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">
</div></body></html>
Код загрузчика plus2_1.php, код connect.php стандартный.
<?php
print ("Запрашиваются следующие данные!");
echo "<br/>";
$x1=$_POST['nomenklatura_slov'];
echo$_POST['nomenklatura_slov']."<br>";
echo "<br/>";
$x2=$_POST['date1'];
echo $_POST['date1']."<br>";
echo "<br/>";
$x3=$_POST['date2'];
68
echo "имя: $_POST['date2']."<br>";
echo "<br/>";
require_once 'connect.php';
$result="SELECT * FROM out WHERE (data_document Document". $ x2. $ x3)
and nomenklatura_slov =$x1;
echo $result;
$table = "<table border=1 width=100% align=center>\n";
while ($row = mysql_fetch_assoc($result))
{
$table .= "<tr>\n";
$table .= "<td>".$row['Code_document']."</td>\n";
$table .= "<td>".$row['Nomenklatyra_slovar']."</td>\n";
$table .= "<td>".$row[‘Index_dela']."</td>\n";
$table .= "<td>".$row[Number_document']."</td>\n";
$table .= "<td>".$row['Data_document']."</td>\n";
$table .= "<td>".$row['podrazdelenie_ispolnitel']."</td>\n";
$table .= "<td>".$row['scan_documenta']."</td>\n";
$table .= "<td><a href='delete_seller.php?idS=".$row['idS']."'>скачать</a></td>";
$table .= "<td><a
href='update_seller.php?idS=".$row['idS']."'>запроситьусекретаря</a></td>";
$table .= "</tr>\n";
}
$table .= "</table>\n";
echo $table;
?>
В итоге сотрудник увидит таблицу с выборкой и может либо скачать
нужную скан-копию, либо, если она отсутствует, отправить запрос секретарю
делопроизводителю. В итоге будет выведена таблица.

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

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