网页计数器

2023-11-07

     随着网络大行其道,网页计数器也流行起来。事实上大多数网站均有网页计数器,用以反映该网站的访问量。计数器的来源很广,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。
怎么样?现在就动手吧!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网页计数器 的相关文章

  • 每个用户“类型”的 PHP 子文件夹

    我有 3 个子文件夹upload文件夹 我的代码如下所示 if isset SESSION u type SESSION u type 3 files scandir path 3 path is set somewhere above 它
  • 什么是记录匿名用户投票且不允许重复的可靠方法

    首先 我尽我所能进行搜索并阅读所有看起来相关的问题 但没有具体回答这个问题 这不是重复的 afaik 显然 如果允许在网站上进行匿名投票 则没有万无一失的方法可以阻止某人多次投票 然而 我想知道是否有经验的人可以帮助我想出一种相当可靠的方法
  • 如何在春季结束会话 3

    我在用 SessionAttributes在春天 但我不知道如何结束会话 我尝试了下面的代码 但出现错误 请给我一些例子 Thanks RequestMapping value LogoutAction public String logo
  • session.clear() 在 Hibernate 中如何工作

    我参考了很多文章 但我仍然不清楚什么session clear在休眠状态下执行 据我目前了解到的情况来看 当我们使用批量保存 更新时如下图 Session session SessionFactory openSession Transac
  • 我应该为 mgo 中的每个操作复制会话吗?

    我想要upsert一个记录列表 所以我有两种选择 一种只使用一个会话 另一种为每条记录复制一个会话 所以 按照我的观点 第一种方法可能比第二种方法慢 但是第一种方法会导致创建太多会话吗 1 使用一个会话 func this CvStoreS
  • 可以在单个 PHP 脚本中使用多个独立的 $_SESSION 吗?

    我想在单个 PHP 脚本中使用两个独立的 SESSION 我尝试使用以下代码验证这是否可行 error reporting 1 session name session one session start SESSION array SES
  • 如何使用 XMLHttpRequest 传递 php 会话

    我遇到的问题是 我正在通过 XMLHttpRequest 从已设置会话 cookie 的页面调用服务器上的 php 脚本 问题是我的页面调用的脚本为每次调用创建一个新的 session id 并且不使用现有的 session id 来存储我
  • 带有装饰器和会话的 django 类视图

    我正在尝试将一些 django 视图从基于函数的视图转换为基于类的视图 但遇到了一个小问题 我的面向对象有点弱 我认为问题是我已经不知道事情的进展情况 我有一个自定义的登录装饰器 我需要在视图上使用 所以我 首先我有这个例子中的 View
  • PHP mail() 中的空 $_POST

    对于以下方面的一些帮助将不胜感激 我已经在网络和 stackoverflow 上搜索了几个小时 我的php邮件功能有这个问题 我的网站上有一个表单 该网站使用 WordPress 其中包含两个文本字段 姓名和电话号码 表单中还有一个隐藏字段
  • Rails 会话中存储的对象变成了字符串?

    通常我不会在 Rails 会话中存储对象 但我正在使用需要此功能的库 我遇到了一个非常奇怪的问题 其中存储的对象在重定向后显示为字符串 为了重现 我创建了一个示例 Rails 4 1 应用程序 rails new session test
  • codeigniter 标头中重复的“set-cookie: ci-session”字段

    每次在我的控制器中使用 this gt session gt set userdata 或 this gt session gt set flashdata 时 另一个相同的 Set Cookie ci session 会添加到 http
  • 当 EnableSessionState 为 ReadOnly 时更改会话状态

    我有一个 旧的 ASP NET WebForms 项目 并且我想尽可能将 EnableSessionState 设置为 ReadOnly 以防止会话锁阻止单个用户并发页面加载 在某些页面上 我实际上确实想写入会话状态 通常 只需将那些需要写
  • “location.reload()”丢失 POST/SESSION 数据? (F5 / Ctrl+R 保留数据?)

    我想创建一个按钮来重新加载页面而不丢失 POST数据和 SESSION 在网上 我找到了这段代码 onclick document location reload 这是我的按钮的代码 a class button href style fo
  • 函数 session_start() 出现问题(运行缓​​慢)

    我有一个问题session start 在主服务器上 当我第一次加载页面时 完成请求只需要不到 1 秒的时间 如果我等待大约 12 15 秒 然后重新加载页面 加载时间将是相同的 但是 当我尝试在初始加载后 3 或 5 秒后刷新页面时 服务
  • 强制用户注销会话 PHP

    我似乎无法找到这个问题的直接答案 有没有办法强制登录用户注销 我的登录系统本质上只依赖于包含用户唯一 ID 存储在 mysql 数据库中 的会话 所以本质上只是 if isset SESSION user id echo You re lo
  • 使用Rvest登录网站抓取时出现403错误

    我试图在需要登录的网站上抓取页面 但不断收到 403 错误 我已经修改了我网站的这两篇文章中的代码 使用rvest或httr登录网页上的非标准表单 https stackoverflow com questions 28418770 usi
  • 为什么我们提交表单时会生成一个新的令牌

    我正在努力理解回答SO https stackoverflow com questions 2133964 how to prevent multiple inserts when submitting a form in php 5159
  • 将 cookie 设置为在会话结束时过期? ASP.NET

    我很惊讶我找不到任何答案 如何将 cookie 中的 sessionid 设置为在会话结束时过期 当浏览器关闭或用户一段时间不活动时 我发现的两个解决方案是 httpcookie Expires HttpContext Current Se
  • Laravel,2 个域中的 2 个项目同一会话

    我正在 2 个不同的域 domain1 tld 和域 2 tld 中创建 2 个项目 domain1 tld 是主要事件生成器页面 domain2 tld 是其事件之一 我想共享相同的会话 它们实际上共享相同的数据库和相同的 apache
  • PHP 会话中的数据错误

    我对网上商店进行了以下设置 当用户登录时 通过 AJAX 调用脚本 该脚本根据 SOAP Web 服务验证用户数据 并返回用户数据 当用户登录时 用户数据保存在 PHP 会话中 用户数据 仅通过 SOAP 检索 而不由商店存储 我使用默认的

