网页计数器

     随着网络大行其道,网页计数器也流行起来。事实上大多数网站均有网页计数器,用以反映该网站的访问量。计数器的来源很广,Frontpage等网页编辑器自带了网页计数器,有的站点也提供免费的计数器下载。其实熟悉了ASP编程后,自己做一个计数器很容易。下面介绍一种实现方法。
计数器原理是:在第一次使用网页时置初始值1,以后每请求网页一次,将计数器值加1。这样我们只要在服务器上放置一个文本文件counter.txt,文本文件的内容有计数器的值,以后每请求一次页面,读出文本文件的计数器的数值,加1显示,然后再将原来的值改变为加1后的值,保存到文本文件。至于初始置1,在服务器上可先不建counter.txt,在网页中,先判断服务器上是否有counter.txt文件,没有就生成counter.txt,在counter.txt中写入1,网页上显示计数器值1,完成初始置1。以后每次只要到指定目录下将counter.txt文件删除即可置初始值。
具体操作时要有显示数字0、1、2….9的图像文件,0.gif、1.gif、2.gif…9.gif,文件不能太大,一般18*25即可。将你要放计数器的网页布局设计完毕,再改成ASP文件,将下面代码输入到要显示计数器的地方,使用时,程序将自动在虚拟目录count下建立counter.txt文件。置初始值时将文件删除即可。对了,虚拟目录count必须给everyone有写的权限。
<%
Const   ForReading  =  1,   ForWriting  =  2,   ForAppending  =3
Const   TristateUseDefault  =  -2,   TristateTrue  =  -1,   TristateFalse  =  0
filepath=server.mappath("/count")
filename=filepath+"/counter.txt"
set  fs=createobject("scripting.filesystemobject")
if  fs.fileexists(filename)  then



        set  f=fs.getfile(filename)
        Set  ts  =  f.OpenAsTextStream( ForReading,  
TristateUseDefault)
        s=ts.readline+1
        ts.close
else
        fs.createtextfile(filename)
        set  f=fs.getfile(filename)
        s=1
end  if

“向counter.txt中写数据
Set  ts  =  f.OpenAsTextStream(ForWriting,  
TristateUseDefault)
ts.writeline(cstr(s))
ts.close

“显示计数器
s=cstr(s+1000000)
s=mid(s,2,6)
for  i=1  to  6
      response.write  "<img  src=“../images/"&mid(s,i,1)
&".gif“  width=“18“  height=“25“>"
next

%>
性急的朋友要问,你的这个计数器值显示6位计数,如果要显示8位计数,怎么办?别着急,等我讲完下一个例子我会给一个通式的。
这个计数器有一个缺点,就是每次刷新页面计数器都加1,这是因为每刷新一次页面,系统认为你重新请求页面;而且,如果你不从主页面进入网站,计数器不会改变计数。如果想要



更精确一点,只要将上面的代码略加修改,放到你的global.asa的session_onstart中,这样,只有新用户进入网站,计数器才会加1。已经进入网站的用户刷新页面,不会引起计数器计数的改变,而且不管你从哪个页面进站,计数器都能捕捉到你。
<script  language=vbscript  runat=server>
sub  application_onstart
filepath=server.mappath("/count")
filename=filepath+"/counter.txt"
set  fs=createobject("scripting.filesystemobject")
if  not  fs.fileexists(filename)  then
    fs.createtextfile(filename)
        set  f=fs.getfile(filename)
                      s=1
Set  ts  =  f.OpenAsTextStream(2,  -2)
ts.writeline(cstr(s))
ts.close
                    else
        set  f=fs.getfile(filename)
        Set  ts  =  f.OpenAsTextStream(1,  -2)
        s=ts.readline+1
        ts.close
end  if
application(“visitor”)=s
end  sub

sub  session_onstart
session.timeout=5
application(“visitor”)=application(“visitor”)+1
set  f=fs.getfile(filename)
          Set  ts  =  f.OpenAsTextStream(2,  -2)
            


