Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка Web-узла для электронного бизнеса2_0...doc
Скачиваний:
10
Добавлен:
26.11.2019
Размер:
14.15 Mб
Скачать

Глава_3. Технология организации электронного магазина

В данной главе в качестве учебного примера приведена упрощенная организация электронного магазина. Подробнее эта тема изложена в [4, 5, 6].

3.1. Схема данных.

На рис. 3.1.1. приведена схема данных для базы данных, выполненной в Access.

Рис. 3.1.1. Схема данных.

Таблицы и их поля.

Адрес: - Системный номер адреса

    • Индекс

    • Район/область

    • Город

    • Улица

    • Дом

    • Корпус

    • Квартира

    • Номер телефона

    • E-mail

Покупатель: - Системный номер покупателя

    • Системный номер адреса

    • Фамилия

    • Имя

    • Отчество

Корзина: - Системный номер корзины

    • Системный номер покупателя

    • Дата создания корзины

Содержимое (корзины): - Системный номер

- Системный номер корзины

- Системный номер продукта

- Количество продукта

Продукт: - Системный номер продукта

    • Системный номер раздела

    • Наименование продукта

    • Описание продукта

    • Цена

Раздел: - Системный номер раздела

- Название раздела

3.2. Коды Web-страниц

Ниже приведены коды Web-страниц и отображения некоторых страниц в браузере.

index.asp (главная страница)

<html>

<head>

<title>Виртуальный магазин "SHOP"</title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

</head>

<frameset rows="73,569" cols="*" border="0">

<frame src="header.asp" noresize>

<frameset rows="490,73" cols="*" border="0">

<frameset cols="134,878" rows="*" border="0">

<frame src="menu.asp" noresize>

<frame src="title.asp" noresize name="TITLE">

</frameset>

<frame src="end.asp" noresize border="0">

</frameset>

</frameset>

<noframes>

<body bgcolor="#FFFFFF" text="#000000">

</body>

</noframes>

</html>

Рис. 3.2.1. Просмотр страницы index.asp в браузере.

header.asp (заголовок, включен как фрейм в другие страницы)

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

</head>

<body bgcolor="#FFCC99" text="#000000">

<p align="center">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<font size="+4"><i><b><font size="+3">МАГАЗИН "SHOP"</font></b></i></font>

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

<img src="images/web.gif" width="24" height="24">

</p>

</body>

</html>

menu.asp (меню, включено как фрейм в другие страницы)

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

</head>

<body bgcolor="#FFCC99" text="#000000">

<p><b><u>РАЗДЕЛЫ</u></b></p>

<table width="14%" border="0">

<tr>

<td><a href="book.asp" target="TITLE">Книги</a></td>

</tr>

<tr>

<td><a href="comp.asp" target="TITLE">Компьютеры</a></td>

</tr>

<tr>

<td> <a href="telef.asp" target="TITLE">Телефоны</a></td>

</tr>

</table>

<p> </p>

<p><b><u>КОРЗИНА</u></b></p>

<table width="14%" border="0">

<tr>

<td><a href="basket.asp"

target="TITLE">Содержимое</a></td>

</tr>

<tr>

<td><a href="form.asp" target="TITLE">Оформление

заказа</a></td>

</tr>

</table>

<p> </p>

</body>

</html>

title.asp (определяет содержимое центральной части домашней страницы)

<html>

<head>

<title>Магазин "SHOP"</title>

<meta http-equiv="Content-Type" content="text/html;

charset=windows-1251">

<base target="_self">

</head>

<body bgcolor="#FFFFFF" text="#000000">

<p align="center"> </p>

<p align="center"><font size="+2"><cite><font

size="+3"><b>Добро пожаловать!</b></font></cite></font></p>

<p align="center"> </p>

<p align="center"><font size="+2">Мы рады Вас приветствовать в нашем магазине.</font></p>

<p align="center"><font size="+2">Выберите интересующий

раздел.</font></p>

<p align="center"> </p>

<p align="center"><font size="+2">Приятных покупок!</font></p>

<p> </p>

<p align="right"><i>С уважением, "Shop".</i></p>

<p align="right"> <i> 23.04.2004</i> </p>

</body>

</html>

end.asp (определяет содержимое нижней части домашней страницы)

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html;

charset=windows-1251">

</head>

<body bgcolor="#FFCC99" text="#000000">

<pre>

<font color="10" face="Times New Roman, Times, serif">Свои

пожелания и замечания направляйте по адресу <a href=

"mailto:shop@shop.ru">shop@shop.ru</a>

