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>
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.
In my Session_OnStart in Global.asa, I am setting some cookies. One of them, I set as follows:
dim UserID UserID = Request.ServerVariables("LOGON_USER") Response.Cookies("User")("ID") = UCASE(UserID)
When I immediately log the cookie value retrieved from Request.Cookies("User")("ID") into the Windows Event Log, I get the correct value. However, when I try to retrieve the cookie on the home page of my application using the same code,
Request.Cookies("User")("ID"), it either cannot find the cookie or cannot read the value. I am retrieving the cookie before all HTML headers are written. It is my first statement on the page after Option Explicit. I have even compared the session IDs. The SessionID created in the Session_OnStart is the same value as the SessionID on the home page.
I have read that the Session_OnStart only has access to the Application, Session and Request objects. It does not explicitly say that it does not have access to the Response object. Also, I was even able to use Response.Write's in Global.asa to print out the values although it looked like it had also stopped the session after I did so. Cookies are definitely enabled on my machine. I have even tried setting the session cookie's expiration to be persistent for a few days to see if it was perhaps expiring before I was able to read it but this did not work either.
Is there something preventing cookies to be created in Global.asa in the Session_OnStart sub? Is the Response object not available??? Please let me know if anyone else has had this problem or solution.
Basically 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.
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.
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
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:
Does 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?
Is it possible for a user to enable permanent cookies but disable session cookies.....this seems like a contradition yet this is what I appear to be reading in online articles?
I m creating a cookies in my application and it work properly but i can't see the cookies where it will sotred i checked the cookies folder but i didn't find that I want to create a cookies file as the other web site create and store where other cookies will stored in Cookies folder or Temprory Internet files folder eg:1. arvind@google.co[1].txt this stored in cookies folder 2. arvind@msn[2].txt ....
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.
I've added a cookie and I am able to read it when using the same window but if I load up a new window and try to access it, it can't find the cookie. Any one know why?
I am creating a user tracking app that tracks a user one of two ways...
1)First Method is cookies 2)Second Method MS SQL DB
I first check if the users browser accepts cookies if not I go to the db. If the user accepts cookies then I check for a specific crumb if it does not have the value I am looking for I kill it and rewrite it. This is working fine (im in the middle of testing it). The problem is I decieded to test the script with NN7 and not turn cookies off but block cookies from my site and all fell apart. The condition that I have set (detect if cookies are enabled) does not stop the script from trying to set a Session Variable because the browser accepts cookies and to keep a long story short it goes into an infinite loop because the script is looking for a Session value and Its not being stopped becaues the script thinks its alright to write cookies! Is there a way to detect if a user has your sites cookies blocked? This is important because Server.CreateObject("MSWC.BrowserType") will return .Cookies = True and you will not know that your script is not executing properly because a user has your sites cookies blocked but excepts them elsewhere...
After a login we have a menu from where we have access to different operations such as add ,delete,update.. but if a user enters the appropriate URL he has access to these operations with out proper authorization.how do we solve this.
I've built a website which requires a user to log-in to access the site. I have already built a page that enters their details into a db (register.asp), and another page where the user enters their email address (the log-in ID) to actually log-in (login.asp).
How can I use a cookie to automatically log a user in??
More specifically, what are the commands to set a cookie (upon successful registration) and access it (upon re-logging in)?
Hey i've spent the last few hours trying to work this problem out about cookies.
When a user logs in to the site the login.asp page checks the database to see the personal page that the user re directs to e.g if bob brown logged in he would be redirected to bob.brown.asp. This is stored in a field in the database table along with the username and password.
i would like to put a cookie onto the users computer that remembers the url they were redirected to so when they press the main page button it would look for the cookie and see what url they are meant to be redirected to and take them there
I'm trying to load up a page through my asp page and get the cookie from that page so that I can use it later on when it needs to have it to access other parts of the site.
Basically the asp page is going to act like a browser and store the cookie from the other site, then send that cookie back when the asp page goes back to the other site again.
The problem is, I can only seem to access my own cookie. I didn't run into this problem when I was doing a similar thing inside my .cs scripts that were run by the server, as I suppose they were not coming from the actual domain that my page is running on (and thus, wasn't getting everything trampled by local cookies).
Is this possible, or should I just give up on it now?
im building a site for a few doctors surgeries. the user is able to see what appointments are available and then book that date/time. i have a table (in my db) of dates/times and a checkbox to say whether the time has been booked or not (and display only times that havnt been booked). i was going to have the user add the time to a "cart" and then check the "booked" checkbox in my db when theyve paid for that appointment. but if i have lots of people looking at the site at the same time, then they may be able to see times that are just about to be booked. i think a better way is to have the date/time stuffed into a cookie which expires after 5 minutes. so when a user adds a time to their "cart", it will say something like: "this time will expire in 5 minutes until you book it or re-add it to your cart". does that make sense? how can i do this with server-cide cookies (im using jscript)? can anyone think of a better way to do this?
I have the code below which I know it is wrong where the cookies come in. I am trying to write the values collected from a database into cookies. However I am having difficulty trying to figure out how to write rows of cookies with different values. This may be a little difficult to explain - see the following code:
Not strictly a full asp question but Im sure someone here will have the answer.I've read in several web sites that you can read and write to the same cookie with asp and javascript.Does anyone have any sample coding showing how to do this with the javascript along with the asp code or were these websites I saw it mentioned on bogus?