您的位置:首页 > 其它

一个实用的FSO-实时统计在线人数

2006-10-28 00:00 429 查看
count.asp:
<%Server.ScriptTimeout=300

id=Trim(Request.QueryString("id"))

fc=Trim(Request.QueryString("fc"))

if fc="" then fc="FFFF00"

bg=Trim(Request.QueryString("bg"))

if bg="" then bg="000000"

bc=Trim(Request.QueryString("bc"))

if bc="" then bc="00FF00"

sername=Request.ServerVariables("SERVER_NAME")

scrname=Request.ServerVariables("SCRIPT_NAME")

linkurl="http://" & sername & scrname

%>

<html>

<head>

<title>实时统计在线人数</title>

<META HTTP-EQUIV="Refresh" content="10; URL=<%=linkurl%>"> '每隔10秒刷新

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<style TYPE="text/css">

<!--

P {FONT-SIZE: 9pt; font-color: #eeeeee}

A {TEXT-DECORATION: none}

A:link {COLOR: #0068A3}

A:visited {COLOR: #0068A3}

A:hover {COLOR: #2f00ff; TEXT-DECORATION: underline}

.ourfont {font-size: 9pt }

BODY { FONT-SIZE: 9pt}

TABLE { FONT-SIZE: 9pt}

-->

</style>

</head>

<%

countfile=server.mappath("people.asp")

Set fs=CreateObject("Scripting.FileSystemObject")

n=Year(date())

y=Month(date())

r=Day(date())

s=Hour(time())

f=Minute(time())

m=Second(time())

if len(y)=1 then y="0" & y

if len(r)=1 then r="0" & r

if len(s)=1 then s="0" & s

if len(f)=1 then f="0" & f

if len(m)=1 then m="0" & m

sj = n & "-" & y & "-" & r & " " & s & ":" & f & ":" & m

'格式化日期、时间

dim ly()

Set thisfile=fs.OpenTextFile(countfile,1,False)

countly=0

do while not thisfile.AtEndOfStream

thisline = thisfile.readline

Redim preserve ly(countly)

ly(countly) = thisline

countly = countly + 1

loop '将people.asp中内容读到数组中

thisfile.close

sameip=0

for i=1 to (countly-1)/2

if DateDiff("s",ly(i*2),sj)>60 then

ly(i*2-1)=""

ly(i*2)=""

countly=countly-2

end if

if Request.ServerVariables("REMOTE_ADDR")=ly(i*2-1) then

sameip=1 'IP已经存在

ly(i*2)=sj

end if

next

set outfile=fs.CreateTextFile(countfile)

for i=0 to countly-1

if ly(i)<>"" then

outfile.WriteLine ly(i)

end if

next

if sameip=0 then

outfile.WriteLine Request.ServerVariables("REMOTE_ADDR")

outfile.WriteLine sj  '添加新记录

outfile.Close

end if

Set thisfile=fs.OpenTextFile(countfile,1,False)

countly=0

do while not thisfile.AtEndOfStream

thisline = thisfile.readline

Redim preserve ly(countly)

ly(countly) = thisline

countly = countly + 1'总的记录行数

loop

thisfile.close

total=(countly-1)/2 '统计总人数,每人有两行记录:IP、时间

%>

<body>
<p><select name="Online" size="1">

<option selected value="Online"><%=total%>人在线上</option>

<%

for i=1 to total

response.write "<option>"&ly(i*2-1)&"</option>"

next

%>

</select></p>

</body>

</html>
people.asp:
<%Response.end%>

172.16.20.230'用户IP

2003-06-15 09:53:57'登录时间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