JymdisMedlem sedan mars 20016 260 inlägg Varför tas inte dom rader bort som motsvarar customerID? det funkar om jag kör koden på en vanlig sida (dvs allt innanför sub Session_OnEnd och end sub)
<script language="vbscript" runat="server">
sub Application_OnStart
end sub
sub Application_OnEnd
end sub
sub Session_OnStart
Session.Timeout = 1
response.redirect "default.asp"
end sub
sub Session_OnEnd
MM_tshirt_STRING = "liteconnectionsaker"
if(session("customerID") <> "") then
Command1__bla = session("customerID")
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_tshirt_STRING
Command1.CommandText = "DELETE FROM dbo.cart WHERE customerID = " + Replace(Command1__bla, "'", "''") + ""
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
else
response.redirect "fel.asp"
end if
end sub
</script>
h0lgerMedlem sedan nov. 2002105 inlägg Är du säker på att session_OnEnd triggas? Det är inte alltid säkert att den gör det.
Fungerar det verkligen med att använda +-tecken vid konkateneringen istället för &-tecken
@ndersMedlem sedan juni 200032 969 inlägg Det fungerar ibland att använda + istället för & för att konkatenera strängar. Man skall dock inte göra det. Använd & istället.
Annars: du kan inte köra response.redirect i global.asa. Ta bort hela if then-else-end if, och behåll bara koden som var inne i if-blocket.
Mvh
JymdisMedlem sedan mars 20016 260 inlägg response.redirect fungerar hur bra som helst - den delen av koden fungerar....
om jag tar bort hela if then else så blir där fel om ett customer id inte är angivet...
@ndersMedlem sedan juni 200032 969 inlägg Jag vill minnas att det enda sessionsvärdet som finns tillgängligt i global.asa är Session.SessionID, alltså inga ingående variabelvärden. Du får nog spara SessionID också och jämföra mot det i session_onend
Jag har i alla fall svårt att förstå att response.redirect skulle fungera i session_onend, men säger du att det gör det så...
PatrikBMedlem sedan mars 20002 836 inlägg @nders, du har helt rätt.
Det enda värde du kan använda dig av från Session-objektet i Session_OnEnd är Session.SessionID.
cya,
PatrikB
JymdisMedlem sedan mars 20016 260 inlägg aha - onend - sorry det var gammal kod som inte skulle vara med.
angående det som var tillgängligt så hade jag också ett gammalt minne men jag förtryckte det för det gör mitt arbete så himla mycket svårare... men ok, då får jag lösa det på det sättet då..
tack för hjälpen.
JymdisMedlem sedan mars 20016 260 inlägg if(session.sessionID <> "") then
Command1__tempvar = session.sessionID
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_tshirt_STRING
Command1.CommandText = "DELETE FROM dbo.cart WHERE sessionID = " + Replace(Command1__tempvar, "'", "''") + ""
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
end if
Funkar ändå inte..
@ndersMedlem sedan juni 200032 969 inlägg På vilket sätt fungerar det inte? Körs inte Session_onEnd?
Den nya koden fungerar om du kör den löst på en asp-sida?
JymdisMedlem sedan mars 20016 260 inlägg jo det funkar på en vanlig sida..
session_onend borde ju köras eftersom alla session variblar tas bort och ett nytt sessionid delas ut...
@ndersMedlem sedan juni 200032 969 inlägg Bara för att en session tar slut behöver det inte betyda att session_onEnd i global.asa körs. Många har problem med att den aldrig körs, exempelvis har jag aldrig fått det att fungera. Visserligen har jag inte försökt speciellt mycket, men...
Session_OnEnd i global.asa har inget att göra med att släppa gamla sessionsid, och framför allt inte med att tilldela nya.
Lägg någon kod som garanterat ska köras, exempelvis loggning till en textfil eller så, för att se om session_onend verkligen körs.
mvh
JymdisMedlem sedan mars 20016 260 inlägg den körs inte :(
bläää.. hur fixar man d? =)
@ndersMedlem sedan juni 200032 969 inlägg Jag gjorde en liten sökning på google (det är inte bara du som har problem, se:sökresultaten), och hittade ett dokument, som i vanlig ordning är svårt att förstå, men av innehållet i artikeln framgår att i alla fall jag hade provat att ge IWAM_xxx tillräckliga rättigheter på databasmappar / mapp som skall skrivas fil till.
JymdisMedlem sedan mars 20016 260 inlägg jag ångrar mig - den körs visst det =)
JymdisMedlem sedan mars 20016 260 inlägg angående det du skriver anders så har jag lite svårt å förstå det för jag skriver till en sql databas å har full rättighet.. men visst jag kan ju prova :)
@ndersMedlem sedan juni 200032 969 inlägg Ok, har vi alltså inga problem längre? :D
red: har alltså IWAM_xxx samma rättighter till databasmappen som IUSR_xxx?
Fick du skriva till fil att fungera? I så fall, logga SQL-frågan till fil och se om den innehåller det den ska.
Mvh
JymdisMedlem sedan mars 20016 260 inlägg jodå.. :) problemet kvarstår.. ;)
ska förklara bättre..
sub Session_OnEnd()
'from här
Application.Lock
Application("visitors")=Application("visitors")-1
Application("sessionruns")=Application("sessionruns")+1
Application.UnLock
'till här fungerar det
MM_tshirt_STRING = "hemligt"
if(session.sessionID <> "") then
Command1__tempvar = session.sessionID
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_tshirt_STRING
Command1.CommandText = "DELETE FROM dbo.cart WHERE sessionID = " + Replace(Command1__tempvar, "'", "''") + ""
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
end if
end sub
@ndersMedlem sedan juni 200032 969 inlägg Prova att ta bort if-satsen runt. Session.SessionID HAR ett värde, du behöver inte kontrollera det.
mvh
JymdisMedlem sedan mars 20016 260 inlägg jag vet inte om jag är helt yr men jag har det som en trusted connection, alltså behöver jag väl inte ge några behörigheter?
red.
tack för du tar dig tid @nders =)
@ndersMedlem sedan juni 200032 969 inlägg ahmr, vad kör du för dbms? jag bara utgick ifrån att du körde Access. Det kanske jag inte skulle gjort... ;)
Spara SQL-frågan i en applicationvariabel, och skriv ut den någon annan stans, för att se om den fjunkar...
På ett ungefär, vad innehåller MM_tshirt_STRING?