猫兄来看!
数据库status:
id int
name varchar
sex varchar
status bit 默认(0)
SID int
logintime datetime
outtime datetime
global.asa:
<script language=vbscript runat=server>
set application("conn")=server.CreateObject("ADODB.connection")
application("conn").open "provider=sqloledb;data source=8760-HUA;user id=sa;password=xiaoqiang;database=bbs"
sub application_onstart()
application("activers")=0
end sub
sub session_onstart()
application.Lock ()
application("activers")=application("activers")+1
application.UnLock ()
end sub
sub session_onend()
application.Lock ()
application("activers")=application("activers")-1
application("conn").execute "update status set status=0,outtime='"&now()&"' where userid='"&session("user")&"' and SID="&session.SessionID&""
application.UnLock ()
end sub
</script>
index.asp:
<%@ Language=VBScript %>
<!--#include file="global.asa"-->
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
name = Request.Form("user")
pwd = Request.Form ("pwd")
Set rs=server.CreateObject ("adodb.recordset")
strsql="select * from status where name='"&name&"' and pwd='"&pwd&"'"
rs.Open strsql,application("conn"),1,1
if rs.EOF then
Response.Write "<script>alert('没有该用户');history.go(-1)</script>"
else
flag=rs("status")
session("user")=name
if flag=true then
Response.Write "<script>alert('该用户已登陆');history.go(-1)</script>"
else
now1=now()
sid=session.SessionID
strsql1="update status set status=1,SID="&sid&",logintime='"&now1&"'where name='"&session("user")&"'"
application("conn").execute(strsql1)
Response.Write "欢迎你" & session("user") & ",当前在线人:" & application("activers")
end if
end if
%>
</BODY>
</HTML>
代码贴出来了,测试就是不行,关了窗口status还是1
等一会会话超时才改变回来!