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

2023-12-05 0 189

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> <!—点击数加1—> <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> <!—点击数加1—> <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代码.没什么特别的.

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 ColdFusion Coldfusion MX广告轮换系统制作教程 https://www.u-9.cn/jiaoben/coldfusion/100689.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务