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

  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'登录时间