webForumDet fria alternativet

värden i session_onEnd

ASP

2 svar · 169 visningar · startad av peppar

Medlem sedan dec. 2001873 inlägg
Frågan#1

:) Har ett inloggningssystem som börjar ta form. Använder mig av sessions och cookies för att skapa en logg (en tabell i en databas) över användare som använder sig av systemet.
Jag använder två värden [.Cookies("usrId") & .Cookies("sessionId")] för att kunna hålla reda på vilken post som skall uppdatera i databasen om en användare loggar ut osv
Om en session 'tajmar ut' så skall global.asa (session_onEnd)uppdatera tabellen i databasen med klockslag osv i rätt post. global.asa öppnar databsen och kan kommunicera med den. där finns inget fel. Men. .Cookies("usrId") & .Cookies("sessionId") verkar ha tappat sina värden någonstans påvägen och min logg blir inte uppdaterad.
Ja har kollat att mina .cookies har värden när session är skapad. Vad kan vara fel... Så här ser session_onEnd ut:

		sSessionUt 								= Date + Time
		sSessionId								= Request.Cookies("sessionId")
		usrId									= Request.Cookies("usrId")
		
		Set ConnDb1 = Server.CreateObject( "Adodb.Connection" )
		ConnDb1.Provider = "Microsoft.Jet.OLEDB.4.0"
		ConnDb1.ConnectionString = application("strConn") '## ("strConn") är definerad i session_onStart
		ConnDb1.open 
		'Uppdatera databasen och lägg till datum & tid för utloggning.
		SQLeditIn = "UPDATE logg SET logSenastUt = '" &sSessionUt& "'  WHERE logSessionId = " &sSessionId&  " "
		'Response.Write(SQLeditin)
		ConnDb1.Execute(SQLeditin)
		ConnDB1.Close
		Set ConnDb1 = Nothing
		
		'## Rensa upp ibland cookisarna 
		Session.Contents.Remove("inme")
 		Session.Contents.Remove("session.id")	
		Response.Cookies("sessionId").Expires	= "2000-05-21"
		Response.Cookies("usrId").Expires 		= "2000-05-21"
		Response.cookies("id")("utgar")			= ""
		Response.Cookies("usrKlass").Expires	= "2000-05-21"
Medlem sedan nov. 20017 144 inlägg
#2

Du skriver att du kollat att dinna sessionsvärden finns när du skapat dem, men ligger de kvar på sidan du kör ovanstående kod på då?
Har du provat att skriva ut dem på den sidan för att kolla om de finns kvar då?

Medlem sedan dec. 2001873 inlägg
#3

Nej, dom finns inte kvar när dom når global.asa som dom ska.
Éftersom jag vill att en automatisk utloggning skall ske i session_onEnd skall jag då definiera mina värden i session_onStart för att det skall vara riktigt? Det borde väl räcka med att det skapas en unik session som man håller reda på?
Det som gör mig förbryllad är att detta fungerar men ej koden ovan.

		Set ConnDb1 = Server.CreateObject( "Adodb.Connection" )
		ConnDb1.Provider = "Microsoft.Jet.OLEDB.4.0"
		'MdbFilePath = application("strConn") 
		ConnDb1.ConnectionString = application("strConn")
		ConnDb1.open 
		SQL = "INSERT INTO test"
		SQL = SQL &"(test, tid)" 
		SQL = SQL & "VALUES( "&Date&" , "&Time&" )"
		ConnDb1.Execute(SQL)
262 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)