</font>

<font color="10" face="Times New Roman, Times, serif">Служба

информации о доставке заказов: тел. (095) 111-22-33</font>

</pre>

</body>

</html>

book.asp (добавить книги в корзину)

<% @LANGUAGE = VBSCRIPT %>

<%

Set dbShop=Server.CreateObject("ADODB.Connection")

strShop = "Shop"

dbShop.Open strShop

Set rsShopper=Server.CreateObject("ADODB.Recordset")

sqlText="SELECT * FROM Basket WHERE sn_Shopper=1"

rsShopper.Open sqlText, dbShop, 3, 3

IF rsShopper.RecordCount =0 THEN

dbShop.Execute("INSERT INTO Basket (sn_Shopper,

BasketDate) VALUES (1,'" & Date &"')")

END IF

rsShopper.Close

Set rsShopper = Nothing

%>

<html>

<head>

<title> Виртуальный магазин "SHOP". Список книг </title>

<meta http-equiv="Content-Type" content="text/html;

charset=windows-1251">

</head>

<body bgcolor="#FFFFFF" text="#000000">

<table width="91%" border="0">

<tr>

<td>

<div align="center"><b><u><font size="+2">Список

книг<br><br></font></u></b></div>

</td>

</tr>

<tr>

<td>

<form name="form1" method="post" action="book_text">

<table width="99%" border="1">

<%

Set rsBook=Server.CreateObject("ADODB.Recordset")

sqlText="SELECT sn_Product, ProductName,

ProductDescription, ProductPrice FROM Product WHERE

sn_Partition=1 ORDER BY ProductName"

rsBook.Open sqlText, dbShop, 3, 3

While Not rsBook.EOF

%>

<tr>

<td width="6%"><% 'Response.Write rsBook("sn_Product") %>

<input type="text" name="CodeProduct" size="4"

value="<%Response.Write rsBook("sn_Product") %>" >

</td>

<td width="15%"><% Response.Write rsBook("ProductName") %>

</td>

<td width="43%"><%Response.WritersBook("ProductDescription")

%>

</td>

<td width="15%"><% Response.Write rsBook("ProductPrice") & "

руб."%>

</td>

<td width="11%"> кол-во

<input type="text" name="textfield" size="4" value="1">

</td>

<td width="10%"><input type="checkbox" name="AddIntoBasket"

value="true">

</td>

<%

rsBook.MoveNext

Wend

rsBook.Close

Set rsBook = Nothing

dbShop.Close

Set dbShop = Nothing

%>

</tr>

</table> <p>

<input type="submit" name="AddBasket" value="Добавить

товары в корзину">

</p>

</form>

</td>

</tr>

<tr>

<td> </td>

</tr>

</table>

<p> </p>

</body>

</html>

Рис. 3.2.2. Просмотр страницы book.asp в браузере.

comp.asp (добавить компьютеры в корзину)

<% @LANGUAGE = VBSCRIPT %>

<%

Set dbShop=Server.CreateObject("ADODB.Connection")

strShop = "Shop"

dbShop.Open strShop

Set rsShopper=Server.CreateObject("ADODB.Recordset")

sqlText="SELECT * FROM Basket WHERE sn_Shopper=1"

rsShopper.Open sqlText, dbShop, 3, 3

IF rsShopper.RecordCount =0 THEN

dbShop.Execute("INSERT INTO Basket (sn_Shopper,

BasketDate) VALUES (1,'" & Date &"')")

ELSE

dbShop.Execute("UPDATE Basket SET BasketDate='" &

Date &"'")

END IF

rsShopper.Close

Set rsShopper = Nothing

%>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

</head>

<body bgcolor="#FFFFFF" text="#000000">

<table width="88%" border="0">

<tr>

<td>

<div align="center">

<p><b><u><font size="+2">Список

компьютеров</font></u></b></p>

<p> </p>

</div>

</td>

</tr>

<tr>

<td>

<form name="form1" action="comp_text.asp" method="post">

<table width="100%" border="1" cellspacing="1"

cellpadding="1">

<%

Set rsBook=Server.CreateObject("ADODB.Recordset")

sqlText="SELECT sn_Product, ProductName, ProductDescription,

ProductPrice FROM Product WHERE sn_Partition=2 ORDER BY

ProductName"

rsBook.Open sqlText, dbShop, 3, 3

rsBook.MoveFirst

While Not rsBook.EOF

%>

<tr>

<td width="7%">

<% 'Response.Write rsBook("sn_Product") %>

