WEB开发网
开发学院WEB开发ASP 基于IIS和ASP的标题广告管理系统(三) 阅读

基于IIS和ASP的标题广告管理系统(三)

 2007-12-18 13:15:34 来源:WEB开发网   
核心提示:rs.MoveNext' nWeightCount是否等于或大于随机变量值If nWeightCount >= nRandomNumber or rs.EOF ThenbDone= trueEnd IfWend ㈢更新当前广告的显示次数 在确定本次要显示的广告之后,程序就可以更新该广告记录的Impres

   rs.MoveNext
   ' nWeightCount是否等于或大于随机变量值
   If nWeightCount >= nRandomNumber or rs.EOF Then
     bDone= true
   End If
 Wend
   ㈢ 更新当前广告的显示次数

   在确定本次要显示的广告之后,程序就可以更新该广告记录的Impressions字段。如果新的Impressions值超过了显示次数限制(nViewLimit),还必需设置Status字段为0(即本广告不可再显示)。实现代码如下:

 nStatus = 1
 nImpressions = nImpressions + 1
 If nImpressions >= nViewLimit Then
   nStatus = 0
 End If
 strSql = "UPDATE Advertisement Set Status=" + _
 CStr( nStatus ) + ", Impressions=" + _
 CStr( nImpressions ) + " WHERE AdID=" + _
 CStr( nAdID )
 rs.Close
 rs.Open strSql, cn
   ㈣ 生成HTML代码

   在完成上述准备工作之后,接下来就可以输出显示广告的HTML代码。所输出的HTML代码可以分成如下几个部分:

 重定向页面 --> 目标URL --> 其他参数 --> 图片标记
   为什么不是直接链接到广告客户指定的URL呢?这是因此,虽然这种方法更简单,但我们希望能够记录广告的点击数量,在重定向页面中我们就可以更新该广告的ClickThroughs字段值。

   在显示广告的HTML代码中,重定向页面本文假定为Redirect.asp,目标URL来自数据库,其他参数主要是广告编号、广告客户编号等,Redirect.asp利用这些参数记录点击历史纪录。具体实现如下:

 strHtmlCode = _
   "<a href=Redirect.asp?" + _
   "Link=" + strLink + _
   "&AdvertisementID=" + CStr( nAdID ) + _
   "&AdvertiserID=" + CStr( nAdvertiserID ) + Chr( 34 ) + _
   " target=newFrame><" + Chr( 13 ) + Chr( 10 ) + _
   "></A>" + Chr( 13 ) + Chr( 10 )
   这里的strHtmlCode即为显示广告的HTML代码。

   ㈤ 记录其他信息

   为了给广告客户提供更多的信息,同时也为了便于进一步分析,除了记录显示次数之外,程序还在数据库表中记录其他一些信息(浏览本次广告时,浏览者所在的IP地址以及浏览时间、广告编号、广告客户编号),如下所示:

 strSql = "INSERT INTO BannerHistory " + _
   "(AdvertiserID, AdID, IPAddress, Type) Values (" + _
   CStr( nAdvertiserID ) + ", " + _
   CStr( nAdID ) + ", '" + _
   Request.ServerVariables( "REMOTE_HOST" ) + _
   "', 1)"
 rs.Open strSql, cn
   浏览的日期时间值在Access数据库内设置,即设置字段默认值为Now()。

   ㈥ 重定向页面

   本文提供一个简单的重定向页面Redirect.asp,其功能是记录广告点击数量,然后生成历史表BannerHistory中的记录,最后重定向到目标URL,如下所示:

 ' 连接数据库,创建记录集对象rs,略...
 
 ' 增加广告的点击计数,如点击计数超过限制值,
 ' 则设置Status为0
 strSql = "UPDATE Advertisement " + _
   "Set ClickThroughs=ClickThroughs+1, " + _
   "status=iif(ClickThroughs>=ClicksLimit,0,1) " + _
   " WHERE AdID=" + Request.QueryString( "AdvertisementID" )

Tags:基于 IIS ASP

编辑录入:coldstar [复制链接] [打 印]
赞助商链接