Проектирование информационных систем на базе MySQL и Internet
Рефераты >> Программирование и компьютеры >> Проектирование информационных систем на базе MySQL и Internet

print "<br>";

print "<center>Анкеты претендентов будут рассмотрены 25 января 2003г.</center>";

print "</FORM>";

print end_html();

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

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

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

- “Отправить" – запускает скрипт itog.cgi и передает в него анкетные данные претендента;

- "Очистить форму" – стирает из формы ошибочно введенные анкетные данные.

anketa.cgi

use CGI qw(:standard);

use DBI;

print header();

print start_html("Анкета");

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

my $pas=param("vibor");

$var=$pas;

$var=~ s/\D+//;

if ($pas eq "") {print qq{<p ALIGN="center"><font size="5"><strong><font color="#800000">

<br>&nbspВы забыли выбрать вакансию!</font></strong></font></p>};

print "<br>";

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

print "<tr><td><FORM action=\"http://myserver/cgi-bin/list.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>";

goto quit;

}

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

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

$rows=$sth->execute();

print "<center><h1>Заполните анкетные данные</h1></center>";

print qq{<p ALIGN="center"><font size="5">};

print "<center><u>Основные требования к кандидату</u></center>";

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

{

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

if ($i==$var)

{

print "<center><table>";

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

print "<TR><TD>Специальность</TD><TD>- $Cpc</TD></TR>";

print "<TR><TD>Срок работы по специальности, лет&nbsp</TD><TD>- $Crok</TD></TR>";

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

}

}

print "</font></p>";

$sth->finish();

$dbh->disconnect();

print "<form action=\"http://myserver/cgi-bin/itog.bat\">";

print "<center><table>";

print "<TR><TD>Фамилия имя отчество</TD><TD><input name=\"fio\"></TD></TR>";

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

<TD><SELECT name=\"ed\">

<OPTION value=\"высшее0\" selected>высшее

<OPTION value=\"нез/высшее1\">нез/высшее

<OPTION value=\"ср. техническое2\">ср. техническое

<OPTION value=\"ср. специальное3\">ср. специальное

<OPTION value=\"среднее4\">среднее

</SELECT>

</TD></TR>";

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

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

print "<TR><TD>Адрес</TD><TD><input name=\"adress\"></TD></TR>";

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

print qq{<INPUT type="hidden" name="vib" value=$pas>};

print "<TR><TD><input type=\"submit\" value=\"Отправить\"></TD>

<TD><INPUT type=\"reset\" value=\"Очистить форму\"></TD></TR>";

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

print "</form>";

quit:

print end_html();

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

Проверяет введенные анкетные данные на соответствие основным требованиям к претенденту, при выполнении которых заносит их в таблицу t2 и увеличивает значение конкурса на выбранную вакансию в таблице t1, в противном случае выводит мотивированное сообщение об отказе в принятии анкеты.

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

- “Назад" - запускает скрипт itog.cgi;

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

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/\d+//;

$eda0=~ s/\D+//;

$cpca=param('cpc');

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

$croka=param('crok');

$adress=param('adress');

$var=param('vib');

$var=~ s/\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) {print qq{Извините, $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);

}

}


Страница: