当前位置:编程学习 > asp >>

广告轮换系统

CF里面没有提供象ASP里那样的广告组件,但是这并不能说明就不能做出功能强大的广告系统,这里我放上一个简单的广告轮换系统,也是我CCF论坛里面用的.功能,有显示次数和点击次数.在这基础上扩展比较容易,可以分类显示,下面的代码只是显示 大广告条.只是想抛砖引玉,大家举一反三,就能做出功能更加强大的广告系统出来.

<!--- 判断是否有地址传递 --->
<CFIF NOT IsDefined("URL.ADID")>
<!--- 默认为显示广告 --->
<CFLOCK TIMEOUT="10">

   <CFPARAM NAME="Application.AD" TYPE="string" DEFAULT="">
  
  <CFIF ListLen(Application.AD) EQ 0>
   <cfquery name="getID" datasource="#DSN#">
   select adid from ad
   </cfquery>
   
   <CFSET Application.AD = ValueList(getID.ADID)>
  </CFIF>
  
  <CFSET ThisAdID = ListGetAt(Application.AD, 1)>
  <CFSET Application.AD = ListDeleteAt(Application.AD, 1)>
</CFLOCK>

<cfquery name="ad" datasource="#DSN#">
select * from ad
where adid='#ThisAdID#'
</cfquery>

<!--- 更新显示次数 --->

<CFSET ADSHOW=AD.SHOW+1>

<cfquery name="updateshow" datasource="#DSN#">
UPDATE AD
SET show='#ADSHOW#'
where ADID='#AD.ADID#'
</cfquery>

<!--- 显示广告 --->
<a href="javascript:location.reload()">刷新</a><p>
<cfoutput query="ad">
<a href="ad.cfm?ADID=#URLEncodedFormat(ADID)#" title="#title#" target="_blank"><img src="#IMAGE#" border="0" alt="#title#"></a><p>

<br>
</cfoutput>

<cfelse>

<!--- 如果有传递有参数 --->
<cfquery name="gotoURL" datasource="#DSN#">
SELECT ADID,URL,CLICK FROM AD
WHERE ADID='#URL.ADID#'
</cfquery>

<!--- 点击数加1 --->
<CFSET ADCLICK=GOTOURL.CLICK+1>

<CFQUERY DATASOURCE="#DSN#" name="UPDATECLICK">
UPDATE AD
SET CLICK='#ADCLICK#'
WHERE ADID='#URL.ADID#'
</CFQUERY>

<!--- 转向广告链接地址 --->
<cfoutput query="gotoURL">
    <SCRIPT LANGUAGE="JavaScript">
    self.location ='#URL#';
    </SCRIPT>
</cfoutput>
</CFIF>
GAME OVER
这广告是改自BEN FORTA的教程的.他介绍的广告条制作方法原理都差不多,但是功能少的可怜,不能URL转向.不能记录显示次数和点击次数,所以我就改了他,自己加了些功能在里面.

补充:asp教程,高级应用 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,