Смекни!
smekni.com

Проектирование информационных систем на базе MySQL и Internet (стр. 2 из 3)

itog.cgi

use CGI qw(:standard);

use DBI;

print header();

print start_html("Добавление Анкеты");

print qq{<body bgcolor="#faf1d8">};

$dbh=DBI->connect("dbi:mysql:konti");

$sth=$dbh->prepare("SELECT * FROM t1;");

$rows=$sth->execute();

$fio=param('fio');

$eda=param('ed');

$eda0=$eda;

$eda=~ s/&bsol;d+//;

$eda0=~ s/&bsol;D+//;

$cpca=param('cpc');

$cpca=~ tr/А-Я/а-я/;

$croka=param('crok');

$adress=param('adress');

$var=param('vib');

$var=~ s/&bsol;D+//;

print "<br>";

print qq{<p ALIGN="center"><font size="4"><strong><font color="#800000">};

for($i=0;$i<$var+1;$i++)

{

($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;

if ($i==$var)

{

if ($ed="высшее") {$ed0=0;} elsif ($ed="нез/высшее") {$ed0=1;} elsif ($ed="ср. техническое") {$ed0=2;} elsif ($ed="ср. специальное") {$ed0=3;} else {$ed0=4;}

if ($eda0 > $ed0) {$fe=1;} else {$fe=0;}

if ($cpca ne $Cpc) {$fcp=1;} else {$fcp=0;}

if ($croka < $Crok) {$fcr=1;} else {$fcr=0;}

if ($fe==1 or $fcp==1 or $fcr==1) {printqq{Извините, $fio, но Ваша анкета не принята к рассмотрению из-за несоответствия указанных в ней данных требованиям к кандидату};}

else {

my $sth=$dbh->prepare("SELECT * FROM t2;");

my $rows=$sth->execute();

$flag=0;

for($j=0;$j<$rows;$j++)

{

($fio2,$eda2,$cpca2,$croka2,$adress2,$vak2)=$sth->fetchrow_array;

if ($fio2 eq $fio)

{

$flag=1;

$knkrs=$knkrs-1;

$sql="update t1 set knkrs='$knkrs' where prof='$bakans';";

$dbh->do($sql);

}

}

$knkrs=$knkrs+1;

$sql="update t1 set knkrs='$knkrs' where prof='$bakans';";

$dbh->do($sql);

$sth->finish();

if ($flag==0) {

printqq{Уважаемый, $fio, Ваша анкета принята для участия в конкурсе.<br><br>Желаем успеха!};

$sql="INSERT INTO t2(fio,eda,cpca,croka,adress,vak)values('$fio','$eda','$cpca','$croka','$adress','$bakans')";

$dbh->do($sql);

}

else {

printqq{Уважаемый, $fio, в базе данных уже имеется анкета на Ваше имя, фамилию, отчество. Если Вы хотите заполнить новую анкету - измените свои ФИО дополнив, например, цифровым символом ($fio-2).<br><br>};

}

}

}

}

print qq{</font></strong></font></p>};

$sth->finish();

$dbh->disconnect();

print "<br>";

print "<center><table border=0>";

print "<tr><td><FORM action=&bsol;"http://myserver/cgi-bin/anketa.bat&bsol;">";

print qq{<INPUT type="hidden" name="vibor" value="vibor$var">};

print "<center><INPUT type=&bsol;"submit&bsol;" value=&bsol;"Назад&bsol;"></center&bsol;>";

print "</FORM></td>";

print "<td><FORM action=&bsol;"http://myserver/cgi-bin/Konti.bat&bsol;">";

print "<center><INPUT type=&bsol;"submit&bsol;" value=&bsol;"На главную&bsol;"></center&bsol;>";

print "</FORM></td></tr>";

print "</table></center>";

print end_html();

Файл BDvakans.cgi – исполняемая программа.

Выводит список вакансий на основе данных таблицы t1 и предлагает администратору добавить новые вакансии или удалить уже занятые.

Имеет 3 кнопки:

- “Добавить" - запускает скрипт Addvakan.cgi;

- “Удалить" - запускает скрипт vakdel.cgi;

- “На главную" - запускает скрипт Konti.cgi.;

и 2 ссылки:

- “Список вакансий" - запускает скрипт BDvakans.cgi;

- “Список анкет" - запускает скрипт BDankets.cgi.

BDvakans.cgi

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 "&nbsp &nbsp &nbsp &nbsp";

print qq{<A href="http://myserver/cgi-bin/BDankets.bat">Список анкет</font></A>};

print "</center>";

print "<FORM action=&bsol;"http://myserver/cgi-bin/Addvakan.bat&bsol;">";

print "<center><table border=0>";

print qq{<tr><td><p ALIGN="center"><font size="5"><strong><font color="#800000">Список вакансий &nbsp&nbsp&nbsp</font></strong></font></td>};

print "<td><center><INPUT type=&bsol;"submit&bsol;" value=&bsol;"Добавить&bsol;"></center&bsol;></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=&bsol;"http://myserver/cgi-bin/vakdel.bat&bsol;">";

print "<center><table border=1>";

print qq{<tr ALIGN="center"><th>&nbsp№&nbsp</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=&bsol;"center&bsol;">$i</td>

<td>$bakans</td>

<TD><center><INPUT type=&bsol;"checkbox&bsol;" name=&bsol;"vdel$i&bsol;" value=&bsol;"vdel$i&bsol;"></center></TD>

</tr>";

$i--;

}

$sth->finish();

$dbh->disconnect();

print "</table></center>";

print "<br>";

print "<center><table border=0>";

print "<tr><td><center><INPUT type=&bsol;"submit&bsol;" value=&bsol;"Удалить&bsol;"></center&bsol;></td>";

print "</FORM>";

print "<td><FORM action=&bsol;"http://myserver/cgi-bin/Konti.bat&bsol;">";

print "<center><INPUT type=&bsol;"submit&bsol;" value=&bsol;"На главную&bsol;"></center&bsol;></td></tr>";

print "</FORM>";

print "</table></center>";

}