随机推荐

  • java对于Excel进行快速处理的框架EasyExcel(SpringBoot集成)

    一 EasyExcel介绍 EasyExcel是阿里巴巴开源的一个excel处理框架 以使用简单 节省内存著称 EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中 而是从磁盘上一行行读取数
  • Anchor-Free based目标检测

    CornerNet 预测左上角和右下角来得到最后的bounding boxes 所以最基本的需要两个feature map表示对应的Corner 称为heatmap top left 和 bottom right 将属于同一个object的
  • C++中template(模版)的使用

    我们在编程的时候总是会遇到一些类似的模块 只是模块中的形参的数据类型不同 导致我们要不断的去更改模块的 这里就涉及到重载的知识点了 例如以下的几种情况 函数1 int max int x int y return x gt y x y 函数
  • 分布式监控系统——Zabbix(3)配置

    文章目录 分布式监控系统 Zabbix 3 配置 一 监控项 1 定义一个不带参数的监控项 2 定义一个带参数的监控项 3 删除监控项 4 监控项存储的值 二 触发器 1 简介 2 触发器表达式 3 定义一个触发器 4 触发器的依赖关系 5
  • 项目4总结:MySQL数据表的检索

    目录 任务4 1 查询时选择列 1 基本查询语句 2 检索所有列 3 检索指定列 任务4 2 查询时选择行 1 查询指定记录 2 带IN关键字的查询 3 带BETWEEN AND的范围查询 4 带LIKE的字符匹配查询 5 查询空值 6 带
  • truncate和delete的区别

    两者都可以删除表中的数据 但是本质上是有区别的 两者使用方法如下 删除表中所有数据 DELETE FROM table name 删除表中部分符合条件的数据 DELETE FROM table name WHERE 删除表中所有数据 TRU
  • Google reCAPTCHA ----------验证码

    现有验证码的产品形态调研范围如下 基本涵盖了比较主流的验证码平台 Google reCAPTCHA 极验 阿里云 腾讯云 点触 网易易盾 螺丝帽 FunCaptcha 产品背景 reCAPTCHA起初是由CMU 卡耐基梅隆大学 设计 将OC
  • pip安装地址--清华源(国内常用镜像源)

    国内常用镜像源 清华大学 https pypi tuna tsinghua edu cn simple 阿里云 http mirrors aliyun com pypi simple 中国科学技术大学 http pypi mirrors u
  • Linux服务器在线扩容内存,redhat linux 在线扩容磁盘空间

    在惠普Proliant服务器上在线扩容Linux ext3类型的文件系统 服务器集成SA5i 内置硬盘 加SA532挂MSA500 划了一个阵列 全部做一个逻辑盘 设备名为 dev cciss c1d0 全部空间建立分区为 dev ccis
  • 箭头函数和普通函数的区别

    箭头函数 1 只有一个参数的时候 参数可以不加小括号 没有参数或2个及以上参数的 必须加上小括号 2 返回语句只有一条的时候可以不写 和return 会自动加上return的 返回多条语句时必须加上 和return 3 箭头函数在返回对象的
  • Mysql添加新用户,并设置数据库权限

    首先进入mysql mysql u root p 然后在数据库中使用 create DATABASE my test db 创建数据库 CREATE USER test user IDENTIFIED BY test pass 创建一个用户
  • 5种很牛的两位数乘法速算方法

    5种很牛的两位数乘法速算方法 第一种 十几乘以任意两位数 公式推导 10 b 10c d 100c 10 bc d bd 10 10c bc d bd 10 10c d bc bd 方法 如果c 1 公式是 10 b 10 d 10 10
  • 16款ChatGPT工具,太炸裂了,收藏!

    因公众号更改推送规则 请点 在看 并加 星标 第一时间获取精彩技术分享 点击关注 互联网架构师公众号 领取架构师全套资料 都在这里 0 2T架构师学习资料干货分 上一篇 ChatGPT研究框架 80页PPT 附下载 大家好 我是互联网架构师
  • ug装配绕轴旋转_UG绘制小吊扇模型,建模装配还能运动起来

    夏天来了 吾思小编来教大家用UG做一个小风扇给夏日带来一丝凉意吧 根据图纸建模 整体建模难度 简单 装配难度 简单 模型效果图如下 一共由五个零件组成 建模过程 先画零件1底座 1 绘制一个直径为120mm的圆拉伸10mm 2 倒斜角5mm
  • Scanner读取文件(按行读入)

    public class ScannerTest public static void main String args 其实 Scanner在使用结束之后 也是需要进行关闭的 调用close方法 try Scanner scanner n
  • 使用注解从AOP面对方法进行逻辑判断

    今天360文8热8凉1汤 不好意思走错了 需求 根据不同的登录设备对xxController层中的方法是否禁用 AOP解释 切面编程 灵魂画图 代码 1 建立一个注解SuiteDisable import java lang annotat
  • Unity获取鼠标滚轮信息

    Unity获取鼠标滚轮信息 UGUI获取滚轮信息 Input获取滚轮信息 UGUI获取滚轮信息 UGUI关于鼠标滚轮信息的获取有一个专门的接口IScrollHandler用于接收滚轮事件 继承该事件之后便需要实现函数OnScroll 如下
  • 【汇编语言05】第4章 第一个程序

    目录 0 前言 1 源程序从编写到执行 1 1 第1步 编写汇编源程序 1 2 第2步 对源程序进行编译连接 1 3 第3步 执行可执行文件中的程序 2 简单源程序示例及其组成 2 1 简单源程序示例 2 2 伪指令 2 3 源程序与程序
  • 什么是 Web 3.0?定义、功能和示例

    计算的新时代已经开始 你一定已经注意到 互联网技术在过去十年中发展得非常迅速 变得越来越精密和复杂 物联网 IoT 3D数字孪生 区块链 增强现实和其他技术已经扩大了机会 以至于旧的Web 2 0术语不再描述新的互联网现实 Web 3 0现
  • 网页计数器

    随着网络大行其道 网页计数器也流行起来 事实上大多数网站均有网页计数器 用以反映该网站的访问量 计数器的来源很广 Frontpage等网页编辑器自带了网页计数器 有的站点也提供免费的计数器下载 其实熟悉了ASP编程后 自己做一个计数器很容易