欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Coldfusion MX廣告輪換系統(tǒng)制作教程

 更新時間:2007年03月15日 00:00:00   作者:  
wait 藍色理想
CF里面沒有提供象ASP里那樣的廣告組件,但是這并不能說明就不能做出功能強大的廣告系統(tǒng),這里我放上一個簡單的廣告輪換系統(tǒng),也是我CCF論壇里面用的.功能,有顯示次數(shù)和點擊次數(shù).在這基礎上擴展比較容易,可以分類顯示,下面的代碼只是顯示 大廣告條.只是想拋磚引玉,大家舉一反三,就能做出功能更加強大的廣告系統(tǒng)出來. 

<!--- 判斷是否有地址傳遞 --->
<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> 

<!--- 更新顯示次數(shù) ---> 

<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> 

<!--- 如果有傳遞有參數(shù) --->
<cfquery name="gotoURL" datasource="#DSN#">
SELECT ADID,URL,CLICK FROM AD
WHERE ADID='#URL.ADID#'
</cfquery> 

<!--- 點擊數(shù)加1 --->
<CFSET ADCLICK=GOTOURL.CLICK+1> 

<CFQUERY DATASOURCE="#DSN#" name="UPDATECLICK">
UPDATE AD
SET CLICK='#ADCLICK#'
WHERE ADID='#URL.ADID#'
</CFQUERY> 

<!--- 轉(zhuǎn)向廣告鏈接地址 --->
<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> 

<!--- 更新顯示次數(shù) ---> 

<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> 

<!--- 如果有傳遞有參數(shù) --->
<cfquery name="gotoURL" datasource="#DSN#">
SELECT ADID,URL,CLICK FROM AD
WHERE ADID='#URL.ADID#'
</cfquery> 

<!--- 點擊數(shù)加1 --->
<CFSET ADCLICK=GOTOURL.CLICK+1> 

<CFQUERY DATASOURCE="#DSN#" name="UPDATECLICK">
UPDATE AD
SET CLICK='#ADCLICK#'
WHERE ADID='#URL.ADID#'
</CFQUERY> 

<!--- 轉(zhuǎn)向廣告鏈接地址 --->
<cfoutput query="gotoURL">
<SCRIPT LANGUAGE="JavaScript"> 
self.location ='#URL#'; 
</SCRIPT> 
</cfoutput>
</CFIF>



GAME OVER
這廣告是改自BEN FORTA的教程的.他介紹的廣告條制作方法原理都差不多,但是功能少的可憐,不能URL轉(zhuǎn)向.不能記錄顯示次數(shù)和點擊次數(shù),所以我就改了他,自己加了些功能在里面. 


原理:把廣告數(shù)據(jù)放在一個數(shù)據(jù)庫的表里面,一次提取所有的廣告編號(ID),把這ID存放在一個APPLICATION變量里面,我顯示一個,就從這個APPLICATION變量里面刪除這個顯示過的廣告ID,下次就不會顯示這個廣告條了.直到所有的廣告條都顯示過以后,如果APPLICATION變量為空了,重新查詢數(shù)據(jù)庫,調(diào)取所有的廣告ID,,,一直這樣循環(huán)下去.


提示一下:把上面保存一個文件改上你自己的數(shù)據(jù)庫行了.顯示廣告,廣告條URL轉(zhuǎn)向都在這個文件里面. 

請注意這個變量:Application.AD ,這是個應用程序變量,我把他定義成一個字符串,在CF字符串里面可以這樣 Application.AD="I'm wait" 也可以這樣 Application.AD=" 1 2 3 4 5 6 7 9",我這廣告就是用后面這個
再說說這個比喻:例如我是第一次訪問.就調(diào)用Application.AD="1" 然后刪除這個Application.AD="1" 下次就只剩下:Application.AD=" 2 3 4 5 6 7 9" 一次少一個,就這實現(xiàn)了輪換效果.當然,一直到全部顯示完,然后重新查詢數(shù)據(jù)庫,提取所有廣告ID.放到Application.AD這個字符串里面
注意看這句:
<CFIF ListLen(Application.AD) EQ 0> 

意思就是:如果我這個Application.AD 長度為0了,就重新查詢數(shù)據(jù)庫然后把查詢結(jié)果放在Application.AD變量里面.注意.要測試列表的長度不能用LEN(),而是用專門測試列表長度的函數(shù)ListLen
<cfquery name="getID" datasource="#DSN#">
select adid from ad
</cfquery> 

<CFSET Application.AD = ValueList(getID.ADID)> 

如果,還有沒有顯示完一次輪換,那肯定不是等于0,那就不會重新查詢數(shù)據(jù)庫. 

至于得到第一個字符,可以用
<CFSET ThisAdID = ListGetAt(Application.AD, 1)>
然后刪除這個.下次就輪到下個了.
<CFSET Application.AD = ListDeleteAt(Application.AD, 1)> 

重點就是這些,至于下面那些更新顯示次數(shù),和計數(shù)顯示次數(shù),都是普通的CF代碼.沒什么特別的.

相關文章

最新評論