ts.writeline  (cstr(application(“visitor”)))
ts.close
end  sub
</script>
在网页相应部分根据application(“visitor”)的值显示计数器的图像。
<%
s=cstr(application("visitor")+10^6)
s=mid(s,2,6)
for  i=1  to  6
      response.write  "<img  src=“../images/"
&mid(s,i,1)&".gif“  width=“18“  height=“25“>"
next
%>
要显示n位计数器只要将上面代码改为:
<%
s=cstr(application(“visitor”)+10  ^n)
s=mid(s,2,n)
for  I=1  to  n
      response.write  "<img  src=“../images/"
&mid(s,i,1)&".gif“  width=“18“  height=“25“>"
next
%>
这样要得到8位计数器,只要加上n=8即可。
要是觉得每次有用户进入网站,均对counter.txt写入太频繁,可以在session_onstart中设置,在application
(“visitor”)为十的倍数时将计数值写进counter.txt。
怎么样?现在就动手吧!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP+ACCESS的版本安装说明: 1.需要支持ASP和Access数据库的空间。 2.超级管理员登陆页面:qqcf_admin.asp,默认用户名为:www.qqcf.com,密码:www.qqcf.com,请安装后立即修改! 3.计数器的图片制作的PhtoShop和Flash源文件放在QQCF_Pic目录里,你可以修改成你自己的图片,当然也可以自己做啦。 4.如果忘记密码请打开数据库修改,把Password字段的对应值修改为254a978baaa071ad,这样密码就变为www.qqcf.com 5.免费版请保留版权使用,作者不对其作品付任何责任,你可以任意传播。 6.未经作者许可请勿用于任何商业用途。 7.计数器的MsSql版,采用DLL组件、存储过程、事务编写,支持百万级数据量,提供免费下载,无任何限制,只需保留版权使用即可,需要的朋友请到作者网站http://www.qqcf.com下载。 8.必须接受以下乘风原创程序用户协议方可以使用本计数程序 功 能: 1.总共60记数器图片样式自由选择,并且可以方便地增加记数器图片样式。 2.可以设置计数器显示数字,显示位数,计数器是否隐藏,统计信息是否公开等。 3.页面显示记数和IP防刷新记数两种记数模式,支持Script方式和Img方式调用计数器代码。 4.可以记录来访客的来源IP地址和来源页面信息,在线人数。 5.每月、每天和每小时的访问数据统计,回头率统计,每个网页浏览统计。 6.搜索引擎统计,还可以自己定义搜索引擎,搜索关键字统计。 7.注册用户找回密码功能,用户可以重置统计,删除注册账号。 8.多用户计数器,具有管理注册用户功能。 9.系统会自动删除过多的以前的无用的来源和在线记录,保证系统快速稳定运行,还可以在线压缩数据库。 10.增加计数器图片样式的方法:把新的计数器图片复制到qqcf_counterpic目录,然后设置样式数量即可。 11.安全性:密码MD5加密,注册、登陆使用验证码,完全防Sql注入 独有的特色: 1.计数器数字图片和统计图标两种机制共存,众多设置可调。 2.Script和Img两种方式调用计数器,Img方式计数器可以在任何能插入图片的地方使用。 3.独有的错误自动修复机制,能在计数器发生错误后自动修复。 4.完全杜绝并发线程容易对数据库造成的损坏,在流量大的网站上使用表现很稳定。 5.缓存机制,在缓存中保存数据,操作常见动作,大量减少对数据库的增加,删除频繁的操作。 6.稳定性、安全性、速度上表现都很优秀,功能齐全,代码集成程度高、完全公开,专业制作,完全免费。 乘风原创程序用户协议 乘风原创程序作者(以下简称作者)在此特别提醒,用户(您)欲使用乘风原创程序(以下简称乘风程序),必须事先认真阅读本协议,包括免除或者限制作者的免责条款及对用户的权利限制。请您审阅并接受或不接受本服务条款(未成年人审阅时应得到法定监护人的陪同)。如您不
安装 MySQL或File DB安装 编辑反.php文件并将设置修改为所需的设置。 编辑mysql_config.php或filedb_config.php(取决于您希望使用的是什么)。 上传所有.php文件和图像文件(如果使用图形计数器)。 放在所有页面的html中。 访问浏览器中的comp.php文件。注意:如果使用filedb,您的计数器将出现。如果使用MySQL,您的计数器将首先安装,然后您可以刷新页面,您的计数器将显示出来。注2:记得删除安装文件夹。 高级用户安装 编辑计数器和配置文件。 如果使用MySQL,则将dbtables.sql加载到数据库中。 PHP-Nuke w/MySQL 将整个计数器文件夹上传到php-nuke根文件夹(其中安装了php-nuke)。 将/extras/PHP-Nuke/blocks/block-EP-Dev_Counter.php上传到PHP-Nuke的/块/文件夹。 进入PHP-Nuke的管理,单击块,然后添加块“EP-Dev计数器”。 (可选)Edit comp.php注意:您的计数器将首先安装,然后您可以刷新页面,您的计数器就会显示出来。 升级 备份数据库或数据文件! Upgrading from 3.x --> 3.x 编辑反.php文件并将设置修改为所需的设置。 编辑mysql_config.php或filedb_config.php(取决于您希望使用的是什么)。 上传所有.php文件和图像文件(如果使用图形计数器)。 (可选:访问新/stats/页面查看旧的统计数据!) Upgrading from 1.x or 2.x --> 3.x 编辑反.php文件并将设置修改为所需的设置。 编辑mysql_config.php或filedb_config.php(取决于您希望使用的是什么)。 上传所有.php文件和图像文件(如果使用图形计数器)。 访问浏览器中的安装/升级-v3.php,并遵循屏幕上的任何说明。注意:您的旧文件数据库文件/表将升级为新格式,不会丢失任何数据。 特征列表 在线访客/每日访客/访客总数/点击数总数 文件数据库和MySQL数据库都支持。 容易编辑计数器显示文件. 自动数据库裁剪(文件和MySQL) 可配置在线时间 可配置TRIM数据库时间 自动存档选项 点击/访问偏移功能 逗号开/关 图形或文本 可配置数长度 IP忽略 IP阻塞 许多其他特性(我无法再跟上它们了) 故障排除 问题:我的统计页面总是显示我有0名在线访问者。我启用了时间偏移。 解决方案:目前还没有解决这个问题的办法。这是脚本检查服务器时间与数据库中的时间值的结果。如果你想在网上查看你的访问者,只需访问你的实际反.php文件;) 问题:计数器告诉我,我的“绝对路径”设置不正确!? 解决方案:您可以在comp.php中找到绝对路径设置。如果您不知道您的绝对路径,您可以访问Web浏览器中的文件/install/abus.php(包括在此计数器中)。php文件将显示计数器所需的绝对路径。 问题:我的柜台没有出现,而是显示为。 解决方案:确保您的页面是php页面(.php),并且您的服务器上有php。 问题:我不知道如何编辑计数器的布局。 解决方案:编辑-display.html文件。包括以下内容以反映不同的统计数据: 在线访问者-!反-ONPAGE! 今天的访客-!反-今天! 游客总数-!回访! 总命中-!反击! 问题:我不知道MySQL数据库是什么,或者我是否有一个数据库!解决方案:MySQL数据库是存储数据的简单方式和位置。您可以询问您的网站主机是否有(如果有,您的用户名、密码和数据库名称是什么)。如果您没有MySQL数据库,则可以将计数器设置为在comp.php文件中使用文件数据库。 问题:我收到“分析错误:解析错误,意外‘,’.行#”。解决方案:您的HITS_偏移量中可能有逗号,请删除它们。 问题:我的柜台没有正确显示访客!它总是保持在1或0。 解决方案:问题的出现与您包含文件的方式有关。这是一个已知的问题,如果您是: (A)通过域链接到脚本 (B)让服务器以其他方式拉出脚本,而不是EP-dev所建议的方式。 修复:只需包含服务器上有绝对路径的浏览器(通常用于CGI脚本)。因此,您的包含看起来类似于:。如果域名是mydomain.com,那么包含的内容可能是这样的:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值