<font face=\"宋体\" size=\"2\">
<font face=\"宋体\" size=\"2\">\'====================================================================
\'= Copyright (c) 2004,NB联盟 =
\'= All rights reserved. =
\'=------------------------------------------------------------------=
\'= 文件名称:Online.asp =
\'= 摘 要:在线情况维护文件 =
\'=------------------------------------------------------------------=
\'= 最后更新:eason007 =
\'= 最后日期:2004-06-17 =
\'====================================================================
Option Explicit
Response.Buffer=True
<font face=\"宋体\" size=\"2\">Const TimeOver=20
Dim Conn
Dim Rs,SQL
Dim UserId,SessionId,IP
Dim Tag,Key
<font face=\"宋体\" size=\"2\">Set Rs=server.CreateObject("adodb.recordSet")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "&Server.MapPath("Online.mdb")
<font face=\"宋体\" size=\"2\">Randomize Timer
Key = "NB" & (1+Int(Rnd*1000000000))
<font face=\"宋体\" size=\"2\">Response.Cookies("Key").Path="" \'set cookies path
Response.Cookies("Key").Expires = DateAdd("n",TimeOver,Now())
<font face=\"宋体\" size=\"2\">Tag=0
UserId=12
\'UserId=Request.Cookies ("UserId")
If UserId="" Then UserId=0 \' 0=Guest
If Request.Cookies ("Key")="" Then
Response.Cookies("Key")=Key
SessionId=Key
Else
SessionId=Request.Cookies ("Key")
End If
IP=GetUserIp
<font face=\"宋体\" size=\"2\">\'清理在线记录
\'....
<font face=\"宋体\" size=\"2\">SQL="select UserId,SessionId,IP from [Online] where IP=\'"&IP&"\' and UserId="&UserId&" and SessionId=\'"&SessionId&"\'"
Set Rs=Conn.Execute(SQL)
If Rs.EOF And Rs.BOF Then \'判断库内是否有完整在线记录
\'no
SQL="select UserId from [Online] where IP=\'"&IP&"\'"
Set Rs=Conn.Execute(SQL)
If Not Rs.EOF And Not Rs.BOF Then Tag=Tag+1
SQL="select UserId from [Online] where UserId="&UserId
Set Rs=Conn.Execute(SQL)
If Not Rs.EOF And Not Rs.BOF Then Tag=Tag+3
SQL="select UserId from [Online] where SessionId=\'"&SessionId&"\'"
Set Rs=Conn.Execute(SQL)
If Not Rs.EOF And Not Rs.BOF Then Tag=Tag+5
Select Case Tag
Case 0
\'没有ip、cookies、userid
SQL="insert into [Online] (UserId,IP,SessionId,LTime,STime)"
SQL=SQL&" values ("&UserId&",\'"&IP&"\',\'"&SessionId&"\',\'"&Now()&"\',\'"&Now()&"\')"
Case 1
\'有ip,即网吧用户
\'因如果是刷新或者游客变会员的话,起码有SessionId
\'注:刷新tag=9,游客变会员tag=6
SQL="insert into [Online] (UserId,IP,SessionId,LTime,STime)"
SQL=SQL&" values ("&UserId&",\'"&IP&"\',\'"&SessionId&"\',\'"&Now()&"\',\'"&Now()&"\')"
Case 3
\'有id,
\'身份可能是游客或者会员
\'刷新or重登陆,但排除刷新,因刷新tag=8
If UserId=0 Then
SQL="insert into [Online] (UserId,IP,SessionId,LTime,STime)"
SQL=SQL&" values ("&UserId&",\'"&IP&"\',\'"&SessionId&"\',\'"&Now()&"\',\'"&Now()&"\')"
Else
SQL="update [Online] set IP=\'"&Ip&"\',SessionId=\'"&SessionId&"\',LTime=\'"&Now&"\' where UserId="&UserId
End If
Case 5
\'有sessionid
\'不管他是什么身份,只管更新该台机的所有信息,因为一台机只可以干一件事
SQL="update [Online] set IP=\'"&Ip&"\',UserId="&UserId&",LTime=\'"&Now&"\' where SessionId=\'"&SessionId&"\'"
Case 4
\'有ip、id,但不保证是同一条记录
\'同一记录时,判断为会员换机,update
\'不同时,以id为主,游客insert,会员update
SQL="select UserId from [Online] where IP=\'"&IP&"\' and UserId="&UserId
Set Rs=Conn.Execute(SQL)
If Not Rs.EOF And Not Rs.BOF Then
SQL="update [Online] set IP=\'"&Ip&"\',SessionId=\'"&SessionId&"\',LTime=\'"&Now&"\' where IP=\'"&IP&"\' and UserId="&UserId
Else
If UserId=0 Then
SQL="insert into [Online] (UserId,IP,SessionId,LTime,STime)"
SQL=SQL&" values ("&UserId&",\'"&IP&"\',\'"&SessionId&"\',\'"&Now()&"\',\'"&Now()&"\')"
Else
SQL="update [Online] set IP=\'"&Ip&"\',SessionId=\'"&SessionId&"\',LTime=\'"&Now&"\' where UserId="&UserId
End If
End If
Case 6
\'有ip、sessionid
\'同一记录时,游客变会员,update
\'不同时,参照tag=5,update
SQL="update [Online] set IP=\'"&Ip&"\',UserId="&UserId&",LTime=\'"&Now&"\' where SessionId=\'"&SessionId&"\'"
Case 8
\'有id、sessionid
\'同一记录时,参照tag=5,update
\'不同时,游客时,参照tag=5,update,会员时,以sessionid为主
SQL="select UserId from [Online] where SessionId=\'"&SessionId&"\' and UserId="&UserId
Set Rs=Conn.Execute(SQL)
If Not Rs.EOF And Not Rs.BOF Then
SQL="update [Online] set IP=\'"&Ip&"\',LTime=\'"&Now&"\' where UserId="&UserId
Else
If UserId=0 Then
SQL="update [Online] set IP=\'"&Ip&"\',UserId="&UserId&",LTime=\'"&Now&"\' where SessionId=\'"&SessionId&"\'"
Else
SQL="delete [Online] where UserId="&UserId
Conn.Execute(SQL)
SQL="update [Online] set IP=\'"&Ip&"\',UserId="&UserId&",LTime=\'"&Now&"\' where SessionId="&SessionId&"\'"
End If
End If
Case 9
\'有ip、id、sessionid
\'同一记录时,永远不可能发生
\'不同时,组合:id&ip,id&sessionid,ip&sessionid
\'清理库
SQL="delete [Online] where IP=\'"&Ip&"\' and UserId="&UserId
Conn.Execute(SQL)
SQL="delete [Online] where SessionId=\'"&SessionId&"\' and UserId="&UserId
Conn.Execute(SQL)
SQL="delete [Online] where IP=\'"&Ip&"\' and SessionId=\'"&SessionId&"\'"
Conn.Execute(SQL)
SQL="delete [Online] where UserId="&UserId
Conn.Execute(SQL)
SQL="update [Online] set IP=\'"&Ip&"\',UserId="&UserId&",LTime=\'"&Now&"\' where SessionId=\'"&SessionId&"\'"
End Select
Else
SQL="update [Online] set LTime=\'"&Now()&"\' where IP=\'"&IP&"\' and UserId="&UserId&" and SessionId=\'"&SessionId&"\'"
End If
\'Response.Write SQL&"
"
Conn.Execute(SQL)
<font face=\"宋体\" size=\"2\">SQL="select UserId,IP,SessionId,STime,LTime from [Online]"
Set Rs=Conn.Execute(SQL)
Do While Not rs.eof \'show list
Response.Write rs(0)&"---->"
Response.Write rs(1)&"---->"
Response.Write rs(2)&"---->"
Response.Write rs(3)&"---->"
Response.Write rs(4)&"---->
"
rs.movenext
Loop
<font face=\"宋体\" size=\"2\">Function GetUserIp()
Dim Ip,Tmp
Dim i,IsErr
IsErr=False
If Request.ServerVariables("HTTP_X_ForWARDED_For")="" Then
Ip=Request.ServerVariables("REMOTE_ADDR")
Else
Ip=Request.ServerVariables("HTTP_X_ForWARDED_For")
End If
If Len(Ip)>15 Then
IsErr=True
Else
Tmp=Split(Ip,".")
If Ubound(Tmp)=3 Then
For i=0 To Ubound(Tmp)
If Len(Tmp(i))>3 Then IsErr=True
Next
Else
IsErr=True
End If
End If
If IsErr Then
GetUserIp="1.1.1.1"
Else
GetUserIp=Ip
End If
End Function
[
点击查看详细]
分享到:
相关推荐
在JSP2.0技术规范中,引入了一种新的标签机制,被称为Tag Files(标签文件),其主要目标是为了解决传统JSP页面中脚本元素的使用问题,提供一个更为简洁和高效的方式来进行页面动态内容的添加。开发者可以利用标签...
在JavaScript(JS)中,获取页面上的特定元素是前端开发中的基本操作。本文将介绍三种利用`tagName`和`id`获取元素的方法。这些方法在处理网页交互和动态更新内容时非常有用。以下是对每种方法的详细说明: 1. **...
它通过自定义字段类型和管理器,让开发者可以像处理其他模型字段一样处理标签。此外,`django-taggit` 还支持标签云、标签关系以及基于标签的查询,大大简化了数据组织和用户交互。 **安装与使用** 要在项目中使用...
Display Tag是Java Web开发中的一款强大且功能丰富的开源表格标签库,它为开发者提供了一种在JSP页面中处理和展示表格数据的高效方式。这个使用总结文档将深入探讨Display Tag的功能、配置、使用方法以及常见问题的...
它可能会调用其他类或模块来解析MP3文件的ID3v1和ID3v2标签,然后将这些信息显示在界面上,同时接收用户输入,更新标签信息。 3. **cMP3ID3v2.cls和cMP3ID3v1.cls**:这两个是类文件,分别代表ID3v2和ID3v1标签的...
标题“ZL400A-G_EN_Magnetic_9kG_Tack_Tag_zl400a_”和描述“ZL400A-G_EN_Magnetic_9kG_Tack_Tag”暗示了一个关于ZL400A-G型号的产品,它与磁性9kG的标签技术有关。我们可以推测这是一款专门设计用于高磁场环境的...
`logictags.tld`可能是逻辑操作相关的标签库,它可能包含一些条件判断、循环等控制流标签,帮助开发者在JSP页面上进行复杂的逻辑处理,而无需过多地编写Java代码,提高了代码的可读性和维护性。 `calendartag.tld`...
综上所述,这个简单的用户维护模块涵盖了Java Web开发的多个核心方面,从后端的数据库操作到前端的用户交互,以及在它们之间的业务逻辑处理。理解和掌握这些知识点,对于构建任何基于Java的Web应用程序都至关重要。
首先,站群系统是用于管理和维护多个相关网站的工具,通过集中化的管理平台,可以同时对多个独立站点进行内容更新、SEO优化和数据分析。迅搜CMS站群系统2.2版本在此基础上进一步提升了用户体验和性能效率,使得在大...
记住,编写VBA代码时要遵循良好的编程习惯,包括适当的注释、错误处理和代码组织,这样可以让你的代码更易于理解和维护。同时,学习和理解Excel对象模型对于深入利用VBA是非常重要的,因为所有Excel元素(如工作簿、...
**正文** 在IT行业中,JavaServer Pages(JSP)是一种基于Java的技术,用于创建动态网页。...在实际开发中,JSP和自定义Tag的应用远不止于此,它们可以用来构建复杂的Web应用程序,处理各种业务逻辑和用户交互。
在React中,组件是构建UI的基本单元,可以独立地管理自己的状态和行为。 "react-tag-input"是一个专门针对React开发的组件,它允许用户在输入框中添加、编辑和删除标签。这种类型的组件在许多应用中非常常见,如...
9. **学习资源**:为了深入理解和使用正则表达式,可以参考在线教程,如RegExr、MDN Web Docs上的正则表达式指南,或者C#的官方文档。 通过理解以上知识点,你将能够运用正则表达式有效地处理HTML文本,无论是简单...
- 定义Tag Handler类:编写一个Java类,实现Tag接口或SimpleTag接口,定义处理标签的方法。 - 编写TLD(Tag Library Descriptor)文件:这是XML文件,包含了关于自定义标签的信息,如标签名、属性、对应的Tag ...
### 关于《Core JSTL - Mastering the JSP Standard Tag Library》 #### 一、JSP标准标签库(JSTL)概述 在深入探讨《Core JSTL - Mastering the JSP Standard Tag Library》这本书之前,我们先来了解一下JSP标准...
9. **与BeautifulSoup的比较**: 虽然BeautifulSoup是另一个流行的HTML解析库,但lxml在速度和功能上更胜一筹,尤其是在处理大型文档和需要XPath或CSS选择器时。 总结,lxml库是Python处理XML和HTML的首选工具,...
JSTL提供了许多预定义的标签,可以帮助开发者编写更简洁、更易于维护的JSP页面。新手可能在使用JSTL标签时遇到导入问题、标签使用错误或不理解标签功能。 5. **Servlet生命周期与JSP转换**: JSP页面会被编译成...
将数字0-9、加号、减号、乘号、除号、等号、清除键(CE)和等于号(=)按钮拖放到窗体上。记得设置好按钮的文字和大小。 接下来,我们需要处理按钮的点击事件。在代码视图中,我们为每个按钮添加一个Click事件处理...
JavaServer Pages Standard Tag Library(JSTL)是Java Web开发中的一个重要组件,它提供了一组预定义的标签,用于简化JSP页面中的业务逻辑处理,从而使得代码更加清晰、易于维护。在IDEA这样的集成开发环境中,虽然...