else

{

printh1("Неправильный пароль!!!");

}

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 "&nbsp &nbsp &nbsp &nbsp";

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">Списоканкет &nbsp&nbsp&nbsp</font></strong></font>};

$dbh=DBI->connect("dbi:mysql:konti");

$sth=$dbh->prepare("SELECT * FROM t2;");

$rows=$sth->execute();

print "<form action=&bsol;"http://myserver/cgi-bin/ankdel.bat&bsol;">";

print "<center><table border=1>";

print qq{<tr ALIGN="center"><th>&nbsp№&nbsp</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=&bsol;"checkbox&bsol;" name=&bsol;"vdel$i&bsol;" value=&bsol;"vdel$i&bsol;"></center></TD>

</tr>";

$i--;

}

$sth->finish();

$dbh->disconnect();

print "</table></center>";

print "<br>";

print "<center><table border=0>";

print "<tr><td><center><INPUT type=&bsol;"submit&bsol;" value=&bsol;"Удалить&bsol;"></center&bsol;></td>";

print "</FORM>";

print "<td><FORM action=&bsol;"http://myserver/cgi-bin/Konti.bat&bsol;">";

print "<center><INPUT type=&bsol;"submit&bsol;" value=&bsol;"Наглавную&bsol;"></center&bsol;></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=&bsol;"http://myserver/cgi-bin/Dob.bat&bsol;">";

print "<center><table>";

print "<TR><TD>Должность</TD><TD><input name=&bsol;"profv&bsol;"></TD></TR>";

print "<TR><TD>Образование</TD>

<TD><SELECT name=&bsol;"edv&bsol;">

<OPTION value=&bsol;"высшее&bsol;" selected>высшее

<OPTION value=&bsol;"нез/высшее&bsol;">нез/высшее

<OPTION value=&bsol;"ср. техническое&bsol;">ср. техническое

<OPTION value=&bsol;"ср. специальное&bsol;">ср. специальное

<OPTION value=&bsol;"среднее&bsol;">среднее

</SELECT>

</TD></TR>";

print "<TR><TD>Специальность</TD><TD><input name=&bsol;"cpcv&bsol;"></TD></TR>";

print "<TR><TD>Стажработыпоспециальности, лет&nbsp</TD><TD><input name=&bsol;"crokv&bsol;"></TD></TR>";

print "<TR><TD><BR></TD></TR>";

print "<TR><TD><input type=&bsol;"submit&bsol;" value=&bsol;"Отправитьданные&bsol;"></TD>

<TD><INPUT type=&bsol;"reset&bsol;" value=&bsol;"Очиститьформу&bsol;"></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();

printstart_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 "&nbsp &nbsp &nbsp &nbsp";

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/&bsol;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>};}