Студентам > Курсовые > Проектирование информационных систем на базе MySQL и Internet
Проектирование информационных систем на базе MySQL и InternetСтраница: 3/4
use CGI qw(:standard);
use DBI;
print header();
print start_html("Список
Вакансий");
print qq{<body bgcolor="#faf1d8">};
my $pass=param("111");
if (111)
{
print
"<center><h1>База данных</h1></center>";
print
"<center>";
print qq{<A href="http://myserver/cgi-bin/BDvakans.bat"><font
size="5">Список вакансий</A>};
print "   
   ";
print qq{<A href="http://myserver/cgi-bin/BDankets.bat">Список
анкет</font></A>};
print
"</center>";
print "<FORM
action="http://myserver/cgi-bin/Addvakan.bat">";
print
"<center><table border=0>";
print qq{<tr><td><p
ALIGN="center"><font
size="5"><strong><font color="#800000">Список
вакансий    </font></strong></font></td>};
print
"<td><center><INPUT type="submit" value="Добавить"></center></td></tr></p>";
print
"</table></center>";
print
"</FORM>";
$dbh=DBI->connect("dbi:mysql:konti");
$sth=$dbh->prepare("SELECT
* FROM t1;");
$rows=$sth->execute();
print "<form
action="http://myserver/cgi-bin/vakdel.bat">";
print
"<center><table border=1>";
print qq{<tr
ALIGN="center"><th> № </th>
<th>Вакансия</th>
<th>Пометить<br>на удаление</th></font></tr>};
for($i=0;$i<$rows;$i++)
{
($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;
$i++;
print"<tr>
<td
ALIGN="center">$i</td>
<td>$bakans</td>
<TD><center><INPUT
type="checkbox" name="vdel$i" value="vdel$i"></center></TD>
</tr>";
$i--;
}
$sth->finish();
$dbh->disconnect();
print
"</table></center>";
print "<br>";
print
"<center><table border=0>";
print "<tr><td><center><INPUT
type="submit" value="Удалить"></center></td>";
print
"</FORM>";
print
"<td><FORM action="http://myserver/cgi-bin/Konti.bat">";
print
"<center><INPUT type="submit" value="На главную"></center></td></tr>";
print
"</FORM>";
print
"</table></center>";
}
else
{
print h1("Неправильный
пароль!!!");
}
print end_html();
Файл BDankets.cgi – исполняемая программа.
Выводит список анкет на основе данных таблицы
t2 и предлагает администратору удалить наименее перспективные.
Имеет 2 кнопки:
- “Удалить" - запускает скрипт
ankdel.cgi;
- “На главную" - запускает скрипт
Konti.cgi;
и 2 ссылки:
- “Список вакансий"
- запускает скрипт BDvakans.cgi;
- “Список анкет" - запускает скрипт
BDankets.cgi.
BDankets.cgi
use CGI qw(:standard);
use DBI;
print header();
print start_html("Список Анкет");
print qq{<body bgcolor="#faf1d8">};
my $pass=param("111");
print "<center><h1>База данных</h1></center>";
print "<center>";
print qq{<A href="http://myserver/cgi-bin/BDvakans.bat"><font
size="5">Список вакансий</A>};
print "       ";
print qq{<A href="http://myserver/cgi-bin/BDankets.bat">Список анкет</font></A>};
print "</center>";
print qq{<p ALIGN="center"><font
size="5"><strong><font color="#800000">Список анкет    </font></strong></font>};
$dbh=DBI->connect("dbi:mysql:konti");
$sth=$dbh->prepare("SELECT * FROM t2;");
$rows=$sth->execute();
print "<form action="http://myserver/cgi-bin/ankdel.bat">";
print "<center><table border=1>";
print qq{<tr ALIGN="center"><th> № </th>
<th>Фамилия Имя Отчество</th>
<th>Образование</th>
<th>Специальность</th>
<th>Срок работы по спец-ти</th>
<th>Адрес</th>
<th>Вакансия</th>
<th>Пометить<br>на
удаление</th></font></tr>};
for($i=0;$i<$rows;$i++)
{
($fio,$eda,$cpca,$croka,$adress,$vak)=$sth->fetchrow_array;
$i++;
print"<tr>
<td><center>$i</center></td>
<td><center>$fio</center></td>
<td><center>$eda</center></td>
<td><center>$cpca</center></td>
<td><center>$croka</center></td>
<td><center>$adress</center></td>
<td><center>$vak</center></td>
<TD><center><INPUT type="checkbox"
name="vdel$i" value="vdel$i"></center></TD>
</tr>";
$i--;
}
$sth->finish();
$dbh->disconnect();
print "</table></center>";
print "<br>";
print "<center><table border=0>";
print "<tr><td><center><INPUT
type="submit" value="Удалить"></center></td>";
print "</FORM>";
print "<td><FORM action="http://myserver/cgi-bin/Konti.bat">";
print "<center><INPUT type="submit"
value="На главную"></center></td></tr>";
print "</FORM>";
print "</table></center>";
print end_html();
Файл Addvakan.cgi – исполняемая программа.
Предлагает администратору форму для внесения данных для новой
вакансии
Имеет 2 кнопки:
- “Отправить данные" - запускает скрипт
Dob.cgi
и передает в него данные новой вакансии;
- “Очистить форму" - стирает из формы ошибочно введенные данные.
Addvakan.cgi
use CGI qw(:standard);
use DBI;
print header();
print
start_html("Добавление Вакансии");
print qq{<body
bgcolor="#faf1d8">};
print
"<center><h1>Заполните данные для новой
вакансии</h1></center>";
print "<form action="http://myserver/cgi-bin/Dob.bat">";
print "<center><table>";
print "<TR><TD>Должность</TD><TD><input
name="profv"></TD></TR>";
print
"<TR><TD>Образование</TD>
<TD><SELECT
name="edv">
<OPTION value="высшее"
selected>высшее
<OPTION value="нез/высшее">нез/высшее
<OPTION value="ср. техническое">ср.
техническое
<OPTION value="ср. специальное">ср. специальное
<OPTION value="среднее">среднее
</SELECT>
</TD></TR>";
print "<TR><TD>Специальность</TD><TD><input
name="cpcv"></TD></TR>";
print "<TR><TD>Стаж работы по специальности, лет </TD><TD><input
name="crokv"></TD></TR>";
print "<TR><TD><BR></TD></TR>";
print "<TR><TD><input
type="submit" value="Отправить данные"></TD>
<TD><INPUT type="reset" value="Очистить форму"></TD></TR>";
print "</table></center>";
print "<br>";
print "</form>";
print end_html();
Файл Dob.cgi – исполняемая программа.
Служебная программа для проверки наличия введенных данных и их
внесения в таблицу t1. При отсутствии данных предлагает вернуться
назад или на главную страницу.
Имеет 2 кнопки:
- “Назад" - запускает скрипт Addvakan.cgi;;
- “На главную" - запускает скрипт
Konti.cgi;;
и 2 ссылки:
- “Список вакансий"
- запускает скрипт BDvakans.cgi;
- “Список анкет" - запускает скрипт
BDankets.cgi.
Dob.cgi
use CGI qw(:standard);
use DBI;
print header();
print start_html("Добавление Вакансии");
print qq{<body
bgcolor="#faf1d8">};
print "<center><h1>База данных</h1></center>";
print "<center>";
print qq{<A href="http://myserver/cgi-bin/BDvakans.bat"><font
size="5">Список вакансий</A>};
print "       ";
print qq{<A href="http://myserver/cgi-bin/BDankets.bat">Список
анкет</font></A>};
print "</center>";
$dbh=DBI->connect("dbi:mysql:konti");
$sth=$dbh->prepare("SELECT * FROM t1;");
my $profv=param("profv");
my $edv=param("edv");
my $cpcv=param("cpcv");
my $crokv=param("crokv");
$crokv=~ s/D+//;
if ($profv ne "")
{
$sql=qq{insert into t1(prof, knkrs, ed, cpc, crok) values
('$profv',0,'$edv','$cpcv','$crokv');};
$dbh->do($sql);
print "<br>";
$sth->finish();
$dbh->disconnect();
}
else {print qq{<br><center><font
size="4">Вы не ввели данные. Повторите ввод.</font></center><br>};}
print "<center><table border=0>";
print "<tr><td><FORM action="http://myserver/cgi-bin/Addvakan.bat">";
print "<center><INPUT type="submit"
value="Назад"></center>";
print "</FORM></td>";
print "<td><FORM action="http://myserver/cgi-bin/Konti.bat">";
print "<center><INPUT type="submit"
value="На главную"></center>";
print "</FORM></td></tr>";
print "</table></center>";
print end_html();
Файл vakdel.cgi– исполняемая программа.
Служебная программа для удаления вакансии из таблицы
t1.
Имеет 1 кнопку:
- “Назад" - запускает скрипт
Konti.cgi;
и 2 ссылки:
- “Список вакансий"
- запускает скрипт BDvakans.cgi;
- “Список анкет" - запускает скрипт
BDankets.cgi.
vakdel.cgi
use CGI qw(:standard);
use DBI;
print header();
print start_html("Удаление Вакансии");
print qq{<body bgcolor="#faf1d8">};
print "<center><h1>База данных</h1></center>";
print "<center>";
print qq{<A href="http://myserver/cgi-bin/BDvakans.bat"><font
size="5">Список вакансий</A>};
print "       ";
print qq{<A href="http://myserver/cgi-bin/BDankets.bat">Список
анкет</font></A>};
print "</center>";
$dbh=DBI->connect("dbi:mysql:konti");
$sth=$dbh->prepare("SELECT * FROM t1;");
$rows=$sth->execute();
for($i=0;$i<$rows;$i++)
{ $i++;
($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;
my $var=param("vdel$i");
$var=~ s/D+//;
if ($i==$var)
{
$sql="delete from t1 where prof="$bakans";";
$dbh->do($sql);
}
$i--;
}
$sth->finish();
$dbh->disconnect();
print "<br>";
print "<FORM action="http://myserver/cgi-bin/Konti.bat">";
print "<center><INPUT type="submit"
value="На главную"></center>";
print "</FORM>";
print end_html();
Файл ankdel.cgi– исполняемая программа.
Служебная программа для удаления анкеты из таблицы
t2 и уменьшения значения конкурса на вакансию в таблице
t1.
Имеет 1 кнопку:
- “На главную" - запускает скрипт
Konti.cgi;
и 2 ссылки:
- “Список вакансий"
- запускает скрипт BDvakans.cgi;
- “Список анкет" - запускает скрипт
BDankets.cgi.
ankdel.cgi
use CGI qw(:standard);
use DBI;
print header();
print start_html("Удаление Анкеты");
print qq{<body bgcolor="#faf1d8">};
print "<center><h1>База данных</h1></center>";
print "<center>";
print qq{<A href="http://myserver/cgi-bin/BDvakans.bat"><font
size="5">Список вакансий</A>};
print "       ";
print qq{<A href="http://myserver/cgi-bin/BDankets.bat">Список
анкет</font></A>};
print "</center>";
$dbh=DBI->connect("dbi:mysql:konti");
$sth=$dbh->prepare("SELECT * FROM t2;");
$rows=$sth->execute();
for($i=0;$i<$rows;$i++)
{ $i++;
($fio, $eda, $cpca, $croka, $adress, $vak)=$sth->fetchrow_array;
my $var=param("vdel$i");
$var=~ s/D+//;
if ($i==$var)
{
$sql="delete from t2 where fio="$fio";";
$dbh->do($sql);
my $sth=$dbh->prepare("SELECT * FROM t1;");
my $rows=$sth->execute();
for($i=0;$i<$rows;$i++)
{
($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;
if ($bakans eq $vak)
{
$knkrs=$knkrs-1;
$sql="update t1 set knkrs='$knkrs' where prof='$vak';";
$dbh->do($sql);
}
}
$sth->finish();
}
$i--;
}
$sth->finish();
$dbh->disconnect();
print "<br>";
print "<FORM action="http://myserver/cgi-bin/Konti.bat">";
print "<center><INPUT type="submit"
value="На главную"></center>";
print
"</FORM>";
print end_html();
Схема размещения информации
на Internet-узле
На сервере
информация располагается следующим образом:
C:Apache
htdocs
|
|
Kontinental-HH.htm
titul.htm
|
cgi-bin
|
|
Addanket.bat
Addvakan.bat
Addvakan.cgi
ankdel.bat
ankdel.cgi
anketa.bat
anketa.cgi
BDankets.bat
BDankets.cgi
BDvakans.bat
BDvakans.cgi
Dob.bat
Dob.cgi
itog.bat
itog.cgi
Konti.bat
Konti.cgi
konti.txt
list.bat
list.cgi
start.bat
vakdel.bat
vakdel.cgi
|
|