圆月山庄资源网 Design By www.vgjia.com
wait 蓝色理想
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="/UploadFiles/2021-04-08/#IMAGE#">
<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>
代码拷贝框
以下是引用片段:
<!--- 判断是否有地址传递 --->
<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="/UploadFiles/2021-04-08/#IMAGE#">
<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转向.不能记录显示次数和点击次数,所以我就改了他,自己加了些功能在里面.
原理:把广告数据放在一个数据库的表里面,一次提取所有的广告编号(ID),把这ID存放在一个APPLICATION变量里面,我显示一个,就从这个APPLICATION变量里面删除这个显示过的广告ID,下次就不会显示这个广告条了.直到所有的广告条都显示过以后,如果APPLICATION变量为空了,重新查询数据库,调取所有的广告ID,,,一直这样循环下去.
提示一下:把上面保存一个文件改上你自己的数据库行了.显示广告,广告条URL转向都在这个文件里面.
请注意这个变量:Application.AD ,这是个应用程序变量,我把他定义成一个字符串,在CF字符串里面可以这样 Application.AD="I'm wait" 也可以这样 Application.AD=" 1 2 3 4 5 6 7 9",我这广告就是用后面这个
再说说这个比喻:例如我是第一次访问.就调用Application.AD="1" 然后删除这个Application.AD="1" 下次就只剩下:Application.AD=" 2 3 4 5 6 7 9" 一次少一个,就这实现了轮换效果.当然,一直到全部显示完,然后重新查询数据库,提取所有广告ID.放到Application.AD这个字符串里面
注意看这句:
<CFIF ListLen(Application.AD) EQ 0>
意思就是:如果我这个Application.AD 长度为0了,就重新查询数据库然后把查询结果放在Application.AD变量里面.注意.要测试列表的长度不能用LEN(),而是用专门测试列表长度的函数ListLen
<cfquery name="getID" datasource="#DSN#">
select adid from ad
</cfquery>
<CFSET Application.AD = ValueList(getID.ADID)>
如果,还有没有显示完一次轮换,那肯定不是等于0,那就不会重新查询数据库.
至于得到第一个字符,可以用
<CFSET ThisAdID = ListGetAt(Application.AD, 1)>
然后删除这个.下次就轮到下个了.
<CFSET Application.AD = ListDeleteAt(Application.AD, 1)>
重点就是这些,至于下面那些更新显示次数,和计数显示次数,都是普通的CF代码.没什么特别的.
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="/UploadFiles/2021-04-08/#IMAGE#">
<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>
代码拷贝框
以下是引用片段:
<!--- 判断是否有地址传递 --->
<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="/UploadFiles/2021-04-08/#IMAGE#">
<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转向.不能记录显示次数和点击次数,所以我就改了他,自己加了些功能在里面.
原理:把广告数据放在一个数据库的表里面,一次提取所有的广告编号(ID),把这ID存放在一个APPLICATION变量里面,我显示一个,就从这个APPLICATION变量里面删除这个显示过的广告ID,下次就不会显示这个广告条了.直到所有的广告条都显示过以后,如果APPLICATION变量为空了,重新查询数据库,调取所有的广告ID,,,一直这样循环下去.
提示一下:把上面保存一个文件改上你自己的数据库行了.显示广告,广告条URL转向都在这个文件里面.
请注意这个变量:Application.AD ,这是个应用程序变量,我把他定义成一个字符串,在CF字符串里面可以这样 Application.AD="I'm wait" 也可以这样 Application.AD=" 1 2 3 4 5 6 7 9",我这广告就是用后面这个
再说说这个比喻:例如我是第一次访问.就调用Application.AD="1" 然后删除这个Application.AD="1" 下次就只剩下:Application.AD=" 2 3 4 5 6 7 9" 一次少一个,就这实现了轮换效果.当然,一直到全部显示完,然后重新查询数据库,提取所有广告ID.放到Application.AD这个字符串里面
注意看这句:
<CFIF ListLen(Application.AD) EQ 0>
意思就是:如果我这个Application.AD 长度为0了,就重新查询数据库然后把查询结果放在Application.AD变量里面.注意.要测试列表的长度不能用LEN(),而是用专门测试列表长度的函数ListLen
<cfquery name="getID" datasource="#DSN#">
select adid from ad
</cfquery>
<CFSET Application.AD = ValueList(getID.ADID)>
如果,还有没有显示完一次轮换,那肯定不是等于0,那就不会重新查询数据库.
至于得到第一个字符,可以用
<CFSET ThisAdID = ListGetAt(Application.AD, 1)>
然后删除这个.下次就轮到下个了.
<CFSET Application.AD = ListDeleteAt(Application.AD, 1)>
重点就是这些,至于下面那些更新显示次数,和计数显示次数,都是普通的CF代码.没什么特别的.
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
更新日志
2024年11月08日
2024年11月08日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]