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>
请注意,在正式使用计数器时,调用的路径一定要使用实际路径
