请教有关 Session_OnEnd 的问题
global.asa 文件如下:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
'当服务器开启时,设置用户数为0
Application("UserNum") = 0
Application("Conn_Str") = "dsn=zgc;uid=;pwd="
End Sub
Sub Session_OnStart
Session.Timeout = 2
'当开始一个Session时用户数加1
Application.Lock
Application("UserNum") = Application("UserNum") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
sql = "select loginok from cgzgc.dbo.login where username='" & Session("username") & "'"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open Application("Conn_Str")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql,conn,3,3
rs("loginok") = "0"
rs.Update
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
'当结束一个Session时用户计数器减1
Application.Lock
Application("UserNum") = Application("UserNum") - 1
Application.UnLock
End Sub
</SCRIPT>
logout.asp 文件如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Session.Abandon()
Response.Redirect("index.asp")
%>
意图是:
当用户退出登录时,将数据库中他的帐号下的 loginok 置 0 表示其未登录。
将代码写进 Session_OnEnd 事件里,是希望无论正常退出,还是非正常退出(例
如直接关闭浏览器),均可以更新数据库。
问题:
该对数据库进行操作的代码并不执行(注意:在其它地方是可以执行的,只
是在 Session_OnEnd 事件里好像不执行)。请问各路高手,是哪里出了问题,或
者要解决这样的需求还有没有其它的办法?