Dim Conn,ConnStr
Set Conn=Server.CreateObject("ADODB.Connection")
ConnStr="Driver={SQL Server};Server=ZHLL;UID=sa;PWD=;DataBase=VirtualShop"
Conn.open ConnStr
%>
4.2 虚拟商场系统的实现
4.2.1 用三维实现购物场景和商品实体
如图15:这部分是虚拟商场设计中最为复杂也是技术含量最高的部分。我首先将具有3D效果的场景引入娱乐购物广场的布局中,然后把主要实现部分放在MAIN、BOTTOM和RIGHT区[14]。
在MAIN区,虚拟的人物是放在层中的,以便根据鼠标移动的方向用java script脚本控制层的位置,从而实现人物在特定的操作中随鼠标行走。地板是按活动的实体设计的,它的排列构成了虚拟人物在MAIN区移动区域,当鼠标点击它时,触发鼠标点击事件,虚拟人物就会移动到它所在的位置,同时将它标为已走过路径。在系统初始化时,我默认将所有的物品动态的摆在柜台上,每次只显示4个柜台。当用户把鼠标放在柜台中商品的上方时,商品名、价格等信息会从预先数据库调出的内容自动显示给用户。如果用户想查看具体内容或购买则可以用鼠标点击物品图片。此时商品的信息就会通过页面传递到RIGHT区并显示出来。如果顾客对这些商品不满意,他可以点击本区最右边的导航按钮,系统要根据用户的操作来辨别是进入广场最开始、下四、前四,还是最后四个商柜继续购买物品。为了方便用户在本系统中我还提供了一键进入普通购物商场的功能。
RIGHT区显示商品的信息,它将商品的类别,编号,价格等信息一一显示出来,同时读取数据库中商品的信息判断该商品是否存在三维实体图片,如果有则将其链接显示出来。当用户点击此链接时就会在此区的中下部显示我预先做好的三维实体,顾客可以用左键360度的任意旋转物品,并可以用右键放大或缩小物品。物品会自动根据不同的角度自动改变颜色显示的深浅和亮度,对于某些特殊的物品,还可以配以颜色的替换。对于不支持此插件的顾客,我增加了插件自动下载的功能。如果顾客想购买此物品,就点击“放入购物车”按钮,然后进入购物流程。
BOTTOM区主要为顾客提供快速选择并进入某一商柜的功能。当用户选择时,MAIN区就会根据用户的选择自动调入相应的商品信息。
如图16:录顾客点击“放入购物车”按钮后,系统会弹出他的购物车,并显示他已购买的物品和现在想购买的商品,他只要输入现在购买商品的数量就可以完成此步的操作,当然顾客也可以对所购买的物品逐个删除或全部清空。如果顾客想完成本次购买就可以点击收银台进行下一步的操作,也可以继续购物。
如图17:当顾客在收银台进行结算时,系统会对自动提取用户的信息(顾客姓名,地址、电话等)、本次结算费用和运送方式并生成一张临时的订单。顾客可以对其中某些信息进行修改并确认。
如图18:顾客在对订单确认后,就可以提交订单,此时不能再做任何修改。然后系统会生成一张带有订单号、本次付款总额的订单,并写入订单表(如图:19相关的源程序见附录)。
4.2.2 主页显示和用户登录
如图为了用户的操作方便和易于使用,我将菜单显示、商品搜索、会员登录、目录推荐、最新商品、推荐商品、公告板、热门商品和热卖商品等用ASP中的<!--#include file=”….asp”-->将它们集中在一个页面中进行显示(如图20)。
如图21:当会员成功登录后如图,在这部分我将用户的姓名和上次访问时间,短信、订单查询和个人信息修改等功能显示在用户控制面板中,以利于用户的操作。如图会员登录部分,对了防止无关用户用暴力破解的方式非法获得注册用户的账户和密码,在本设计中我采用了目前比较流行的登录验证码,由于它产生于服务器端,并且必须用手工输入验证码的方式才能正确提交信息,用这种方法从很大程度上解决了此问题。用户的某些数据直接涉及到某些保密信息,如何使无关用户不能窃取用户的信息,在设计中需要对这些数据进行加密处理。对于加密处理所采用的算法,我选择了MD5经典加密算法,它的安全性体现在它的算法可逆性的复杂度较高。
4.2.3 商品添加
如图22,这部分涉及的输入内容和检测较多。首先是类别选择:先从数据库中读取大类信息并显示在大类下拉菜单中,然后再根据大类下拉菜单中的名称把属于它的小类信息显示在小类下拉菜单中,当改变大类的选项时,要调用java script和VBScript脚本对小类选项中的内容自动更新;商品的名称、进货价格、市场价格等用普通文本框实现即可,推荐、促销等功能用复选框实现,另外在操作时要进行细节判断,商品名称、底价和市场价格为必须填写内容,会员价、VIP价等要根据商品的销售类型进行填写,如果是销售或特价就可以不填写会员价和VIP价。对于商品的图片,由于涉及两种形势,所以我把它们分开上传。上传后会在只读文本框中将上传之后的文件名显示出来,由于考虑到当上传的图片比较多时,会出现重名现象,所以我以日期和时间来对文件进行命名,采用的上传组件为“化境无组件上传”。
4.2.4 类别管理
如图23,对于大类商品我将它的编号基数定为:“0001”,当新添加大类时,首先要从数据库中读取最后一条记录中的编号,把它变为数值型存到某一变量中。新添加的商品类别用对变量加1后,再转换为字符型,然后再把它合并到字符“000”的后面,这样一个新的大类编号就可以构造出来。对于小类的添加过程和大类的过程类似只是将它的基数定为“00001”。
4.2.5 对站内商品信息的搜索
如何帮助用户快速的找到自己需要的产品,实现不同类别的商品的查找是必需的。因此在用户选择大类后,应自动显示出其相应的子类信息的显示。并根据用户输入的条件实现不同条件的组合和模糊查询。这一点我对每种可能情况进行细致的分类并用脚本控制实现过程[15]。
(1) 只选择大类:Sql="select * from Goods where BigSortName='"+BigSortName+"' order by BigSortName"
(2) 选择大类和小类:Sql="select * from Goods where BigSortName='"+BigSortName+"' and SmallSortName='"+SmallSortName+"' order by BigSortName,SmallSortName"
(3) 选择大类并输入商品名称:Sql="select * from Goods where BigSortName='"+BigSortName+"' and GoodsName like'%"+GoodsName+"%' order by BigSortName,GoodsName"
(4) 选择了大类、小类和输入了商品名称:Sql="select * from Goods where BigSortName='"+BigSortName+"' and SmallSortName='"+SmallSortName+"' and GoodsName like'%"+GoodsName+"%'"
4.2.6 数据库的完整性和安全性
完整性:主要是指数据的正确性和相容性,防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和出错处理。在这一部分我主要是在信息提交时用脚本控制,并在写入数据库时再次进行检查[16]。
<Script language="java script">
<!--
function LoginCheck(loginform)
{
var userid,pwd;
userid=loginform.UserId.value;
pwd=loginform.PWD.value;
if(userid=="")
{
alert("请输入账户!");
return false;
}
if (pwd=="")
{
alert("请输入密码!");
return false;
}
}
//-->
</Script>
安全性:主是保护数据库防止恶意的破坏和非法的存取,也就是说安全性措施的防范对象是非法用户和非法操作。比如现在比较流行的SQL注入技术,用下面的方法就可以从一定程度上预防:
<%
UserId=replace(trim(request("UserId")),"'","’")
PWD=MD5(trim(request("PWD")))
verifycode=trim(request("verifycode"))
…
%>
5 站点运行情况
在虚拟商场的实现中,对于设计中的系统功能模块我基本上都已实现,并且运行正常。在界面设计中三维娱乐广场部分由于受条件制约和开发水平的限制对于三维场景的实现有些不足。
6 结束语
虚拟商场是一个比较大的系统,它涉及到购物流程、支付平台和商品配送等。在这次设计中,我完成了用户注册、登录,商品信息显示、购买,生成订单和场景、实体的三维显示等基本功能。通过这次设计,我对ASP和SQLServer技术在虚拟商场中的应用有了更深一层的认识和应用。在以后虚拟商场的建设中可能会遇到一些意想不到的难题,我会在以后的学习和工作中会做进一步的学习和探索,以取得更大的进步。
参考文献
[1]中国就业指导中心.电子商务师[M].北京:中央广播电视大学出版社,2002
[2]胡志详,范志伟.3D虚拟商场.091 CSIE-S020,1~2
[3]Web设计里的软件工程思想,[4]张友生.Web工程过程,计算机工程与应用,2003,1~8
[5]聂宏珉.ASP技术在电子商务中的应用[J].天津电大学报,2003年6月,第七卷(2):1~3
[6]郑阿奇.SQLServer实用教程[M].北京:电子工业出版社,2003
[7]胡松涛.产品展示能手——Cult3D入门与提高[M].中国电力出版社,2003
[8]谭浩强.网页编程技术[M].北京:清华大学出版社,2002
[9]李晓黎,张巍.ASP+SQLServer网络应用系统开发与实例[M].北京:人民邮电出版社,2004
[10]黄心渊.3ds max5 标准教程[M].北京:人民邮电出版社,2003
[11]苏威洲.实现网络三维互动-Cult3D应用指南[M].北京:清华大学出版社,2003
[12]张海藩.软件工程导论[M].(第四版).北京:清华大学出版社,2003
[13]萨世煊,王珊.数据库系统概论[M].(第三版).北京:高等教育出版社,2002
[14]三维互动,科迪三维互动,http://www.ekedi.com
[15]吴明辉.ASP网络办公及商务应用系统开发实例导航[M].北京邮电出版社,2004
[16]java script专区,月光工作室,http://www.moon-soft.com
致谢
首先,我要真诚的感谢指导老师易法令老师。本设计在选题和完成都是在他的精心指导下完成的。同时我也深深的感谢这几年来所有代课老师和共处的同学给我的无私的帮助。
在实际完成范文的过程中,由于受个人的知识、经验和能力的限制,范文肯定存在不足之处,我恳请各位老师提出批评和指正。我会在以后的学习和工作中严格要求自己,努力提高自己的专业水平,以不辜负老师对我的期望。
周连龙
2005年5月
附录:
main.asp 用来显示娱乐购物广场
…
<Script language="java script" src="../eshop/Js/ForbidMouse.js"></script>
<SCRIPT language="java script">
<!--
function personmove(obj)
{
div1.style.posLeft=window.event.x;
div1.style.posTop=window.event.y;
obj.src="Images/target1.jpg";
}
function wallover(obj)
{
obj.src="Images/wall3.jpg"
}
function wallout(obj)
{
obj.src="Images/wall4.jpg"
}
function formsubmit(form)
{
document.Goods.submit;
}
-->
</SCRIPT>
</head>
<body bgcolor="BDBABD">
<!--定义人所在的层start-->
<div id="div1" style="position:absolute; left:240px; top:118px; width:60px; height:37px; z-index:"40"><img src="Images/girl.gif" width="50" height="100"></div>
<!--定义人所在的层end-->
<!--#include file="../eshop/ConnDB.asp"-->
<%
BigSortName=request("BigSortName")
SmallSortName=request("SmallSortName")
GoodsName=trim(request("GoodsName"))
网上商城的设计与实现(四)相关范文