3 一个基于ASP的标题广告管理系统( 二 )


 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 = _
""Link="strLink_
"&AdvertisementID="CStr( nAdID )_
"&AdvertiserID="CStr( nAdvertiserID )Chr( 34 )_
" target=newFrame><"Chr( 13 )Chr( 10 )_
">"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" )
 rs.Open strSql, cn
 
生成广告点击历史纪录
 strSql = "INSERT INTO BannerHistory "_
"(AdvertiserID, AdID, IPAddress, Type) Values ("_
Request.QueryString( "AdvertiserID" )", "_
Request.QueryString( "AdvertisementID" )", "_
Request.ServerVariables( "REMOTE_HOST" )", 2)"
 rs.Open strSql, cn
重定向到广告客户指定的页面
 Response.Redirect( Request.QueryString( "Link" ) )
 Next Steps



推荐阅读