上一篇:一个基于ASP的标题广告管理系统(三) >>
一个基于ASP的标题广告管理系统(二)
管理部分共有12个asp文件,这些脚本的主要功能分别如下:
banneradminlogin.asp:管理功能的登录页面。默认的用户名称是“admin user”,密码是“password”。
checkbanneradministrationpassword.asp:检查使用管理功能的用户的密码。
notloggedin.asp:“没有登录”提示页面,如果在登录之前访问管理页面,则显示该页面。
banneradministration.asp:这是管理功能的主界面,列出了所有的广告,并提供两个按钮。这两个按钮分别用于新增广告和新增广告客户。点击广告客户名字可以编辑该广告客户,点击广告文本可以编辑该广告。
advertisement.asp:输入新广告的信息,或编辑当前广告信息,或调用deleteadvertisement.asp删除当前广告。
advertiser.asp:输入新广告客户的信息,或编辑当前广告客户信息,或调用
deleteadvertiser.asp删除当前广告客户。
addadvertisement.asp:新增广告记录,从advertisement.asp表单获取信息,存储到数据库。
addadvertiser.asp:新增广告客户记录,从advertiser.asp表单获取信息,存储到数据库。
updateadvertisement.asp:从advertisement.asp表单获取信息,更新数据库中与当前广告具有相同advertisementid的记录。
updateadvertiser.asp:获取advertiser.asp表单信息,更新数据库中与当前广告客户具有相同advertiserid的记录。
deleteadvertisement.asp:根据当前选中广告的advertisementid,删除数据库中的相应记录。注意:删除并返回管理主界面后有时需要重新刷新。
deleteadvertiser.asp:根据当前选中广告客户的advertiserid,删除相应的数据库记录。
【图1】
完整代码请从本文后面下载。假设所有文件均在inetpubscripts目录下,则登录管理功能的url为:http://localhost/scripts/banneradminlogin.asp。所有其他功能均可从此开始访问。
接下来我们介绍管理功能脚本中的一些关键问题。
㈠ 安全
大多数执行管理功能的页面受密码保护,这些页面在执行其任务之前都会检查一个session变量以确认用户已经成功地登录。检查代码如下所示:
检查用户是否已经登录
if session( "loggedin" ) <> true then
response.redirect( "notloggedin.asp" )
end if
这里所采用的安全机制较为简单,更多的说明参见《在asp应用中验证用户身份》。
㈡ 列出所有的广告
banneradministration.asp页面启动时会列出数据库中的所有广告记录。这部分功能通过一个简单的查询和一个记录集对象完成,如下所示:
列出数据库中的所有广告
set cn = server.createobject( "adodb.connection" )
cn.open "bannerbuddy"
set rs = server.createobject( "adodb.recordset" )
set rs2 = server.createobject( "adodb.recordset" )
strsql = "select * from advertisement"
rs.open strsql, cn
strcrlf = chr( 13 ) + chr( 10 )
while not rs.eof and not rs.bof
根据广告客户编号(advertiserid)查找客户名称
strsql = "select name from advertiser where advertiserid = " + _
cstr( rs.fields( "advertiserid" ) )
rs2.open strsql, cn
stradvertiser = ""
if not rs2.eof and not rs2.bof then
stradvertiser = rs2.fields( "name" )
end if
response.write( "</tr>" + strcrlf )
rs2.close
rs.movenext
wend
系统假定数据库db.mdb的odbc dsn为bannerbuddy,因此在运行程序之前必需设置好这个dsn。有关数据库连接和操作的更多说明,参见《asp应用中数据库记录的选取与过滤》。
在广告清单中,单击广告客户名字可以编辑该广告客户的信息,单击“文本/图形”栏中的文本可以编辑该广告的信息,单击图片链接可以查看图片。
㈢ 新增、修改广告和广告客户
addadvertisement.asp和addadvertiser.asp这两个脚本的任务是获取提交给它们的表单数据,创建广告客户或广告数据库记录。下面的代码用于新增广告记录,新增广告客户(addadvertiser.asp)的代码也类似,此处略。
连接到数据库,创建记录集对象rs,略...
strstartdate = request.form( "startmonth" ) + "/" + _
request.form( "startday" ) + "/" + _
request.form( "startyear" )
strenddate = request.form( "endmonth" ) + "/" + _
request.form( "endday" ) + "/" + _
request.form( "endyear" )
nstatus = 1
if ucase( request.form( "status" ) ) = "inactive" then
nstatus = 0
end if
根据所选择的广告客户名字,获取其编号
nadvertiserid = 1
strsql = "select advertiserid from advertiser where name = " + _
request.form( "advertiser" ) + ""
rs.open strsql, cn
if not rs.eof and not rs.bof then
nadvertiserid = rs.fields( "advertiserid" )
if isnull( nadvertiserid ) then
nadvertiserid = 1
end if
end if
生成一个新的广告编号
nadvertisementid = 1
strsql = "select adid=max( adid ) from advertisement"
rs.close
rs.open strsql, cn
if not rs.eof and not rs.bof then
nadvertisementid = rs.fields( "adid" ) + 1
if isnull( nadvertisementid ) then
nadvertisementid = 1
end if
end if
插入新广告记录的sql命令
strsql = "insert into advertisement " + _
"( advertiserid, status, imageurl, " + _
"imagewidth, imageheight, link, " + _
"alttext, weight, startdate, enddate, " + _
"viewlimit, clickslimit, adid ) values ( "
strsql = strsql + cstr( nadvertiserid ) + ", "
加上其他字段值,略...
strsql = strsql + cstr( nadvertisementid ) + " )"
rs.close
rs.open strsql, cn
修改广告、广告客户信息分别由updateadvertiser.asp和updateadvertiser.asp完成,这两个脚本和addadvertisement.asp、addadvertiser.asp非常相似,只是把增加记录操作改成了修改记录。删除广告、广告客户的脚本很简单(分别为deleteadvertisement.asp和deleteadvertiser.asp),此处略。
()
下一篇:一个基于ASP的标题广告管理系统(一) >>
相关文章:
- · Ad Rotator 组件参考(二) - Rotator Schedule 文件
- · Ad Rotator 组件参考(一) - 概述
- · Counters 组件参考(五) - Set方法
- · Counters 组件参考(四) - Remove方法
- · Counters 组件参考(三) - Increment方法
- · Counters 组件参考(二) - Get方法
- · Counters 组件参考(一) - 概述
- · 用Java开发组件
- · ASP的几大可扩展组件(二)
- · ASP的几大可扩展组件(一)
- · NewMail 对象(CDONTS 库)发送邮件
- · 浅谈MsChart在ASP中的应用
- · 用ASP生成Chart (二维饼图)
- · 用ASP生成Chart
- · 使用ASP建立Http组件
- · FileSystemobject组件
- · Dns组件的一些用法
- · chart组件在ASP中的应用
- · Zaks Pop3 参考说明
- · Zaks Pop3 简要介绍
- · ASP Image 使用范例
- · Asp Image 简要介绍
- · ASP HTTP 使用范例
- · Asp HTTP 简要介绍
- · ASP Ping 简要介绍
- · ASP Chart 使用范例
- · ASP Chart 简要介绍
- · Jmail的属性和方法
- · W3 Jmail 参考说明
- · W3 Jmail 使用范例
- · w3 upload组件实例应用2
- · w3 upload组件实例应用1
- · rs.open sql,conn,1,1 的后两个 1,1 各代表什么?
- · 如何编程实现修改数据库 login Id 的口令
- · Top 和 Distinct 的 区别
- · 在select语句中使用top的一些小技巧
- · 利用SQL语言有没有办法查到表中哪些记录中的全部(或某些字段)的值相同?
- · 如何编程实现备份数据库
