当前位置: 首页 > 图文教程 > 网络编程 > ASP > 编写“公平”的ASP图形计数器

ASP
asp 实现对SQL注入危险字符进行重编码处理的函数
asp下实现对HTML代码进行转换的函数
asp 验证用户名是否包含有非常字符的函数
ASP通用分页样式函数代码
asp 生成任意英文+数字位数长度的随机码函数
asp 取得中文句子头一个字的大写拼音字母的函数
asp实现计算两个时间内的工作日的函数
asp实现过滤关键字的函数
asp实现限制搜索的关键字的函数
asp动态include文件,方便多模板的实现
推荐的用Asp实现屏蔽IP地址访问的代码
XDOWNPAGE ASP版本 分页类
飞云防CC攻击ASP程序代码插件
定期自动运行ASP程式的代码
ASP下Cookie操作的详细讲解
再发几个ASP不错的函数
比较不错的asp模板引终极讲解(WEB开发之ASP模式)
ip138之asp小偷程序代码
在VBScript中实现-函数/方法名作为参数传入另一个函数
asp实现批量插入表单中的数据到数据库的方法

编写“公平”的ASP图形计数器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 214 ::
收藏到网摘: n/a

  “技术天地”中的《编写ASP图形计数器》一文,详细的说明了如何利用流行的ASP来编写计数器。但是,美中不足的是,如果某个用户反复点击“刷新”按钮,那么计数器还是要不断的增加的,这对网站点击率评比来说是不公平的,也失去了计数器做为正常统计功能的作用。如何在技术上避免这种情况的发生呢?
我认为要防止上网用户连续按下“刷新”计数器也连续增加的问题,最好的办法就是利用ASP的Session对象,我们可以借助Session对象首先判断该用户是否为新连接者,如果是,那么

IsEmpty(Session("hasbeenConnected"))=True,也就是说,Session("hasbeenConnected")是空的。那么,运行程序,使计数器加1,然后将该用户的Session("hasbeenConnected")设置为True,也就是说,这个用户已经不是新的连接者,无论他怎么连续按下“刷新”按钮,计数器也不会再增加。

结合《编写ASP图形计数器》一文,最后的站点计数器的源程序应该是:

<html>
<head>
……
</head>
<body>
<%dim tms,counter,countlen
dim images(20)
h1="<p><font color='#8000ff'>这是一个ASP计数器</font></p>"
If IsEmpty(Session("hasbeenConnected")) then
set rs=server.createobject("adodb.recordset")
application.lock
rs.open "update aspcount set countss=countss+1","dsn=userdbs",3,3
application.unlock
Session("hasbeenConnected")=True
End If
set rs=server.createobject("adodb.recordset")
rs.open "select * from aspcount","dsn=userdbs",3,3
rs.movefirst
counter=rs(0)
countlen=len(counter)
tms="<h1><font color='#8000ff'>您是第</font>"&&counter&&"<font color='#8000ff'>位访问者!</font></h1>"
response.write(tms)
for i=1 to countlen
images(i)="<img src=" && mid(counter,i,1) && ".gif></img>"
next
response.write images(1)&&images(2)&&images(3)&&images(4)&&images(5)&&images(6)&&images(7)
rs.Close
%>
</body>
</html>