Sub Session_OnEnd
i have the following code in the "Sub Session_OnEnd" routine that does not
seem to run..... Code:
i have the following code in the "Sub Session_OnEnd" routine that does not
seem to run..... Code:
i am trying to insert a record into my database when a session times out, but the Session_OnEnd doesn't seem to be called... i read somewhere that it is not called but i didn't pay attention to it, and now it seems to be true.
View Replies View RelatedIs the session ID still available in the Session_OnEnd function in my global.asa?
View Replies View RelatedBasically session_onend will not fire in my global.asa files! I have just made a very simple test to prove its not my programming and it still doesnt fire.
Session_onstart works a treat but onend will not work even if you force the session to expire with abandon. I have tried on 2 of our servers now and it doesnt work on either.
my simple test is this:
Sub Session_OnEnd
application("test") = "hello"
End Sub
Now surely that should work. i obviously have a page that writes that test variable to the page but its always empty.
In my site I have a users system, when a user loges in his ID is placed in his cookies (cookies("uid")) so what I am trying to do is write a code in the Global.asa that will write in my DB whenever a loged user session starts and ends.
my problem is that the Session_OnEnd event does not support the use of cookies and even worse then that it does not support the CreateObject method in the Server Object with wich I connect to my DB.
So this is my code in the Global.asa, If you guys have any idea on how to make this code work, despite the disadvantages the Session_OnEnd Event has...
<script language="vbscript" runat="server">
Sub Application_OnStart
Dim dbpath
dbpath = Server.Mappath("data") & "db.mdb"
application("CnStr_Main") = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath
End Sub
sub Session_OnStart
If request.cookies("uid")<>"" then
Dim tmpconn,tmpRS,tmpDSNName,tmpsql
Set tmpconn = Server.CreateObject("ADODB.Connection")
Set tmprs = Server.CreateObject("ADODB.Recordset")
tmpDSNName = application("CnStr_Main")
tmpconn.Open tmpdsnname
tmpsql = "SELECT * FROM users WHERE id=" & request.cookies("uid")
tmprs.open tmpsql,tmpconn,3,3
if not tmprs.EOF then
tmprs(12) = 1
tmprs.update
end if
tmprs.close
tmpconn.close
end if
end sub
sub Session_OnEnd
If request.cookies("uid")<>"" then
Dim tmpconn,tmpRS,tmpDSNName,tmpsql
Set tmpconn = Server.CreateObject("ADODB.Connection")
Set tmprs = Server.CreateObject("ADODB.Recordset")
tmpDSNName = application("CnStr_Main")
tmpconn.Open tmpdsnname
tmpsql = "SELECT * FROM users WHERE id=" & request.cookies("uid")
tmprs.open tmpsql,tmpconn,3,3
if not tmprs.EOF then
tmprs(12) = 0
tmprs.update
end if
tmprs.close
tmpconn.close
end if
end sub
</script>
So when *does* Session_OnEnd fire in my Global.asa file? Does it fire when
they click a link to leave the site? Does it fire when the session times out?
I have an ASP application that is a electronic purchase orders system. My
problem is that only 3 people can authorise a purchase order. When a
purchase order is selected I update the table to show that the field is
locked. If they complete the form then the database is updated and the lock
is removed, all though at this stage the record moves into another part of
the system and the lock becomes redundant.
If however they dont complete the form the record is left in a permanent
locked state, it could be that they decided to look at the record then
navigated away or closed the browser.
So i thought maybe i could stick some code that updates the database into
the session_OnEnd in the global.asa, so after 20 minutes when the session has
ended the lock will free. I don't however have any experience with this and
don't even know if this will work. The code won't be a problem its just
whether this process will actually work.
I am thinking that I code put the order_id into a session variable then when
the session variable ends i run a sub in the .asa file that gets the session
variable and updates the table.
Why this code is not executing the Session_OnEnd on the Array?
Sub Session_OnEnd
dim pArray
pArray=Application("ref")
for b=1 to 100
pArray(b)=""
next
Application.Lock
Application("ref")=pArray
Application.UnLock
I am having problem with Global.asa
When a session end i want to delete a folder, however it doesn't seem
to work, TempFolderPath is a global variable. or do i have to save the
folder path in the db and use it when the the session ends ?
sub Session_OnEnd
DeleteTempPath(TempFolderPath)
end sub
Does this Scripting.FileSystemObject.DeleteFolder will it delete file
that are in the folder or just empty folder.
I am tracking all activity on one of my sites, but if the user does not hit the LOGOUT button, I don't get a Logged out entry. I would like to stick it into the global.asa file so that it will do it when their session ends no matter how they exit.
This code below is what I have in my asa file now, but does not seem to be working.
Sub Session_OnEnd
IF Session("USER_ID") <> 0 THEN
oDb = Server.CreateObject("adodb.connection")
ConnStr = "SQL CONNECTION STRING"
oDb.Open(ConnStr)
oDb.Execute("INSERT INTO Log (mLogin, IP, EventTime, EventDescr) VALUES("+Session("USER_ID")+", '"+Session("USER_IP")+"', GetDate(),'Log Out')")
END IF
End Sub
Any ideas?
I'm simply trying to write a session id to a database using Session_OnStart and then remove that line from the database using Session_OnEnd so that I know when a user has logged in and logged out again. Here's the Session_OnStart code that works fine. There's just a bit field and an int field in a SQL Server database: Code:
View Replies View RelatedDoes anyone know why the Session_OnEnd subroutine in global.asa never gets called? I set Session.Timeout = 1, I also have debugging code that writes to a text file.
Session_OnStart writes to this file, however Session_OnEnd does not. I am also trying to access a database in this routine and it never happens, however I can access the database from within Session_OnStart. I have tried this on PWS and on line using IIS with the same results.
i know that Session_OnEnd (global.asa)
do not support "response"
i need somehow to redirect after the Session_OnEnd
*if it will shoot of course
i understand that there is some way to do this with application?
Why doesn't the following code work?
Sub Session_OnEnd
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = Application("Connection_String")
Conn.Open 'here is the error
....
End Sub
A Conn object is created the same way in Session_OnStart and is used throughout the application, and Application("Connection_String") still exists here (I tested). So I suppose the error is caused by the fact that we are in Session_OnEnd.
My Session_OnStart works but Session_OnEnd does not work. Here's the
code...can anyone tell me what's wrong with my code or if anything else
on the server that needs to be changed. The Session_OnStart does create
the folder for me with the SessionID as the folder name but
Session_OnEnd does not delete that folder. Code:
Through the years there's always been trepidation about relying on the
Session_OnEnd routine being fired at the conclusion of a user session, hence
my instinctive avoidance of using it in anything I've created.
Now comes a time when it'd actually be desirable to use this feature; can
anyone tell me if its reliability is any better with IIS6 (under Server
2003) than it was with previous IIS incarnations?
I can successfully delete files using fso.DeleteFile when in an ASP
script. But in Session_OnEnd, where I'd *really* like to clean up
files, it appears that DeleteFile doesn't work. I've tried every
combination I could think of. I've verified the filespecs I'm using by
logging to a session log file.
BTW, I found out the hard way that I can't reference
Request.ServerVariables("APPL_PHYSICAL_PATH") from within
Session_OnEnd. I had to copy that to Session("AppPath") to keep it
around for the OnEnd event. Without that, ASP just bails out of OnEnd,
ignoring the remainder of the subroutine.
We have a solution where we want to control the number of users logged
in at the same time.
So when the user log in we check number of currentusers agains
allowedusers and increment a currentusers (in the database).
On Session_onEnd or when a user logout (actually I abandon the session
on logout) we decrease currentusers.
But as we all know when the browser is closed or the user just go to
another site this decrease does not appear.
It will of course trigger when Session goes to timeout, but I imagine
a lot of angry users calling support when they are denied access.