云南昆明学摄影:ASP计数器问题

来源:百度文库 编辑:高校问答 时间:2024/04/29 09:40:55
程序1:

<%
dim conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("count.mdb")
dim visiter 'visiter=访问人数
dim sql
dim rs
dim LastVisit '上次访问时间
dim chaVisit '实际两次访问时间差
dim xiangge
dim count
dim countlen
dim i
xiangge=300 '限定的访问时间差,以秒为记时
sql="select visiter from visiter"
set rs=conn.execute(sql)
count=rs("visiter")
CountLen=len(count)
if countlen<6 then
for i=1 to 6-countLen
response.write "0"
next
end if
response.write count
LastVisit = Request.Cookies("LastVisitCookie")
if LastVisit = "" then
sql="update visiter set visiter=visiter+1"
set rs=conn.execute(sql)
Response.Cookies("LastVisitCookie") = FormatDateTime(NOW)
else
chaVisit=DateDiff("s",LastVisit,Now())
if chavisit>xiangge then
sql="update visiter set visiter=visiter+1"
set rs=conn.execute(sql)
Response.Cookies("LastVisitCookie") = FormatDateTime(NOW)
end if
end if
conn.close
set conn=nothing
%>

此段代码配合count.mdb文件可以运行,但是运行出现问题,即无法实现数字自动更新,需要按刷新按钮后,才能使访问数字增加。请教出了什么问题?

代码2:
<%
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Dir = Request.ServerVariables("SCRIPT_NAME")
Dir = StrReverse(Dir)
Dir = Mid(Dir, InStr(1, Dir, "/"))
Dir = StrReverse(Dir)
HitsFile = Server.MapPath(Dir) & "\hits.txt"

On Error Resume Next
Set InStream= FileObject.OpenTextFile (HitsFile, 1, false )
OldHits = Trim(InStream.ReadLine)
NewHits = OldHits + 1
Set OutStream= FileObject.CreateTextFile (HitsFile, True)
OutStream.WriteLine(NewHits)
%>

您是第
<%
num=newhits
Response.Write num%>位客人

此代码配合hits.txt,可以运行,但刷新时会数字会不断增加,请问如何修改,才能解决?
请高手指教!多谢!

1.可能是你设置的时间差太大了吧
2在开始加个aplication.lock
然后在后面在加个aplication.unlock
有个例子参考下
<%
Function Counts(CounterFile)
Dim objFSO, objTS
Application.Lock
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath(CounterFile), 1, True)
If Not objTS.AtEndOfStream Then '检查是否到达文件结尾
Counts = CLng(objTS.ReadLine)
End If
Counts = Counts + 1
objTS.Close

Set objTS = objFSO.OpenTextFile(Server.MapPath(CounterFile), 2, True)
objTS.WriteLine(Counts)
objTS.Close
Application.Unlock
End Function

If Session("Counter") = Empty Then
Session("Counter") = Counts("Counter.txt")
End If

%>
<HTML>
<BODY>
您是第 <%= Session("Counter") %> 位访客
</BODY>
</HTML>