asp.net302网上购物系统

演示视频:

4具体设计实现

4.1前台功能模块的具体实现

4.1.1系统首页

此功能模块由default.aspx来实现,并提供了本系统绝大多数功能的入口,例如:会员注册、登录,管理员登录,商品查询,最新商品,热销商品等。

会员登录主要是将用户输入的用户名和密码与数据库中shopper表中的已有的信息进行比对,如果完全一样,则是合法用户,可以成功登录,如果不一样,则登录失败。

查询功能是通过两个下拉列表来实现的,为了避免用户自己输入出现错误导致无法查询到自己要看到的内容,该查询功能就没有使用用户输入的方式来进行关键字查询,而是通过先选择第一个下拉列表来确定categoryID(产品种类ID),然后通过这个categoryID从数据库的product表中读出所有categoryID相同的产品型号显示在第二个下拉列表中,此时,用户就可以选择想要查看的具体产品的型号,再点击"查询"即可看到相应产品的详细信息。

图4 网上购物系统首页

4.1.2商品管理

此功能模块由product.aspx,productList.aspx,productdetail.aspx来实现。

当用户进入产品中心以后,通过DataList这个控件,显示出相应产品类别的产品图片及一些相关信息,其中包含产品名称,产品类别以及相应的价格信息等,整个页面的左边部分,分类列出了各类产品,每一类产品都有自己唯一对应的categoryID,同时,categoryID在product表里都有相对应的产品名,当点击某个产品种类时,所有对应该种类categoryID的产品都会从数据库中提取出来并且显示在页面上,这样起到了导航的作用,一目了然,方便用户能够比较迅速找到自己想要的产品,如下图:

图5 产品中心

4.1.3购物车

此功能模块由cart.aspx,shoppingcart.aspx来实现。

当用户查看了相关商品的详细信息以后,如果愿意购买并且是在用户已经登录的情况下,可以在下拉列表中选择购买商品的数量并点击"添加到购物车"加入到购物车中,在这个过程中,系统将用户选择的商品所对应的productID和购买的数量都写入到数据库的shoppingcart这个表中,并生成唯一的cartID(购物车ID),一个cartID对应用户登录一次所有购买的商品,也就是说cartID和productID的对应关系既可以是一对一,也可以是一对多。最后顾客结束购物时,点击"查看我的购物车",则在可以看到相关购物信息,这就是将shoppingcart表中生成的cartID所对应的productID和购买数量的信息读出并通过GridView这个控件显示出来,如下图:

图6 查看购物车

用户可以在最终结算前放弃购买某样或多样已放在购物车中的商品,在此时点击"删除",shoppingcart表中的当前cartID所对应的productID删除,从而达到放弃购买的作用。

4.1.4订单管理

此功能模块由order.aspx,orders.aspx来实现,分别实现生成和显示当前订单以及显示历史订单的功能,当用户购物完成以后,查看自己的购物车后,并确定购买的时候,点击"最终结算"可以生成相应的订单,当系统生成订单时,会将shoppingcart表中的cartID,shopperID,totalcost插入到orders表中,代码如下:

此外,订单日期是获取当前系统时间并自动写入,而订单号也是在orders表中自动生成,每个唯一的订单号对应唯一的cartID,所以查看订单详情即是获取订单号与对应cartID,通过cartID在shoppingcart表中得到相应的信息,如下图:

图7 查看当前订单

此外,如果想查看自己所有的订单情况,就可以直接点击"所有订单",这样通过Getorder2这个函数来获取所有的订单信息,将该用户在本系统中所有的购物订单显示出来,代码如下:

4.1.5用户管理

此功能模块由register.aspx,reviseinformation.aspx来实现,分别用来实现新用户注册和用户信息修改的功能。

register.aspx实现用户注册功能,主要向shopper表中插入新用户信息,包括用户名、国家、省份、城市、联系地址、密码、姓、名、电子邮箱、邮政编码、联系电话,在本系统中用户名不允许重名,因此,系统通过checkUserExist这个函数进行判别,为了确保用户两次输入相同的密码,用一个if语句进行判别,如果两次输入的密码不相同,则有所相应提示,如果用户一切填写正确,当点击"确定"以后,会提示用户注册成功,此功能靠以下代码实现:

Response.Write(“<script
language=‘javascript’>alert(‘注册成功’)</script>”);

reviseinformation.aspx实现用户修改注册信息的功能,除了ID不能修改,其他信息都能够修改,用户名是从数据库的shopper表中读出,并通过一个Lable显示出来,当用户更改了自己的注册信息后,需要向数据库中shopper表的相关信息进行更新,通过以下代码实现:

图8 修改用户信息

4.1.6用户控件

此功能模块由head.aspx来实现,主要用于显示整个页面的顶部的图片,起到美观的效果,代码如下:

4.2后台功能模块的具体实现

