ASP制作多用戶版計數器 2000-06-30· 郭武柱·CPCW
使用ASP制作網站計數器,一般采用ASP的內置對象application,用一文本文件來保存記數值,在這里我將介紹另外一種方法,采用數據庫來制作,而且是多用戶版的,這樣,不僅可以自己使用,而且可以為其它網站服務了。下面是具體做法:
● 制作前的準備 由于要使用數據庫來保存記數值與用戶信息,所以必須先建立數據庫(這里我們采用ACCESS格式),可以用Microsoft Access建立下面的數據庫:
數據庫名稱為:count.mdb
表名為:counttable
有下面字段:
user:[數據類型:文本,字段大小:255]保存用戶名
pageurl:[數據類型:文本,字段大小:255]保存用戶主頁地址
curvalue:[數據類型:數字,字段大小:長整型]保存計數器值
同時需準備十個圖片:0-9,放于目錄"1"中,文件名為0.gif,1.gif......(用來圖形化顯示的計數值)
● 用戶申請表單制作 可以使用Microsoft FrontPage制作下面的計數器申請表單,文件名保存為:get.htm
<form method="POST" action="getcl.asp"> <p>用 戶 名<input type="text" name="user" size="20"></p> <p>計數器值<input type="text" name="curvalue" size="20"></p> <p>主頁地址<input type="text" name="pageurl" size="20"></p> <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重寫" name="B2"></p> </form>
表單中的action="getcl.asp"表示用getcl.asp文件來處理用戶的輸入,那么,getcl.asp文件怎么處理用戶的輸入,將用戶的輸入加入數據庫呢?方法如下:
<%'建立與數據庫的連接 Set conn = Server.CreateObject("ADODB.Connection") dbpath=server.MapPath("count.mdb")'取得數據庫的實際路徑 conn.open "driver={Microsoft Access Driver (*.mdb)};dbq="&DbPath set rs=server.CreateObject("adodb.recordset")
'取得用戶信息 user=Request.Form("user") pageurl=Request.Form("pageurl") curvalue=Request.Form("curvalue")
'先檢查用戶名是否存在 sql="select * from counttable where user='"&user&"'" rs.Open sql,conn,1,3 if not rs.EOF then Response.Write"<title>申請出錯</title>" Response.Write"對不起,用戶名已經存在!</title>"
'結束向下處理,要求用戶重填 Response.End end if
'將用戶信息加入數據庫 rs.AddNew rs("user")=user rs("pageurl")=pageurl rs("curvalue")=curvalue rs.Update rs.Close set rs=nothing conn.Close set conn=nothing %>
● 計數程序制作 完成了用戶申請處理的制作,下面就要制作計數器的核心程序(count.asp)了。具體方法如下: <% Set conn = Server.CreateObject("ADODB.Connection") dbpath=server.MapPath("count.mdb") conn.open "driver={Microsoft Access Driver (*.mdb)};dbq="&DbPath user=Request.QueryString("user")
'計數值加1 sql="update counttable set curvalue=curvalue+1 where user='"&user&"'" conn.Execute sql sql="select curvalue from counttable where user='"&user&"'" set rs=conn.Execute(sql)
'定義chgimg函數,將計數值用圖形表示 function chgimg(curvalue) dim s,i,g s=cstr(curvalue) for i=1 to len(s)
'請注意,在正式使用計數器時,圖片的路徑一定要使用實際路徑 g=g & "<img src=1/" & mid(s,i,1) & ".gif align=bottom>" next chgimg=g end function
'調用chgimg函數(傳入計數器值) toimg=chgimg(rs("curvalue")) toimg="document.write(" & "'" & toimg & "')"
'輸出 Response.Write(toimg) rs.close set rs=nothing conn.Close set conn=nothing %>
注:此文件不能帶用其它html標志,否則將會出錯!
● 如何在主頁中顯示計數器 完成了計數器的制作,接下來是享受我們的勞動成果的時候了,怎么來調用計數器呢?很簡單,只需在欲顯示記數器的位置插入下面代碼就行了。
<script src="counter.asp?user=用戶名"></script>
'請注意,在正式使用計數器時,調用的路徑一定要使用實際路徑 (出處:熱點網絡)
|