ASP製作多用戶版計數器 - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- ASP製作多用戶版計數器 (http://www.webasp.net/article/1/363.htm) |
| -- 作者:未知 -- 發佈日期: 2003-04-14 |
| 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> '請注意,在正式使用計數器時,調用的路徑一定要使用實際路徑 |
| webasp.net |