4.2.1商品管理

此功能模块由productadd.aspx,productupdata.aspx,productdelete.aspx来实现。

图9 添加新产品

在这里需要注意的是,上传的产品图片的图片名一定要跟产品型号相同,这样,在产品中心中显示出来的图片才不会发生错误。

productupdata.aspx主要实现商品相关信息的更新,当管理员在产品种类和产品型号这两个下拉列表中选取想要更新的产品后,系统会自动的将其已存在的信息从product表中读取并显示在相应位置,如果要修改哪一项,就点击相应的"修改"按钮,这时就会出现一个框用来填写新信息,当点击"确定"以后,则通过相应的语句将新信息重新插入到product表中,这样就实现了对产品信息的更新,而更新后的信息会显示在相应的位置。

productdelete.aspx主要实现产品的删除操作,可以通过下拉列表直接选取产品种类和产品型号,并且可以查看选中产品的详细信息,如果确定要删除,直接点击"删除"即可。删除时,因为已经选定了产品种类和产品型号,所以也就知道了具体的productID,当点击"删除"时,就将product表中相应的productID所对应的所有产品信息删除,操作起来相当方便、快捷。

4.2.2订单管理

此功能模块由orders.aspx,orderdetail.aspx来实现,后台的订单管理与前台的订单管理的区别在于,前台的订单管理针对的对象是注册用户,用户只能够查看自己订单的情况,而后台的订单管理针对的对象是系统管理员,管理员除了能查看订单的所有信息外还可以对订单进行操作,如果已经发货给用户,则可以将订单的状态改为"已发货",反之,则订单默认的状态为"未发货"。

4.2.3用户管理

此功能模块由shoppermanage.aspx来实现,能够统计现在系统中注册用户的数量,通过如下代码实现:

SqlDataReader data = databaseAccess.ExecSql(“select count(*) from
shopper”);

并且可以通过下拉列表选择想要查看用户的用户名,即可显示其注册的相关信息,如果管理员查看到哪个用户采用明显的虚假信息进行注册,认为哪个用户是非法用户的话,可以直接将其删掉,如下图所示:

图10 用户管理

5测试与分析

5.1前台测试与分析

完成了系统主要模块的开发后,系统需要进行必要的运行测试,以检验系统的正确性,以下将按照用户购买商品的流程和管理员对主要信息的管理来测试系统。

首先来到前台用户的登陆界面,先注册一个用户名为cuit
的新用户,填写相关资料后,点击确定后,系统显示注册成功的页面,在测试中发现不同用户可以注册相同的ID,显然这在实际应用中是不现实的,因此在相关地方添加了用

确定购买商品后系统会自动生成相应的订单,用户在此时就可以查看自己的当前订单情况和以前所有购买商品的历史订单。

在首页可以实现商品的查询,通过两个下拉列表进行选择,点击"查询"按钮就可以显示想要查看的商品的详细信息。在测试中发现,当页面第一次加载时,会发现第二个下拉列表中没有显示第一个下拉列表中的产品类型所对应的产品型号,因为这两个下拉列表的信息都是从数据库中的表中读出,所以可以判断出现该问题是没有在protected
void Page_Load(object sender, EventArgs
e)这个函数中读出第二个下拉列表的相关信息,所以,又将第二个下拉列表与数据库相连接的相关代码复制到这个函数中即解决相应问题。

5.2后台测试与分析

当点击管理员登录按钮时,就来到管理员管理登陆页面,当我们不输入用户名而直接点击提交时,系统会提示以"*"的方式提示错误。这个在前台用户登陆中也同样设置了相应的验证。输入正确的用户名和密码后,便可以进入系统可以进行管理了,首先我们测试添加新商品,正确填入商品信息并提交后,系统会提示添加成功,通过打开产品中心的页面可以查看到,因此证明添加成功。

对商品信息可以进行修改,分别选择商品类别和商品型号以后,系统会显示商品信息,如果要修改,则点击相关的按钮进行操作就可以了,整体操作比较简便,非计算机专业人士也能够很快上手。

对商品的删除更为简便,只要在选择商品类别和商品型号后,只要点击"删除"就能够成功实现操作。

对于用户管理,管理员查看当前所有用户的相关信息,并且能够删除带有不良企图的非法注册用户的ID,操作起来简便、快捷。

在测试中发现了一个重大的安全漏洞,就是直接在地址栏输入后台管理的相关页面的地址时就能够直接跳转到那个页面,并且能够完成所有管理员操作,也就是说管理员登录形同虚设,攻击者可以轻而易举的进入到管理系统中进行破坏,因此加入一个判断函数并在protected
void Page_Load(object sender, EventArgs
e)这个函数中进行调用,以防止此类安全漏洞,避免攻击,
image1.png

image2.png

image3.png

image4.png

image5.png

image6.png

image7.png

封面最终.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值