12. februar 2004 - 02:25
Der er
5 kommentarer
Session hænger med MySQL
Efter at jeg har konverteret fra Access til MySQL bliver session hængende, det er heller ikke muligt at logge af med:
<%
session.abandon
%>
Hvad kan det skyldes?
12. februar 2004 - 08:35
#1
Session.abandon lukke ikke for en forbindelse til database der skal man bruger .Close på connection objectet.
Hvis det er session variable som ikke bliver slettet så det fordi session variable vil findes ind til man har lavet en redirect eller den side som kalder session.abandon er færdig kørt.
12. februar 2004 - 12:33
#2
Jeg har en ganske almindelige logud, hvor session.abandon køres, det virkede fint på Access
Database forbindelser lukkes stadig med
rs.Close
Conn.Close
Set Conn = Nothing
Set rs = Nothing
Hvad kan jeg mere gøre?
12. februar 2004 - 15:11
#3
Her er mit login og global.asa
Måske findes fejlen her?
Global.asa:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
timeout_sek = 2
Sub Application_OnStart
' Nulstiller antallet af brugere når applikationen (serveren) startes
Application.Lock
Application("OnlineUsers") = ","
Application.UnLock
Application("ActiveUsers") = 0
End Sub
Sub Application_OnEnd
' Skriv kode som skal køres når applikationen (serveren) stoppes
End Sub
Sub Session_OnStart
' Forøger antallet af brugere med 1, når en session startes
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
' Reducer antallet af brugere med 1, når en session afsluttes
If Len(Session("username")) > 0 Then
Application.Lock
Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("username") & ",", "")
Application.UnLock
End If
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
End Sub
</SCRIPT>
Login.asp:
<%
Session.Timeout = 2
Sub AddOnlineUser()
Application.Lock
Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
Application.UnLock
End Sub
if request.form("savelogin") = "true" then
response.cookies("email") = request.form("email")
response.cookies("email").Expires = now()+365
response.cookies("password") = request.form("password")
response.cookies("password").Expires = now()+365
elseif request.cookies("autologin") <> "yes" then
response.cookies("email") = ""
response.cookies("password") = ""
end if
if request.form("autologin") = "true" then
response.cookies("autologin") = "yes"
response.cookies("autologin").Expires = now()+365
response.cookies("email") = request.form("email")
response.cookies("email").Expires = now()+365
response.cookies("password") = request.form("password")
response.cookies("password").Expires = now()+365
end if
login_email = replace(request.form("email"), "'", "''")
if len(login_email) <= 0 AND request.cookies("autologin") = "yes" then
login_email = request.cookies("email")
response.write "["&request.cookies("autologin")&"]"
end if
login_password = trim(request.form("password"))
if len(login_password) <= 0 AND request.cookies("autologin") = "yes" then login_password = request.cookies("password")
connStr = "driver={MySQL ODBC 3.51 Driver};DATABASE=system;SERVER=localhost;UID=root;PWD=xxx;OPTION=16834;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConnStr
set rs = Conn.Execute("SELECT email, password, fnavn, enavn, adresse, postnummer, `by` FROM members WHERE email = '"&login_email&"'")
if not rs.EOF AND not rs.BOF then
if trim(rs("password")) = login_password then
session("email") = rs("email")
session("fnavn") = rs("fnavn")
session("enavn") = rs("enavn")
session("adresse") = rs("adresse")
session("postnummer") = rs("postnummer")
session("by") = rs("by")
session("username") = rs("fnavn") & (" ") & rs("enavn") & (" (") & rs("by") & (")")
Call AddOnlineUser()
response.redirect ("loggetind.asp?msg="&Server.UrlEncode(""))
else
response.cookies("autologin") = "no"
response.redirect("loginerror.asp")
end if
else
response.cookies("autologin") = "no"
response.redirect("loginerror.asp")
end if
rs.Close
Conn.Close
Set Conn = Nothing
Set rs = Nothing
%>