<input type="text" name="CodeProduct" size="4"

value="<%= rsBook("sn_Product") %>">

</td>

<td width="16%"><% Response.Write rsBook("ProductName") %>

</td>

<td width="44%">

<% Response.Write rsBook("ProductDescription") %>

</td>

<td width="17%">

<% Response.Write rsBook("ProductPrice") & " руб."%>

</td>

<td width="11%"> кол-во

<input type="text" name="textfield" size="4" value="1">

</td>

<td width="5%" <input type="checkbox" name="AddIntoBasket"

value="true">

</td>

</tr>

<%

rsBook.MoveNext

Wend

rsBook.Close

Set rsBook = Nothing

%>

</table>

<p>

<input type="submit" name="AddBasket" value="Добавить

товары в корзину">

</p>

</form>

</td>

</tr>

<tr>

<td>  </td>

</tr>

</table>

<p> </p>

<%

dbShop.Close

Set dbShop = Nothing

%>

</body>

</html>

comp_text.asp

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

</head>

<body bgcolor="#FFCCCC" text="#000000">

<%

IF Request.Form("AddIntoBasket").Count=0 THEN

Response.Write "К сожалению, Вы не выбрали <I><B> ни

одного </I></B> продукта данного раздела."

ELSE

Set dbShop=Server.CreateObject("ADODB.Connection")

strShop = "Shop"

dbShop.Open strShop

Set rsSnBasket=Server.CreateObject("ADODB.Recordset")

sqlText="select sn_Basket from Basket"

rsSnBasket.Open sqlText, dbShop, 3, 3

FOR intLoop = 1 TO Request.Form("AddIntoBasket").Count

dbShop.Execute("INSERT INTO BasketItem (sn_Basket,

sn_Product, sn_Quantity ) " & _

"VALUES (" & rsSnBasket("sn_Basket") & "," & _

(Request.Form("CodeProduct") (intLoop)) & "," & _

(Request.Form("textfield") (intLoop)) & ")")

Next

rsSnBasket.Close

Set rsSnBasket = Nothing

Response.Write "Выбранные товары добавлены в корзину!"

END IF

%>

</body>

</html>

telef.asp

<% @LANGUAGE = VBSCRIPT %>

<%

Set dbShop=Server.CreateObject("ADODB.Connection")

strShop = "Shop"

dbShop.Open strShop

Set rsShopper=Server.CreateObject("ADODB.Recordset")

sqlText="SELECT * FROM Basket WHERE sn_Shopper=1"

rsShopper.Open sqlText, dbShop, 3, 3

IF rsShopper.RecordCount =0 THEN

dbShop.Execute("INSERT INTO Basket (sn_Shopper,

BasketDate) VALUES (1,'" & Date &"')")

END IF

rsShopper.Close

Set rsShopper = Nothing

%>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

</head>

<body bgcolor="#FFFFFF" text="#000000">

<table width="95%" border="0">

<tr>

<td>

<div align="center"><b><u><font size="+2">Список

телефонов<br><br></font></u></b></div>

</td>

</tr>

<tr>

<td>

<form name="form1" method="post" action="">

<table width="100%" border="1">

<%

Set rsBook=Server.CreateObject("ADODB.Recordset")

sqlText="SELECT ProductName, ProductDescription,

ProductPrice FROM Product WHERE sn_Partition=3"

rsBook.Open sqlText, dbShop, 3, 3

IF rsBook.RecordCount=0 THEN

Response.Write("К сожалению товар данной категории еще не

поступил на склады." & "<BR>" &_

"Будем рады Вас видеть через неделю.")

ELSE

While Not rsBook.EOF

%>

<tr>

<td width="22%">

<% Response.Write "<I>" & rsBook("ProductName")

& "</I>" %>

</td>

<td width="48%">

<% Response.Write rsBook("ProductDescription") %>

</td>

<td width="13%">

<% Response.Write rsBook("ProductPrice") & "руб."%>

</td>

<td width="11%"> кол-во

<input type="text" name="textfield" size="7"

value="1">

</td>

<td width="6%">

<input type="checkbox" name="checkbox" value="true">

</td>

</tr>

<%

rsBook.MoveNext

Wend

rsBook.Close

Set rsBook = Nothing

%>

<p><input type="submit" name="AddBasket" value="Добавить

товары в корзину"></p>

<%

END IF

dbShop.Close

Set dbShop = Nothing

%>

</table>

</form>

</td>

</tr>

<tr>

<td> </td>

</tr>

</table>

<p> </p><p> </p>

