转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
Coldfusion MX广告轮换系统制作         ★★★★

Coldfusion MX广告轮换系统制作

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1090 更新时间:2009/4/23 10:31:46
  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>

代码拷贝框

[Ctrl+A 全部选择 然后拷贝]

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代码.没什么特别的.

授权蓝色经典刊登,严禁转载


[网页制作]ColdFusion MX 轻松制作 FLASH  [网页制作]Coldfusion MX技巧精华收集(2)
[网页制作]Coldfusion MX技巧精华收集(1)  [Web开发]ColdFusion MX 7.0新功能教学
[Web开发]ColdFusion MX 远程服务实例入门  [Web开发]FireFly与ColdFusion开发指南
[Web开发]Coldfusion MX PageList 骨灰版  [Web开发]Coldfusion MX PageList 菜鸟版
[Sql Server]ColdFusion 7添加PostgreSQL 8数据源  
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台