Coldfusion MX广告轮换系统制作教程_ColdFusion

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="#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>

代码拷贝框
以下是引用片段:

<!--- 判断是否有地址传递 --->
<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转向.不能记录显示次数和点击次数,所以我就改了他,自己加了些功能在里面. 

原理:把广告数据放在一个数据库的表里面,一次提取所有的广告编号(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代码.没什么特别的.

时间: 2024-10-24 03:23:22

Coldfusion MX广告轮换系统制作教程_ColdFusion的相关文章

广告轮换系统

CF里面没有提供象ASP里那样的广告组件,但是这并不能说明就不能做出功能强大的广告系统,这里我放上一个简单的广告轮换系统,也是我CCF论坛里面用的.功能,有显示次数和点击次数.在这基础上扩展比较容易,可以分类显示,下面的代码只是显示 大广告条.只是想抛砖引玉,大家举一反三,就能做出功能更加强大的广告系统出来. <!--- 判断是否有地址传递 ---> <CFIF NOT IsDefined("URL.ADID")> <!--- 默认为显示广告 --->

移动U盘运行Android系统制作教程

U盘运行安卓X86系统,就是把Android x86装到U盘里,然后从U盘启动电脑(类似Windows PE),就可以在U盘里运行并体验到Android X86系统了. 移动U盘运行Android系统制作教程 优点: 1,便携性好,走到哪儿用到哪儿,随身携带,另外目前主流U盘的速度和接口速度足够运行Androidx86系统了. 2,安装极其简单,只需要做一个U盘镜像,并在启动时选一下启动项为U盘即可体验到Androidx86系统了. 3,成本低,不需要动用原系统里的硬盘,所有操作均在U盘里进行.

V880系统制作教程

1.下载你需要编辑的"V880T卡升级包 2.解压自己下载的"V880T卡升级"包内的BIN文件到任意一个地方或文件夹内 注意:要把V880系统制作软件解压后和BIN文件放在一个地方 重要提示:所以和编辑有关的文件最好都在一个文件夹内,以免出现错误. 3.运行"v880-tcard-BIN-tool" 4.

好人共享的一个万能Ghost系统制作教程附相关软件下载第1/3页_其它相关

一直都为封装好的ghost版系统而惊讶,今天发现原来有人共享了万能ghost系统制作方法,特留个印象,以后自己就可以制作万能Ghost系统了 一.前期基础工作 ================= 1.准备所需工具软件(www.ylmf.net提供下载) *S&R&S_V9.6.0608 智能系统封装工具 *DEPLOY.CAB(在系统安装光盘:\SUPPORT\TOOLS目录下自带) *Ghost_v8.0 & v8.2(v8.0以上版本才能够支持NTFS分区) *Windows2

photoshop汽车宣传广告海报制作教程

给各位photoshop软件的使用者们来详细的说一下汽车宣传广告海报的制作教程. 教程分享: 一.教程详情:   二.创意思路指导:     三.制作步骤分解:   1.首先新建一个1440 * 850的画布.把导航放进去,然后放上图1地面.     2.然后把地面复制一层,修补空余的地方,然后动感模糊.     3.抠好湖与山峰,放进去同样动感模糊.     4.用渐变工具拉出天空,或者找个干净的天空模糊,交接处要高亮,用画笔工具,用白色的颜色擦下就可以了.       5.把素材车放进去.

Coldfusion MX技巧精华收集(1)第1/5页_ColdFusion

Coldfusion 结合 Access 中文显示问题 作者: Kyle 12/11/02  内容:  首先,在每一页要传递和处理中文的页面顶部加上如下代码(也可以放在application.cfm里,但在有些情况下会有问题):  <cfprocessingdirective pageencoding="gb2312">  <cfcontent type="text/html; charset=gb2312">  <cfset setE

ColdFusionMX 编程指南 安装教程_ColdFusion

第一期:进入Macromedia ColdFusionMX 世界 程序开发:  教程编写:  MJking  版权所有:   系统及环境需求: Window2000/XP 256M RAM Coldfusion MX(Developer Edition) Microsoft Access 任何一款文本编辑器(本教程默认为Coldfusion Studio 5 + DreamweaverMX) 序言 在大家进入ColdFusion MX的世界之前,应该先了解一下Macromedia公司最新的MX家

《ASP网页制作教程》笔记

笔记|教程|网页 <ASP网页制作教程>.王国荣 编著,人民邮电出版社. 打开MDB数据库的方法:先定义一个OpenMDB子程序,然后在主程序中调用.<%Option ExplicitSub OpenMDB(dbname,pwd,conn)'dbname-数据库文件的相对路径,pwd-数据库文件的密码,conn-用户定义的Connection对象.'对于没有密码的数据库,pwd值可任意.dim connstrSet conn = Server.CreateObject("ADO

动态MC按钮的制作教程

按钮|动态|教程 写个MC按钮的教程,实在不登大雅之堂~目的:帮助需要这方面知识,而不得其要的同行爱好者~MX以后版本已经提供了组件,没有必要这样麻烦做这种按钮,不过,我们的目的是为了学习. 本教程主要运用了flash的onClipEvent事件触发器~以及hitTest方法~color对象和智能剪辑~ 1. 创建两个MC 第一个MC为动态文本(label),,设置如图A 文字居中是为了让按钮文字看起来更美观变量加了两个_parent关键字,在创建智能剪辑就可以省去为动态文本再赋值的麻烦其它选项