搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

一个基于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),此处略。

()

相关文章:
© 2006   www.java-asp.net