Веб-додаток для реєстрації аварійних ситуацій та обліку ремонтних робіт ЖРЕРу
Огляд технологій, які використовувалися для створення веб-додатку. Опис архітектури та роботи елементів проекту журналу реєстрації аварійних ситуацій та обліку ремонтних робіт. Приклад інтерфейсу користувача. Розрахунок собівартості програмного продукту.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 03.07.2014 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
if (!ctype_digit($fid)) {exit("$back і виберіть категорію аварійної ситуації!");}
$katname.="[ktname]".$rname;
if ($katnumber=="0") {print"$back і виберіть категорію аварійної ситуації!"; exit;}
if ($name == "" || strlen($name) > $maxname) {print "$back Ваше <B>ім'я пусте, або перевишає $maxname символів!</B></center>"; exit;}
$zag=$_POST['zag'];
if ($zag == "" || strlen($zag) > $maxzag) {print "$back Ви <B>не ввели назву аварійної ситуації, або він перевищує $maxzag символів!</B></center>"; exit;}
if (isset($_POST['type'])) {$type=$_POST['type'];} else {$type="";}
if ($type == "") {print "$back і виберіть відмітку про виконання заходів (<B>Не виконано</B> или <B>Виконано</B>).</B></center>"; exit;}
if ($type!="В" and $type!="Н") {$type="Н";}
$msg=$_POST['msg'];
if ($msg == "" || strlen($msg) > $maxmsg) {print "$back <B>Причини і стислий опис обставин аврії пустий або перевищає $maxmsg символів.</B></center>"; exit;}
if (isset($_POST['gorod'])) {$gorod=$_POST['gorod'];} else {$gorod="";}
if (isset($_POST['phone'])) {$phone=$_POST['phone'];} else {$phone="";}
if (isset($_POST['timez'])) {$timez=$_POST['timez'];} else {$timez="";}
if (isset($_POST['moneyz'])) {$moneyz=$_POST['moneyz'];} else {$moneyz="";}
if (isset($_POST['esk'])) {$esk=$_POST['esk'];} else {$esk="";}
if (isset($_POST['zaxodu'])) {$zaxodu=$_POST['zaxodu'];} else {$zaxodu="";}
if ($days>$maxdays) {$days=$maxdays;}
$deldt=mktime()+$days*86400; // удалити через стільки то днів
$msg=str_replace("|","I",$msg);
$zag=str_replace("|","I",$zag);
$today=mktime();
$stime=$_POST['stime'];
if (!ctype_digit($stime)) {exit("$back и выбирете категорию!");}
// Порівнюю імя з подавшим об'яву з зареєстрованим іменем
$flag="0"; $status="no"; $namesm=strtolower($name);
$lines=file("$datadir/usersdat.php"); $i=count($lines);
do {$i--; $rdt=explode("|", $lines[$i]);
$rdt[0]=strtolower($rdt[0]);
if ($rdt[0]==$namesm) {$email="$rdt[2]"; $flag="yes";
if ($rdt[12]>0) {$vipdays=round(($rdt[12]-$today)/86400);} else {$vipdays="999";}
if ($rdt[10]==="vip" and $vipdays>0) {$status="vip";}}
} while($i > "1");
if (!isset($_COOKIE['wrboardname']) and $flag=="yes") {print"$back ошибка, користувач з таким іменем вже є.<BR><B>Ви не можете подати заявку від його імені.</B>"; exit;}
if ($antiflud=="1") { // АНТІ СПАМ
$linesn = file("$datadir/$fid.dat"); $in=count($linesn);
if ($in > 0) {
$lines=file("$datadir/$fid.dat"); $i=count($lines)-1; $itogo=$i; $dtf=explode("|",$lines[$i]);
$txtback="$dtf[0]|$dtf[1]|$dtf[2]|$dtf[3]|$dtf[4]|$dtf[5]|";
$txtflud="$katnumber|$katname|$name|$zag|$type|$msg|";
$txtflud=htmlspecialchars($txtflud); $txtflud=stripslashes($txtflud);
$txtflud=str_replace("\r\n","<br>",$txtflud);
if ($txtflud==$txtback) {print"$back Данное объявление уже размещено на доске. Флудить на доске запрещено!"; exit;} }}
// Рандомний код заявки
$z=1; do {$key=mt_rand(10000,99999); if (strlen($key)==5) {$z++;} } while ($z<1);
$text="$katnumber|$katname|$name|$zag|$type|$msg|$date|$deldt|$fid|$status|$key|$today|$gorod|$phone|$timez|$moneyz|$esk|$zaxodu||||||$rname|";
$text=htmlspecialchars($text);
$text=stripslashes($text);
$text=str_replace("\r\n","<br>",$text);
// Очистка тегів!!
$textdt=explode("|", $text);
$katnumber=$textdt[0];
$tdt=explode("[ktname]", $textdt[1]); $katname="$tdt[0]";
$name=$textdt[2];
$zag=$textdt[3];
$type=$textdt[4];
$msg=$textdt[5];
$date=$textdt[6];
$deldt=$textdt[7];
$fid=$textdt[8];
$status=$textdt[9];
$today=$textdt[11];
$gorod=$textdt[12];
$phone=$textdt[13];
$timez=$textdt[14];
$moneyz=$textdt[15];
$esk=$textdt[16];
$zaxodu=$textdt[17];
$smallfoto=$textdt[18];
$foto=$textdt[19];
$fotoksize=$textdt[20];
$fp=fopen("$datadir/$fid.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
fflush ($fp);//чистка файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("$datadir/$fid.dat", 0644);
// +1 до кол. заявок в категоріях
$lines=file("$datadir/$datafile"); $i=count($lines); $fnomer=$i+1;
do {$i--; $dt=explode("|",$lines[$i]);
if ($fid==$dt[0]) {$fnomer=$i; if ($type=="В") {$dt[3]++;} else {$dt[2]++;} $mtext="$fid|$dt[1]|$dt[2]|$dt[3]|";}
} while($i > 0);
$file=file("$datadir/$datafile");
$fp=fopen("$datadir/$datafile","w");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);//УДАЛЯЄМО СОДЕРЖИМОЄ ФАЙЛ
for ($ii=0;$ii< sizeof($file);$ii++)
{ if ($fnomer!=$ii) {fputs($fp,$file[$ii]);} else {fputs($fp,"$mtext\r\n");} }
fflush ($fp);//очистка файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("$datadir/$datafile", 0644);
// добавляємо в 10-20-ку нових заявок
$newmessfile="$datadir/newmsg.dat";
if (is_file($newmessfile)) {
$file=file($newmessfile); $i=count($file);
if ($showten>"0" & $i<$showten) {
$fp=fopen("$newmessfile","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("$newmessfile", 0644);
} else {
$fp=fopen($newmessfile,"w");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);//УДАЛЯЄМО СОДЕРЖИМОЄ ФАЙЛА
for ($ii=1;$ii<$showten; $ii++) {fputs($fp,$file[$ii]);}
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("$newmessfile", 0644); }
}
// тестово отправка адміну і користувачу на мило о тому, що заявка добавлена
$headers=null; // Настройки
$headers.="Content-Type: text/html; charset=windows-1251\r\n";
$headers.="From: Адміністратор <".$adminemail.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
$deldate=date("d.m.Y",$deldt); // конвертуємо дату
if (isset($nameonly)) {$name=$nameonly;} // Тестово
// подготовка і вивод на екран шо відправили
if ($type=="В") {$sptype="Не виконано";} else {$sptype="Виконано";}
$msg=str_replace("\r\n", "<br>", $msg);
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$boardurl="http://$host$self";
$boardurl=str_replace("add.php", "index.php", $boardurl);
// Зібираємо всьо тіло пісьма
$allmsg="<html><head><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<style>BODY {FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 13px;} TD {FONT-SIZE: 12px;}</style></head>
<body><center><h4>ЖРЕР: Заявка на аварійну ситуацію подана \"<B><a href='$boardurl'>$brdname</a></B>\"</h4>
<table border=1 cellpadding=6 cellspacing=0 width=550 bordercolor='#DBDBDB'>
<tr><td colspan=2 align=center bgcolor='#E4E4E4'><B>Информация</B></td></tr>
<tr bgcolor='#F2F2F2'><td width=117>Ваше ім'я:</td><td width=433><B>$name</B></td></tr>
<tr bgcolor='#F8F8F8'><td>Е-майл:</td><td><B>$email</B></td></tr>
<tr bgcolor='#F2F2F2'><td>Категорія:</td><td> <B>$rname</B> >> <B>$katname</B> >> $sptype</td></tr>
<tr bgcolor='#F8F8F8'><td>Дата створення заявка:</td><td><small>$time</small> - $date г.</td></tr>
<tr bgcolor='#F2F2F2'><td>Дата видалення заявки:</td><td><B>$deldate</B> г.</td></tr>
<tr bgcolor='#F8F8F8'><td>Назва:</td><td><B>$zag</B></td></tr>
<tr bgcolor='#F2F2F2'><td>Причина:</td><td>$msg</td></tr>
</table><center><BR>Ваша заявка <B><font color=navy>успішно розміщена</font></B><BR><BR>
<a href='$boardurl?fid=$fid'>Повернутися в категорії <B>$katname</B></a>";
$printmsg="$allmsg </body></html>";
$allmsg.="<BR><BR><BR>* Це повідомлення згенеровано автоматично, відповідати на нього не подтрібно</body></html>";
if ($sendmail=="1") { // Отправка якшо дозволено
if ($sendmailadmin=="1") {mail("$adminemail", "Нова заявка ($brdname)", $allmsg, $headers);}
if (isset($email) & $flag=="yes") { mail("$email", "Заявка ($brdname)", $allmsg, $headers);} }
// Удаляємо кукі
if (!isset($flag) and $onlyregistr==1) { if (isset($_COOKIE['wrboardname'])) {setcookie("wrboardname", "", time()); setcookie("wrboardpassword", "", time()); }}
print "<script language='Javascript'>function reload() {location = \"index.php?fid=$fid\"}; setTimeout('reload()', 2000);</script>$printmsg"; exit;
}
}
//} // if is_file ("$fid.dat")
else { // ГОЛОВНА СТОРІНКА
$rubrika="Реєстрації аварійних ситуацій";
include "$topurl"; addtop(); // подключаємо ШАПКУ
if ($onlyregistr=="1" and !isset($wrboardname))
{ print"<BR><BR><BR><BR><BR><center><font size=-1><B>Шановні користувачі!</B><BR><BR>
На нашому сайті ви можете подати заявку на реєстрацію аварійної ситуації в ЖРЕР<BR><BR><B> Без реєстрації <font color=#FF0000> заборонено!</B></font><BR><BR>
Зареєструватися можно по <B><a href='tools.php?event=reg'>цій ссилці</a></B><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>"; }
else {
if (isset($_GET['fid'])) {$fid=$_GET['fid'];} else {$fid="";}
$today=mktime();
print"<center><TABLE class=bakfon cellPadding=2 cellSpacing=1>
<FORM action='add.php?event=add' method=post name=addForm enctype=\"multipart/form-data\">
<TBODY>
<TR class=toptable><TD height=23 align=middle colSpan=2><B>$rubrika</B></TD></TR>";
print "
<tr class=row1><TD>Категорія і характер аварії:</TD><TD>
<SELECT name=rubrika class=maxiinput>
";
// Блок зщитує всі категорії
$lines=file("$datadir/$datafile"); $imax=count($lines); $i="0"; $r="0";
do {$dt=explode("|", $lines[$i]);
if ($fid==$dt[0]) {$fy="selected";} else {$fy="";}
if ($dt[1]!="R") {print "<OPTION value=\"$i|$dt[0]|$r|$dt[1]|\"$fy> - $dt[1]</OPTION>\r\n";}
else {$r=$dt[2]; print "<OPTION value='0|||||' style='color: #CD8181;'>$dt[2]</OPTION>\r\n";}
$i++;
} while($i < $imax);
print "</SELECT></TD></TR>
<input type=hidden name=stime value='$today'>
<TR class=row2><TD>Назва:<FONT color=#ff0000>*</FONT><BR>(не більше $maxzag символів)</TD>
<TD><INPUT name=zag class=maxiinput maxlength=$maxzag></TD></TR>
<TR class=row1><TD>Причини і стислий опис<br> обставин аварії:</TD>
<TD><TEXTAREA class=maxiinput name=msg style='HEIGHT: 200px; WIDTH: 300px'></TEXTAREA></TD></TR>
<TR class=row1 height=23><TD>Дата і час настання аварії: </TD><TD><INPUT name=timez class=maxiinput maxlength=35></td></tr>
<TR class=row2 height=23><TD>Економічні втрати від аварії <br>(не обов'язково): </TD><TD><INPUT name=moneyz class=maxiinput maxlength=35></td></tr>
<TR class=row1 height=23><TD>Тривалість простою об'єкта від<br> початку аварії до введення <br>в експлуатацію, годин або діб <br>(не обов'язково): </TD><TD><INPUT name=esk class=maxiinput maxlength=35></td></tr>
<TR class=row2 height=23><TD>Заходи, запропоновані комісією<br> з розслідування причин аварії<br>(не обов'язково): </TD><TD><INPUT name=zaxodu class=maxiinput maxlength=35></td></tr>
<TR class=row1><TD>Відмітка про виконання<br> заходів:<FONT color=#ff0000>*</FONT></TD>
<TD><INPUT name=type type=radio value='Н'><B><font color=#EE2200>Н</font></B>е виконано
<INPUT name=type type=radio value='В'><B><font color=#1414CD>В</font></B>иконано </TD></TR>
<TR class=row1 height=23><TD>Ваше ім'я:";
if (isset($wrboardname)) {
print "<input type=hidden name=name value='$wrboardname'></TD><TD><B>$wrboardname</B></td></tr>";
} else {
print "
<FONT color=#ff0000>*</FONT></TD><TD><INPUT name=name class=maxiinput maxlength=30>
<TR class=row2 height=23><TD>Ваш Е-майл:<FONT color=#ff0000>*</FONT></TD><TD><INPUT name=email class=maxiinput maxlength=30></td></tr>
<TR class=row1 height=23><TD>Місто:</TD><TD><INPUT name=gorod class=maxiinput maxlength=40></td></tr>
<TR class=row2 height=23><TD>Телефон: <BR>(по шаблону: +38(095)344356)</TD><TD><INPUT name=phone class=maxiinput maxlength=35></td></tr>
";}
print"<TR class=row1><TD>Термін розміщення заявки:</TD>
<TD><SELECT name=days style='FONT-SIZE: 13px'>
<OPTION value=7>7 днів</OPTION>
<OPTION value=14>14 днів</OPTION>
<OPTION selected value=30>30 днів</OPTION>
<OPTION value=60>60 днів</OPTION>
<OPTION value=90>90 днів</OPTION></SELECT>
</TD></TR>
";
if (!isset($wrboardname) and $antispam=="1") {print"<tr class=row1><td align='right'>Захисний код від спамерів:</td><td>";
$rand_key=array("7531","8642","9753","10864","1975","2186","3197","4298");
$imag_key=array("8642","9753","10864","1975","2186","3197","4298","7531");
$rand = mt_rand(0,7); $rnd=$rand_key[$rand]; $ima=$imag_key[$rand];
print"<img src='images/$ima.png' width=300 height=20 border=0>
</td></tr><input name=rand type=hidden value='$rnd'>
<tr class=row2><td align='right'><font color=red>Напишіть код
цифрами:</font></td><td><input name='num' type='text' maxlength=5 size=5></td></tr>";}
print"<TR class=row1><TD colspan=2 align=middle><INPUT class=longok type=submit value=Зареєструвати></TD></TR>
</FORM></TBODY></TABLE>";
}
}
include "images/bottom.html";
?>
<center><small>Powered by KNz-31 Group © 1.0<br></small></center>
</body></html>
Config.php
<? $brdname="ЖРЕР: Зареєструвати аварійну ситуацію"; // тайтл
$brdmaintext=""; // перед тайтлом
$password="admin"; // пароль адм
$sendmail="1"; // тестовий сенд майл
$sendmailadmin="0"; // отправка адміну листів?
$adminemail="davi_davia@mail.ru"; // Емайл адмін.
$fotoadd="0"; // фото не доробив
$fotodir=""; // фото не доробив
$max_file_size="100000"; // фото не доробив
$flagm1="1"; // корекція 1/0
$flagm2="1"; // +1 1/0
$showten="10"; // топ-10
$onlyregistr="0"; //подавати зареєстрованим або читачам?
$maxzag="60"; // Макс.символів категорії
$maxname="45"; // Макс символів в імені?
$maxmsg="1000"; // Макс. символів в тексту заяви
$maxdays="90"; // Макс. термін показу
$qq="7"; // КЗаявок на сторінку
$colrub="2"; // стовбчики
$brdskin="1-4-lite";
$addrem="0"; // фото
$date=date("d.m.Y"); // число.месяц.год
$time=date("H:i:s"); // часы:минуты:секунды
$datadir="./data"; // БД
$datafile="boardbase.dat"; // Імя БД
$back="<html><head><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'><meta http-equiv='Content-Language' content='ru'></head><body><center>Поверніться <a href='javascript:history.back(1)'><B>назад</B></a>"; // назад
$rubrika=""; // тимчасова змінна
?>
Размещено на Allbest.ru
...Подобные документы
Функції обліку зайнятості аудиторії. Створення програмного модуля, який виконуватиме формування електронного реєстру та презентацію вільних та зайнятих аудиторій. Призначення та область застосування програмного продукту. Опис інтерфейсу, тестування.
курсовая работа [460,5 K], добавлен 21.05.2016Формування електронного реєстру та презентація обліку зайнятості населення. Основні завдання обліку зайнятості (біржі праці). Обґрунтування доцільності створення програмного модуля. Вимоги до програмного продукту. Тестування програмного продукту.
курсовая работа [399,7 K], добавлен 30.04.2016Дослідження середовища проектування та інструментів LabView: створення, редагування і відладка віртуальних інструментів, панелей, надписів. Логіко-функціональна схема роботи користувача, опис інтерфейсу програми. Економічна доцільність розробки продукту.
дипломная работа [1,6 M], добавлен 26.10.2012Особливості роботи ресторану та необхідність автоматизації процесів документообігу. Вимоги до продукту, вид інтерфейсу для користувача, додаткові функції при роботі з базою даних та веденням обліку. Вибір операційної системи та її основних компонентів.
курсовая работа [310,6 K], добавлен 18.09.2012Головні принципи візуального програмування, опис компонентів Delphi, використаних при розробці проекту. Опис програми-додатку "Психологічний тест" та список дій користувача. Алгоритм роботи програми, її форма та ієрархія. Опис графічного інтерфейсу.
курсовая работа [1,2 M], добавлен 08.06.2010Основні завдання синоптичної метеорології. Призначення та область застосування програмного продукту "Статистика метеоспостережень", функціональні вимоги до нього. Інформаційне забезпечення, структура, опис інтерфейсу. Тестування програмного продукту.
курсовая работа [3,6 M], добавлен 30.04.2016Створення програмного модуля, який виконуватиме формування електронного підручника та презентацію тестів з пройденого матеріалу по темах, визначених користувачем. Склад та призначення програмних компонентів модуля Unit1.cpp., опис інтерфейсу додатку.
курсовая работа [381,2 K], добавлен 06.05.2016Вибір методів та засобів створення інформаційної системи для обліку і перегляду продукції на складі. Розробка моделі даних для реляційної бази даних, прикладного програмного забезпечення. Тестування програмного додатку, виявлення можливих проблем.
курсовая работа [1,1 M], добавлен 22.09.2015Мета створення інформаційних систем обліку, їх роль в управлінні економічним об'єктом. Характеристика та типи облікових задач, що підлягають автоматизації. Програмне забезпечення обліку праці та її оплати засобами універсального програмного продукту.
контрольная работа [40,1 K], добавлен 05.07.2015Загальна характеристика методів проектування та документації додатків. Розробка інтерфейсу програми для медичного діагностичного центру. Вибір архітектури. Описання логічної структури програми. Розробка структури бази даних проекту, полів таблиць.
курсовая работа [2,0 M], добавлен 21.08.2015Аналіз інформаційних потоків підприємства торгівлі. Обґрунтування необхідності автоматизації складського обліку автозапчастин. Вимоги до архітектури і продуктивності клієнтської системи. Розробка модулів, алгоритмів, структури даних, інтерфейсу програми.
дипломная работа [1,6 M], добавлен 12.04.2012Огляд існуючих програмних продуктів. Проходження процедури реєстрації. Побудова та опис логічної моделі. Розробка основних форм інтерфейсу користувача. Тестування методом чорної скриньки. Інсталяція серверної частини системи та клієнтських програм.
курсовая работа [1,8 M], добавлен 03.06.2021Опис структур даних та вмісту файлів з вхідними, вихідними даними. Проектування програми автоматизації процесу обліку (поставки та видачі) товарів для невеликого магазину. Математична постановка основних задач. Опис програмного інтерфейсу з користувачем.
курсовая работа [526,9 K], добавлен 07.10.2014Особливості системи онлайн-агрегаторів новин, універсальної програмної платформи Microsoft Window. Використання мови програмування C#, створення бази даних. Розробка програмного продукту, алгоритм його створення. Вихідний код та інструкція користувача.
дипломная работа [730,9 K], добавлен 21.01.2016Розробка системи, призначеної для автоматизації процесу реєстрації користувачів (студентів-першокурсників) в базі даних Active Directory. Інформаційне, програмне та технічне забезпечення проекту. Керівництво користувача та системного програміста.
курсовая работа [603,6 K], добавлен 19.11.2013Розробка іспитового стенда для лабораторії, визначення тривалості робіт, ресурсів на її виконання. Характеристика параметрів моделі до оптимізації. Очікувана тривалість робіт за проектом. Причини та критерії оптимізації моделі. Розрахунок бюджету проекту.
контрольная работа [1,1 M], добавлен 09.11.2015Формування електронного реєстру та презентацію готелів по країнах (регіонах) та містах, визначених користувачем. Структура даного програмного продукту, опис інтерфейсу з користувачем, план тестування, інструкція по експлуатації, функціональні вимоги.
курсовая работа [199,9 K], добавлен 30.04.2016Аналіз практиці впровадження електронного журналу у школі з виконанням автоматизованої обробки аналізу успішності учнів. Створення програмного забезпечення для ведення електронного обліку успішності школярів за допомогою Microsoft Visual Studio 2008.
курсовая работа [2,9 M], добавлен 01.12.2010Проектування бази даних реєстрації та ведення обліку автомобілів в ДАІ на прикладі київського МРЕВ ДАІ за допомогою SQL Oracle. Опис інформаційної структури ПО з використанням діючих бізнес-правил та визначенням сутностей, їх атрибутів та зв'язків.
курсовая работа [159,3 K], добавлен 05.12.2012Огляд існуючого програмного забезпечення для управління дистанційним навчанням. Структура системи дистанційного навчання Moodle, її встановлення та налаштування. Розрахунок експлуатаційних витрат і показників економічного ефекту від розробки проекту.
дипломная работа [2,1 M], добавлен 16.02.2013