Web-приложение «Сайт системы научных конференций»

Автор работы: Пользователь скрыл имя, 06 Марта 2011 в 20:26, курсовая работа

Описание работы

Цель данной курсовой работы — разработка интернет-магазина , который упрощает покупку необходимых товаров.

В качестве средств для реализации поставленной задачи были выбраны: веб-сервер Apache, sql-сервер MySQL и языки программирования Perl и JavaScript.

Содержание работы

Введение……………….………………………………………………………...
1 Web-приложение «Сайт системы научных конференций»....…………........

1.1 Анализ требований………………………………………….…................

1.1.1 Анализ предметной области…………………...................................

1.1.2 Анализ функциональных требований………....................................

1.1.3 Анализ требований к интерфейсу пользователя...............................

1.1.4 Выбор технологий и инструментальных программных средств....

1.2. Проектирование……………………………….........................................

1.2.1 Проектирование структуры данных……………………………......

1.2.2 Проектирование структуры программного обеспечения и алгоритмов.........................................................................................

1.2.3 Проектирование пользовательского интерфейса..............................

1.3 Реализация……………………………………...........................................

1.3.1 Программная реализация...................................................................

1.3.2 Кодирование…………….....................................................................

1.4 Тестирование…………………………………...........................................

Заключение…………………………………………………………..…………..

Список использованных источников………………………………..…………

Приложение А. Код приложения ……………………….......……….………...

Приложение Б. Результаты тестирования……………..………………………

Файлы: 1 файл

Содержание.doc

