Coldfusion MX广告轮换系统制作教程
Coldfusion MX广告轮换系统制作教程
发布时间:2016-12-28 来源:查字典编辑
摘要:wait蓝色理想CF里面没有提供象ASP里那样的广告组件,但是这并不能说明就不能做出功能强大的广告系统,这里我放上一个简单的广告轮换系统,也...

wait 蓝色理想

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

<->

<CFIFNOTIsDefined("URL.ADID")>

<->

<CFLOCKTIMEOUT="10">

<CFPARAMNAME="Application.AD"TYPE="string"DEFAULT="">

<CFIFListLen(Application.AD)EQ0>

<cfqueryname="getID"datasource="#DSN#">

selectadidfromad

</cfquery>

<CFSETApplication.AD=ValueList(getID.ADID)>

</CFIF>

<CFSETThisAdID=ListGetAt(Application.AD,1)>

<CFSETApplication.AD=ListDeleteAt(Application.AD,1)>

</CFLOCK>

<cfqueryname="ad"datasource="#DSN#">

select*fromad

whereadid='#ThisAdID#'

</cfquery>

<->

<CFSETADSHOW=AD.SHOW+1>

<cfqueryname="updateshow"datasource="#DSN#">

UPDATEAD

SETshow='#ADSHOW#'

whereADID='#AD.ADID#'

</cfquery>

<->

<ahref="javascript:location.reload()">刷新</a><p>

<cfoutputquery="ad">

<ahref="ad.cfm?ADID=#URLEncodedFormat(ADID)#"title="#title#"target="_blank"><imgsrc="#IMAGE#"border="0"alt="#title#"></a><p>

<br>

</cfoutput>

<cfelse>

<->

<cfqueryname="gotoURL"datasource="#DSN#">

SELECTADID,URL,CLICKFROMAD

WHEREADID='#URL.ADID#'

</cfquery>

<->

<CFSETADCLICK=GOTOURL.CLICK+1>

<CFQUERYDATASOURCE="#DSN#"name="UPDATECLICK">

UPDATEAD

SETCLICK='#ADCLICK#'

WHEREADID='#URL.ADID#'

</CFQUERY>

<->

<cfoutputquery="gotoURL">

<SCRIPTLANGUAGE="JavaScript">

self.location='#URL#';

</SCRIPT>

</cfoutput>

</CFIF>

代码拷贝框

以下是引用片段:

<->

<CFIFNOTIsDefined("URL.ADID")>

<->

<CFLOCKTIMEOUT="10">

<CFPARAMNAME="Application.AD"TYPE="string"DEFAULT="">

<CFIFListLen(Application.AD)EQ0>

<cfqueryname="getID"datasource="#DSN#">

selectadidfromad

</cfquery>

<CFSETApplication.AD=ValueList(getID.ADID)>

</CFIF>

<CFSETThisAdID=ListGetAt(Application.AD,1)>

<CFSETApplication.AD=ListDeleteAt(Application.AD,1)>

</CFLOCK>

<cfqueryname="ad"datasource="#DSN#">

select*fromad

whereadid='#ThisAdID#'

</cfquery>

<->

<CFSETADSHOW=AD.SHOW+1>

<cfqueryname="updateshow"datasource="#DSN#">

UPDATEAD

SETshow='#ADSHOW#'

whereADID='#AD.ADID#'

</cfquery>

<->

<ahref="javascript:location.reload()">刷新</a><p>

<cfoutputquery="ad">

<ahref="ad.cfm?ADID=#URLEncodedFormat(ADID)#"title="#title#"target="_blank"><imgsrc="#IMAGE#"border="0"alt="#title#"></a><p>

<br>

</cfoutput>

<cfelse>

<->

<cfqueryname="gotoURL"datasource="#DSN#">

SELECTADID,URL,CLICKFROMAD

WHEREADID='#URL.ADID#'

</cfquery>

<->

<CFSETADCLICK=GOTOURL.CLICK+1>

<CFQUERYDATASOURCE="#DSN#"name="UPDATECLICK">

UPDATEAD

SETCLICK='#ADCLICK#'

WHEREADID='#URL.ADID#'

</CFQUERY>

<->

<cfoutputquery="gotoURL">

<SCRIPTLANGUAGE="JavaScript">

self.location='#URL#';

</SCRIPT>

</cfoutput>

</CFIF>

GAMEOVER

这广告是改自BENFORTA的教程的.他介绍的广告条制作方法原理都差不多,但是功能少的可怜,不能URL转向.不能记录显示次数和点击次数,所以我就改了他,自己加了些功能在里面.

原理:把广告数据放在一个数据库的表里面,一次提取所有的广告编号(ID),把这ID存放在一个APPLICATION变量里面,我显示一个,就从这个APPLICATION变量里面删除这个显示过的广告ID,下次就不会显示这个广告条了.直到所有的广告条都显示过以后,如果APPLICATION变量为空了,重新查询数据库,调取所有的广告ID,,,一直这样循环下去.

提示一下:把上面保存一个文件改上你自己的数据库行了.显示广告,广告条URL转向都在这个文件里面.

请注意这个变量:Application.AD,这是个应用程序变量,我把他定义成一个字符串,在CF字符串里面可以这样Application.AD="I'mwait"也可以这样Application.AD="12345679",我这广告就是用后面这个

再说说这个比喻:例如我是第一次访问.就调用Application.AD="1"然后删除这个Application.AD="1"下次就只剩下:Application.AD="2345679"一次少一个,就这实现了轮换效果.当然,一直到全部显示完,然后重新查询数据库,提取所有广告ID.放到Application.AD这个字符串里面

注意看这句:

<CFIFListLen(Application.AD)EQ0>

意思就是:如果我这个Application.AD长度为0了,就重新查询数据库然后把查询结果放在Application.AD变量里面.注意.要测试列表的长度不能用LEN(),而是用专门测试列表长度的函数ListLen

<cfqueryname="getID"datasource="#DSN#">

selectadidfromad

</cfquery>

<CFSETApplication.AD=ValueList(getID.ADID)>

如果,还有没有显示完一次轮换,那肯定不是等于0,那就不会重新查询数据库.

至于得到第一个字符,可以用

<CFSETThisAdID=ListGetAt(Application.AD,1)>

然后删除这个.下次就轮到下个了.

<CFSETApplication.AD=ListDeleteAt(Application.AD,1)>

重点就是这些,至于下面那些更新显示次数,和计数显示次数,都是普通的CF代码.没什么特别的.

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新ColdFusion学习
热门ColdFusion学习
脚本专栏子分类