</body>

</html>

basket.asp (потребительская корзина)

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

</head>

<%

Set dbShop=Server.CreateObject("ADODB.Connection")

strShop = "Shop"

dbShop.Open strShop

%>

<body bgcolor="#FFFFFF" text="#000000">

<table width="75%" border="0">

<tr>

<td>

<div align="center"><b><u><font size="+2">Содержимое

корзины</font></u></b>

</div>

</td>

</tr>

<%

Set rsSnBasket=Server.CreateObject("ADODB.Recordset")

sqlText="SELECT BasketItem.sn_Quantity AS Quantity,

Product.ProductName AS Name, Product.ProductPrice AS

Price " & _

" FROM Product INNER JOIN BasketItem ON

Product.sn_Product = BasketItem.sn_Product " & _

" WHERE (((BasketItem.sn_BasketItem)=1)) "

rsSnBasket.Open sqlText, dbShop, 3, 3

While Not rsSnBasket.EOF

%>

<tr>

<td>

<%Response.Write rsSnBasket("Quantity")%>

<%Response.Write rsSnBasket("Name")%>

</td>

</tr>

<%

rsSnBasket.MoveNext

Wend

%>

<tr>

<td>

<hr>

<b>ИТОГО:</b></td>

</tr>

</table>

<%

rsSnBasket.Close

Set rsSnBasket = Nothing

dbShop.Close

Set dbShop = Nothing

%>

</body>

</html>

form.asp (оформление заказа)

<html>

<head>

<title>Оформление заказа</title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

</head>

<body bgcolor="#FFFFFF" text="#000000">

<form name="form1" action="" method="get">

<table width="40%" border="0">

<tr bordercolor="#CCCCCC">

<td width="24%" bordercolor="#CCCCCC"

bgcolor="#FFFFFF">Фамилия*

</td>

<td width="76%">

<input type="text" name="LastName" size="50">

</td>

</tr>

<tr bordercolor="#CCCCCC">

<td width="24%">Имя*</td>

<td width="76%">

<input type="text" name="Name" size="50">

</td>

</tr>

<tr bordercolor="#CCCCCC">

<td width="24%">Отчество*</td>

<td width="76%">

<input type="text" name="SecondName" size="50">

</td>

</tr>

</table>

<p align="left"><B><I> АДРЕС</I></B></p>

<table width="52%" border="0">

<tr>

<td width="20%">Индекс* </td>

<td width="16%"> </td>

<td width="64%">

<input type="text" name="Index" size="50">

</td>

</tr>

<tr>

<td width="20%">Район/область</td>

<td width="16%"> </td>

<td width="64%">

<input type="text" name="Region" size="50">

</td>

</tr>

<tr>

<td width="20%">Город* </td>

<td width="16%"> </td>

<td width="64%">

<input type="text" name="Town" size="50">

</td>

</tr>

<tr>

<td width="20%">Улица*</td>

<td width="16%"> </td>

<td width="64%">

<input type="text" name="Street" size="50">

</td>

</tr>

</table>

<table width="52%" border="0">

<tr>

<td width="136">Дом*

<input type="text" name="House" size="10">

</td>

<td width="142">Корпус

<input type="text" name="Building" size="10">

</td>

<td width="230"> Квартира

<input type="text" name="Flat" size="10">

</td>

</tr>

</table>

<table width="52%" border="0">

<tr>

<td width="17%">Телефон</td>

<td width="83%">(

<input type="text" name="TelCode" size="5">)

<input type="text" name="Phone">

</td>

</tr>

<tr>

<td width="17%">E-mail</td>

<td width="83%">

<input type="text" name="EAddr">

@

<input type="text" name="EServ">

</td>

</tr>

</table>

<blockquote>

<div align="left"></div>

<p align="center">

<input type="submit" name="Submit" value="Submit">

<input type="reset" name="Submit2" value="Reset">

</p>

</blockquote>

<p align="left"> </p>

<blockquote>

<div align="left"></div>

</blockquote>

</form>

<p> </p>

</body>

</html>

Рис. 3.2.3. Просмотр в браузере результата выполнения страницы form.asp.

global.asa

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Application_OnStart

Set dbShop=Server.CreateObject("ADODB.Connection")

strShop = "driver={Microsoft Access Driver (*.mdb)};" &_

"dbq=C:\Inetpub\wwwroot\Shop\shop.mdb"

dbShop.Open strShop

End Sub

Sub Application_OnEnd

dbShop.Close

set dbShop = Nothing

End Sub

</SCRIPT>