
- •Разработка web-узла для электронного бизнеса
- •Москва 2004
- •Глава_1. Установка и настройка Web-сервера под Windows 2000
- •Назначение iis
- •2. Установка iis
- •1.3. Настройка iis (Администрирование служб iis)
- •Определения
- •2.2. Простая Web-страница
- •2.3. Простой Web-узел
- •2.4. Дизайн Web-страниц
- •2.5. Интерактивный Web-узел
- •Глава_3. Технология организации электронного магазина
- •3.1. Схема данных.
- •3.2. Коды Web-страниц
- •Глава 4. Оценка эффективности проекта Web-узла
- •1.1. Назначение iis ……………………………………………………………………. 3
Глава_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>