分享
 
 
 

一个在线交易市场方案的设计与实现

王朝asp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

一个在线交易市场方案的设计与实现

徐鹏民 盖凌云 李常先

本文设计了一个网上商品交易系统。作为虚拟社区的一部分,系统模拟现实生活中人们的市场行为,为社区用户提供购销服务。利用该系统,用户既可发布和查询供求信息,又可实时在线交流,表达购销意向,从事购销活动,从而实现在线交易。

系统以Windows NT 4.0为平台,采用IIS 4.0做Web服务器,MS SQL Server 7.0做数据库服务器,数据库中设有用户表、供求信息表和成交记录表,三个数据表记录有关的交易数据,开发工具采用HTML、ASP和JavaScript,部分程序如下。

用户身份认证子系统

系统采用会员制,所有用户必须首先注册,才能进入市场。对用户进行分级管理,根据不同的用户级别决定用户所登记的供求信息发布时间的长短。通过用户名和密码控制用户的登记行为和交易行为。该子系统主要由程序LOGIN.HTM、 CHECK.ASP完成。

提供用户登录界面

LOGIN.HTM

……

< FORM action=“check.asp" method=

“post" name=“form1" target=“_top" >

用户:< INPUT name=“username" size=“16" >< br >

密码:< INPUT name=“userpd" type=

“password" size=“16" >< br >

< INPUT type=“submit" value=“进入" >&nbsp;&nbsp;

< INPUT type=“reset" value=“重写" >

……

对用户登录信息进行合法性验证并自动登记新用户

CHECK.ASP

……

’处理已经注册用户的操作

if not rs.eof then

’密码不正确

if userpd#trim(rs(1).value) then

response.write “< title >登录出错提示< /title >< br >"

response.write “< center >“用户名”和

“密码”不匹配!< /center >< br >"

response.write “原因与处理办法:< br >

1.如果您是第一次登录,则是该用户名已经被他人注册过!

您只能换其他名字注册;< br >"

response.write “2.如果您以前曾经用该名字注册成功,

那么是密码错误;< br >"

response.write “3.如果密码没有问题,

则可能是您的用户名已经被别人盗用,

并且盗用者更改了密码"

response.write

“请与< a [url=mailto:nicstaff@lyac.edu.cn]href=mailto:nicstaff@lyac.edu.cn >

管理员< /a >联系。"

response.write “< a href=‘javascript:history.go

(-1);' >点击这里进行修改< /a >< /body >"

response.end

else '登录正确,进入市场

response.redirect “market.htm"

end if

'处理未注册的新用户

else

sql1=“insert park_users values

(‘“&username&"',‘“&userpd&"',

getdate(),getdate(),1)"

sql2=“insert park_online values

