ASP制作多用户版计数器

作者:不详 来源: 日期:2002-8-6
使用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> 

'请注意,在正式使用计数器时,调用的路径一定要使用实际路径 
相关文章