Автор работы: Пользователь скрыл имя, 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 Тестирование…………………………………...........................................
Заключение…………………………………………………………..…………..
Список использованных источников………………………………..…………
Приложение А. Код приложения ……………………….......……….………...
Приложение Б. Результаты тестирования……………..………………………
</td>
<td
width=170 valign="center" align="center"><b><font
color="blue">$ref->{Sdata}</
</td>
<td
width=50 valign="center" align="center"><b><font
color="blue">$ref->{Mprice}</
</td>
<td><a
href="#" onclick="del_id('$ref->{id}')"
</td>
</table>
LINES
}
$sth->finish();
$HTML_SITE{content}.=<<
<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:
$dbh->do("SET
NAMES 'cp1251'");
$fid = param('id1');
$fid2 = param('id2');
$action
= param('action');
$buffer2
= $ENV{'QUERY_STRING'};
#От SQL Иньекций
$fid
=~ s/('|"|\||-|=|~|>|<|(|)|\$|#)/
$fid2
=~ s/('|"|\||-|=|~|>|<|(|)|\$|#)/
$action
=~ s/('|"|\||-|=|~|>|<|(|)|\$|#)/
#/От
SQL Иньекций
@pairs2 = split(/&/, $buffer2);
foreach $pair2 (@pairs2) {
($name2, $value2) = split(/=/, $pair2);
$value2 =~ tr/+/ /;
$value2 =~ s/%([a-fA-F0-9][a-fA-F0-9])/
$FORM{$name2} = $value2;
}
$form_fid
= $FORM{"id1"}; $form_fid =~ s/('|"|\||-|=|~|>|<|(|)|\$|#)/
$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])/
# $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++;
$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\
####>>>
#Информационные сообщения
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_
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->
my
$hd; if ($ref->{ehide}){$hd="_h";}
$HTML_SITE{content}.=<<
<table border=1 cellpadding="3" cellspacing="3" align="center">
<td rowspan=8 align="center">
<img
src="/admin/Photos/$ref->{
</td>
<td
width=100 valign="center" align="center"><b><font
color="#666666">Фирма</font></
</td>
<td
width=150 valign="center" align="center"><b><font
color="blue">$ref->{Nfirma}</
</td>
<tr>
<td
width=100 valign="center" align="center"><b><font
color="#666666">Модель</font><
</td>
<td
width=150 valign="center" align="center"><b><font
color="blue">$ref->{Name_
</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}</
</td>
<tr>
<td
width=100 valign="center" align="center"><b><font
color="#666666">Ремешок</font>
</td>
<td
width=150 valign="center" align="center"><b><font
color="blue">$ref->{Kname}</
</td>
<tr>
<td
width=100 valign="center" align="center"><b><font
color="#666666">Механизм</
</td>
<td
width=150 valign="center" align="center"><b><font
color="blue">$ref->{Mname}</
</td>
<tr>
<td
width=100 valign="center" align="center"><b><font
color="#666666">Дата поставки<
</td>
<td
width=150 valign="center" align="center"><b><font
color="blue">$ref->{Data_post}
</td>
<tr>
<td
width=100 valign="center" align="center"><b><font
color="#666666">Стоимость</
</td>
<td
width=150 valign="center" align="center"><b><font
color="red">$ref->{Price}</
</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($
</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->{'
$sth->finish();
if ($action eq 'Подобрать'){&clocksfind;}
else{&viev;}
sub viev {
$HTML_SITE{title} = "Выбор часов по параметрам";
$HTML_SITE{content}.=<<
<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-приложение «Сайт системы научных конференций»