(‘“&username&"',‘“&ip&"',getdate())"

conn.execute(sql1)

conn.execute(sql2)

response.write “< center >

!!!欢迎您光临!!!< /center >< br >"

response.write “< center >您的用户名是:”

&request.form(“username")&“ ”&

“密码是:”&request.form(“userpd")&“< br >"

response.write “再次光临您可继续使用以上数据!

< br >< /center >"

end if

……

供求信息查询子系统

用户通过本子系统可得到详细的供求信息,包括供求的商品名称、价格、数量、联系方法以及有关描述,甚至图片、音频和视频。用户可采用分类浏览和关键词查询两种方式,对于关键词查询,只要输入商品名称或表示商品用途、形状等的单词或短语,系统即可通过专门的查询算法,对数据库进行准全文式的模糊查询。本子系统主要由程序SEARCH1.ASP、SEARCH2.ASP和LINK.ASP完成。

接受并完成用户查询请求

SEARCH1.ASP

……

’来自查询界面的数据

c_type=request.querystring(“c_type")

goods_class=request.form(“D1")

s=request.form(“T1")

set conn= server.createobject(“adodb.connection")

’打开数据库

conn.connectionstring=“driver={sql server};

server=;uid=;pwd=;database="

conn.open

set session(“rs")=server.createobject

(“adodb.recordset")

’构造检索算法

if goods_class=“全部" then

sql=“select goods_name,goods_class,

description,publisher,contact,pub_date from market_goods

where client_type=‘“&c_type&"' and

goods_name like ‘%“&s&"%'"

else

sql=“select goods_name,goods_class,

description,publisher,contact,pub_date from market_goods

where client_type=‘“&c_type&"' and goods_class=

‘“&goods_class&"' and goods_name like ‘%“&s&"%'"

end if

……

if c_type=“s" then

response.write “< center >卖方市场< /center >"

else

response.write “< center >买方市场< /center >"

end if

……

< !--#include file=“link.asp"-- >

当检索结果超过一屏时,完成其他屏的显示

SEARCH2.ASP

……

for j=1 to session(“rs").pagesize

response.write“< tr >"

response.write “< td >”&session

(“rs").absoluteposition&“< /td >"

for i=0 to session(“rs").fields.count-1

response.write “< td >”&session

(“rs")(i).value&“< /td >"

next

response.write “< /tr >"

session(“rs").movenext

if session(“rs").eof then

exit for

end if

next

……

< !--#include file=“link.asp"-- >

辅助完成多屏显示检索结果

LINK.ASP

< %

if session(“rs").absolutepage >0 then

nowpage=session(“rs").absolutepage-1

else

nowpage=session(“rs").pagecount

end if

response.write “< font size=2 >

|当前页数:”&nowpage&“ "

response.write “|总页数:”&session

(“rs").pagecount&“ "

response.write “|总记录数:”&session

(“rs").recordcount&“ "

response.write “|每页记录数:”&session

(“rs").pagesize&“< /font >< br >"

for i=1 to session(“rs").pagecount

if i< >nowpage then

response.write “< a href=”“search2.asp?page=

”&i&“ ”“ >”&i&“< /a >"&“ "

else

response.write i&“ "

end if

next

% >

供求信息登记子系统

用户可以及时地将自己的商品或需求信息发布到网上。用户供求信息由后台数据库通过触发器,根据用户级别自动管理,定时删除。本子系统主要由程序GOODS_ADD.ASP完成。

接受来自用户的登记信息并完成登记

GOODS_ADD.ASP

< %

’接受来自商品登记界面的数据

username=request.cookies(“username")

……

set conn= server.createobject

(“adodb.connection")

conn.connectionstring=“driver=

{sql server};server=;uid=;pwd=;database="

conn.open

’进行用户身份验证

sql1=“select * from park_online where name=

‘“&username&"' order by name"

set rs1=conn.execute(sql1)

if rs1.eof then response.write

“拒绝访问" : response.end

sql=“insert into market_goods values

(‘“&client_type&"',‘“&goods_name&"',

‘“&goods_class&"',‘“&description&"',

‘“&publisher&"',‘“&contact&"',getdate())"

conn.execute (sql)

set conn=nothing

response.redirect “../log.htm"

% >

在线用户交谈子系统

系统模仿现实生活中的市场,在线的供求双方可以直接交流商品的有关信息,确定商品的交易价格,以决定成交与否。 主要由程序ADDSAY.ASP、 SAY.ASP完成。

ADDSAY.ASP

< %

……

says=request.form(“says")

says=server.HTMLEncode(says)

sql=“insert into park_says values(‘“&username&"',

‘“&towho&"',‘“&towhoway&"',‘“&subject&"',

‘“&says&"',getdate(),‘ ')"

conn.execute sql

set conn=nothing

response.redirect “say.asp"

……

SAY.ASP

< %

username=request.cookies(“username")

subject=request.cookies(“subject")

set conn=server.createobject (“adodb.connection")

conn.connectionstring=“driver=

{sql server};server=ntd0;uid=xpm;pwd=xpm123;database=park"

conn.open

set rs=conn.execute(“select name from park_online

where name=‘“&username&"'")

if rs.eof then

% >

< html >< head >

'对于不遵守市场规则的用户,禁止其继续留在市场

< script language=“JavaScript" >

window.open(‘kick.asp',‘market',‘resizable=no')

< /script >

< %

end if

% >

< meta http-equiv=‘content-type' content=

‘text/html; charset=gb2312' >

< title >对话区< /title >

< meta http-equiv=refresh content=

‘10;url=say.asp' >< /head >

< %

set rs=server.createobject (“adodb.recordset")

sql=“select name,towho,towhoway,contents,

time from park_saysrs.open sql,conn,3,1”

if not rs.eof then

line=1

rs.movelast

do while not rs.bof

if line >15 then

exit do

end if

if trim(rs(1))< >“全部" and trim(rs(2))=“1" then

if username=trim(rs(0)) or username=trim(rs(1)) then

response.write “< font size=2 color=

#FF0000 >”&trim(rs(0))&“只对”&trim

(rs(1))&“说 > >< /font >< font color=#0000FF >”

&rs(3)&“< font size=1 >(”&timevalue(rs(4))&“)

< /font >< /font >< br >"

line=line+1

end if

else

response.write “< font size=2 color=#FF0000 >”

&trim(rs(0))&“对”&trim(rs(1))&“说 > >

< /font >< font color=#0000FF >”&rs(3)&“

< font size=1 >(”&timevalue(rs(4))&“)< /font >

< /font >< br >"

line=line+1

end if

rs.moveprevious

loop

if rs.bof then

rs.movefirst

end if

end if

rs.close

conn.close

% >

成交记录子系统

本子系统主要是为在线用户而设,当在线用户通过交谈决定成交后,由本系统对此做详细的成交记录,包括交易双方的名字、成交商品的名称、数量、价格、要求和所提供的服务等项目。当交易产生争执时可提供证据,从而在一定程度上解决交易过程中的违规行为,以保证在线交易的信誉。本子系统通过发送COOKIES进行用户身份验证,以确保用户的真实身份,避免冒充他人从事交易的欺骗行为。系统主要由程序 AGREE.ASP完成。

记录用户交易过程,以备查询

AGREE.ASP

< %

'接受来自用户同意界面的数据

username=request.cookies(“username")

client_type=request.form(“jy1")

object=trim(request.form(“jy2"))

goods=request.form(“jy3")

amount=request.form(“jy4")

price=request.form(“jy5")

description=request.form(“jy6")

writer=trim(request.form(“jy7"))

says=writer+client_type+object+

goods+amount+price+description

set conn= server.createobject(“adodb.connection")

conn.connectionstring=“driver=

{sql server};server=;uid=;pwd=;database="

conn.open

sql1=“select * from park_online where name=

‘“&username&"' order by name"

set rs1=conn.execute(sql1)

if rs1.eof then response.write “拒绝访问" :

response.end

sql=“insert into park_says values(‘“&writer&"',

‘“&object&"',‘1',‘“&says&"',getdate(),‘1')"

'对交易用户进行身份验证,以防冒充他人

if writer=username then

conn.execute (sql)

set conn=nothing

response.write “< html >< body >< center >

< font face=黑体 size=6 >< br >OK!< /font >"

response.write “< br >< br >< a href=”

“javascript:window.close()"“ >关闭窗口< /a >

< /center >< /body >< /html >"

else

response.write “< html >< body bgcolor=

#ff0000 text=#ffffff >< center >< font face=

黑体 size=10 >< br >您不能冒充别人的名字从事交易!

< /font >"

response.write “< br >< br ><

a href=”“javascript:window.close()"“ >关闭窗口

< /a >< /center >< /body >< /html >"

end if

% >

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有