— 1.98 Мб (Скачать файл)

    </td>

    <td width=170 valign="center" align="center"><b><font color="blue">$ref->{Sdata}</font></b>

    </td>

    <td width=50 valign="center" align="center"><b><font color="blue">$ref->{Mprice}</font>&nbspр.</b>

    </td>

    <td><a href="#" onclick="del_id('$ref->{id}')"><img src="/admin/images/Urna.jpg" width="40" height="40" align="absmiddle" alt="Удалить"></a>

    </td>

    </table>

    LINES 

                                               }

    $sth->finish(); 

    $HTML_SITE{content}.=<<LINES;

    <form style="display: none" method="POST" action="" id="deletes" name="deletes"><input type="hidden" name="ids" value=""><input type="hidden" name="action" value="Удалить"></form>

    LINES 

    $HTML_SITE{title} = "Просмотр сведений о покупках"; 
 

                 }

    ################################################################################ 

    sub del {

    my $ids = param("ids"); $ids =~s/\D//g; 

    if ($ids) {

    #Удаление  из базы

    $sth=$dbh->do("DELETE FROM $act WHERE (id='$ids')"); # удаляем старые

             if ($sth) { push @ok, {text=>"Элемент удалён"};}

             else   { push @error, {text=>"Элемент не удалён"};}

                   }

    else {

    push @error, {text=>"Ошибка. Возможно отключен JavaScript"};

         } 

    } 
 

    1; 
 
 
 
 

    Пользовательская  часть

    Index.pl

    #!/usr/bin/perl

    use lib 'mod';

    use DBI();

    use DBD::mysql;

    use CGI qw/:standard/;

    use CGI::Cookie;

    use Time::Local;

    use CGI::Carp 'fatalsToBrowser';

    use HTML::Template; 

    require "setup.inf"; #переменные 

    #require "sub.pm"; #переменные 

    #подключеие  БД

    $dbh = DBI->connect("DBI:mysql:database=$db;host=$host","$user","$password");

    $dbh->do("SET NAMES 'cp1251'"); 

    $fid    = param('id1');

    $fid2   = param('id2');

    $action = param('action'); 
 

    $buffer2 = $ENV{'QUERY_STRING'}; 

    #От SQL Иньекций

    $fid    =~ s/('|"|\||-|=|~|>|<|(|)|\$|#)//g;

    $fid2   =~ s/('|"|\||-|=|~|>|<|(|)|\$|#)//g;

    $action =~ s/('|"|\||-|=|~|>|<|(|)|\$|#)//g;

    #/От SQL Иньекций 

    @pairs2 = split(/&/, $buffer2);

    foreach $pair2 (@pairs2) {

            ($name2, $value2) = split(/=/, $pair2);

            $value2 =~ tr/+/ /;

            $value2 =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

            $FORM{$name2} = $value2;

    } 

    $form_fid = $FORM{"id1"}; $form_fid =~ s/('|"|\||-|=|~|>|<|(|)|\$|#)//g; 

    $viev = $FORM{"viev"};

    $act = $FORM{"act"}; 

    if ($act eq ''){ #если $act пусто. Возможно при нажатии на кнопку в форме

    ($xxx) = $ENV{'REQUEST_URI'} =~ m#([^\\/:]+)$#;

     ($act) = split (/\./,$xxx);

     ($act, $fid) = split (/-/,$act);

    my $tmp = substr("$act", 0,1);

    if ($tmp eq '?'){$act = '';} 

    #@pairs2 = split(/&/, $xxx);

    #foreach $pair2 (@pairs2) {

    #        ($name2, $value2) = split(/=/, $pair2);

    #        $value2 =~ tr/+/ /;

    #        $value2 =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

    #        $FORM{$name2} = $value2;

    #}

    $act = $FORM{'act'};

    $fid = $FORM{'id1'};

    $viev = $FORM{"viev"};

                    }

    else {$fid = $form_fid;} 

    #Оставляем  только числа

    if ($fid) {$fid  =~ s/(\d+)/$1/;$fid  = $1;}

    if ($fid2){$fid2 =~ s/(\d+)/$1/;$fid2 = $1;}

    #/Оставляем  только числа 

    #------------------------------Время------------------------

    $timeoffset = 0;

    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time + (3600*$timeoffset));

    $mon++;

    $mday = "0$mday" if ($mday < 10);

    $mon  = "0$mon" if ($mon < 10);

    $hour = "0$hour" if ($hour < 10);

    $min = "0$min" if ($min < 10);

    $year = 2000 + ($year - 100);

    $data_form = "$mday.$mon.$year";

    $reg_date = "$year-$mon-$mday";

    $time_form = "$hour:$min:$sec";

    #-----------------------------------------------------------

    #############################################

    ####<<< SEREDINKA

    if ($act eq '')               {require "ind.pl";}

    elsif ($act eq 'basket')        {require "basket.pl";}

    elsif ($act eq 'all_model')        {require "all_model.pl";}

    elsif ($act eq 'model_find')       {require "model_find.pl";}

    elsif ($act eq 'firms')       {require "firms.pl";}

    else  {print "Location: http://$ENV{'SERVER_NAME'}/\n\n"; exit;}

    ####>>> 

    #Информационные  сообщения

    if (@ok){$HTML_SITE{ok} = \@ok;}

    if (@error){$HTML_SITE{error} = \@error;}

    #/Информационные сообщения 

    print "Content-type: text/html\n\n"; 

    my $template = HTML::Template->new(filename => 'html/index.html');

    $template->param(%HTML_SITE);

    my $HTML_SITE_out = $template->output; 

    print <<EOF;

    $HTML_SITE_out

    EOF

    #отключение БД

    $dbh->disconnect();

    All_model.pl

    1; 

    &blokviev;

    ################################################################################

    sub blokviev { 

    my $sth = $dbh->prepare("SELECT Model.*,Firma.Name_Firma as Nfirma,Pol.name as Pname,Kreplen.name as Kname,Mechanism.name as Mname

    FROM Model inner join Firma on Model.id_Firma = Firma.id

               inner join Pol on Model.id_Pol = Pol.id

               inner join Kreplen on Model.id_Kreplen = Kreplen.id

               inner join Mechanism on Model.id_Mechanism = Mechanism.id"); 

    $sth->execute();

    while (my $ref = $sth->fetchrow_hashref()) { 

    if (!($ref->{Name_Model})){$ref->{Name_Model} = "Не задано";}

    my $hd; if ($ref->{ehide}){$hd="_h";} 

    $HTML_SITE{content}.=<<LINES;

    <table border=1 cellpadding="3" cellspacing="3" align="center">

    <td rowspan=8 align="center">

    <img src="/admin/Photos/$ref->{Photo}" width="80" valign="absmiddle" align="absmiddle">

    </td>

    <td width=100 valign="center" align="center"><b><font color="#666666">Фирма</font></b>

    </td>

    <td width=150 valign="center" align="center"><b><font color="blue">$ref->{Nfirma}</font></b>

    </td>

    <tr>

    <td width=100 valign="center" align="center"><b><font color="#666666">Модель</font></b>

    </td>

    <td width=150 valign="center" align="center"><b><font color="blue">$ref->{Name_Model}</font></b>

    </td>

    <tr>

    <td width=100 valign="center" align="center"><b><font color="#666666">Пол</font></b>

    </td>

    <td width=150 valign="center" align="center"><b><font color="blue">$ref->{Pname}</font></b>

    </td>

    <tr>

    <td width=100 valign="center" align="center"><b><font color="#666666">Ремешок</font></b>

    </td>

    <td width=150 valign="center" align="center"><b><font color="blue">$ref->{Kname}</font></b>

    </td>

    <tr>

    <td width=100 valign="center" align="center"><b><font color="#666666">Механизм</font></b>

    </td>

    <td width=150 valign="center" align="center"><b><font color="blue">$ref->{Mname}</font></b>

    </td>

    <tr>

    <td width=100 valign="center" align="center"><b><font color="#666666">Дата поставки</font></b>

    </td>

    <td width=150 valign="center" align="center"><b><font color="blue">$ref->{Data_post}</font></b>

    </td>

    <tr>

    <td width=100 valign="center" align="center"><b><font color="#666666">Стоимость</font></b>

    </td>

    <td width=150 valign="center" align="center"><b><font color="red">$ref->{Price}</font>&nbspр.</b>

    </td>

    <tr>

    <td width=100 valign="center" align="center"><b><font color="#666666">Добавить в корзину</font></b>

    </td>

    <td width=150 valign="center" align="center"><a href="javascript:addbasket($ref->{id});"><img src="/admin/images/basket.jpg" width="40" height="40" align="absmiddle" alt="Добавить в корзину"></a>

    </td>

    </table>

    <table align="center">

    <td height="10">

    </td>

    </table>

    LINES

                                               }

    $sth->finish();

    $HTML_SITE{title} = "Просмотр всех моделей часов";

                 

                 }

    ################################################################################ 

    1;

    Model_find.pl

    1;

    my $sth = $dbh->prepare("SELECT id,Name_Firma FROM Firma");

    $sth->execute();

    while (my $ref = $sth->fetchrow_hashref()) { 

    $sel.=qq[<option value="$ref->{'id'}">$ref->{'Name_Firma'}</option>];

                                               }

    $sth->finish();

    if ($action eq 'Подобрать'){&clocksfind;}

    else{&viev;}

    sub viev {

    $HTML_SITE{title} = "Выбор часов по параметрам";

    $HTML_SITE{content}.=<<LINES;

    <form style="display: none" method="POST" action="" id="deletes" name="deletes"><input type="hidden" name="ids" value=""><input type="hidden" name="action" value="Удалить"></form>

Информация о работе Web-приложение «Сайт системы научных конференций»