webForumDet fria alternativet

global.asa on Session end?

ASP

20 svar · 312 visningar · startad av M@rtin

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

hur gör man om man vill att vissa saker ska hända när en session raderas på servern?
Alltså:
När man loggar in på min sida så sätts status o medlemsdatabasen till "online" och en session("anvandarnamn") lagrar användarnamnet. När man varit inaktiv i 20 min så försvinner Sessionen men jag vill då även ändra status i databasen till "offline" hur får man då tag i Session("anvandarnamn") i global.asa och måste man ha includerat global.asa på alla sidor för att det ska fungera?

------------------
//M@rtin || Peachy.nu\\

"Passa på o va glada nu för man vet aldrig när det blir roligt nästa gång."

Medlem sedan dec. 19996 721 inlägg
#2

Du kan plocka ut Session("anvandarnamn") i global.asa utan problem. Vad är problemet?

Sub Session_OnEnd
.....blablabla

conn.execute "UPDATE tabell set online=0 where username='" & session(anvandarnamn") & "'"

End Sub

Global.asa ska aldrig inkluderas, aldrig någonsin. Den ska bara ligga på sin plats i applikationsroten.

Medlem sedan dec. 19992 085 inlägg
#3

Nähä nej då var det väl inget problem då ;)
Fick massa felmeddelanden när jag inkluderade den... det var Skywalker (Bire) som lurade mig ;)

------------------
//M@rtin || Peachy.nu\\

"Passa på o va glada nu för man vet aldrig när det blir roligt nästa gång."

Medlem sedan dec. 19992 085 inlägg
#4

Nu har jag gjort typ som du sa men jag får det ändå inte att fungera :(

Så här ser min global.asa ut, vad är felet?

<OBJECT RUNAT=Server SCOPE=Session ID=MyInfo PROGID="MSWC.MyInfo">

Sub Session_OnEnd

Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\clients\peachy.nu\scripts\databaser\medlem.mdb"
SQL = "UPDATE medlem SET status = 'Offline' WHERE anvandarnamn = '" & Session("anvandarnamn") & "'"
rs.Open SQL, MinCon, 1, 2
Session("level")=0
Session("anvandarnamn")=""
Session("losenord")=""
Session("connected")=0
Session("visits")=0
Session("lastvisit")=""

End Sub
</OBJECT>

------------------
//M@rtin || Peachy.nu\\

"Passa på o va glada nu för man vet aldrig när det blir roligt nästa gång."

Medlem sedan juni 200032 967 inlägg
#5

varför använder du recordset öht :q

varför sätter du värden till sessioner i _onend?

sätt endast sessioner i _onstart.
vad ska du ha dem till efter _onend?

Sub Session_OnEnd

Set MinCon = Server.CreateObject("ADODB.Connection")
MinCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\clients\peachy.nu\scripts\databaser\medlem.mdb"
SQL = "UPDATE medlem SET status = 'Offline' WHERE anvandarnamn = '" & Session("anvandarnamn") & "'"
MinCon.execute (SQL)

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan dec. 19992 085 inlägg
#6

Jo jag vet att det kanske e onödigt.. tänkte för säkerhets skull bara om de inte skapades samtidigt eller nåt.. men de borde väl inte göra att det inte funkar eller?
Testar med ditt sätt nu iaf :)

------------------
//M@rtin || Peachy.nu\\

"Passa på o va glada nu för man vet aldrig när det blir roligt nästa gång."

Medlem sedan dec. 19992 085 inlägg
#7

Ush va trött jag e på detta nu. Nu har jag tagit bort alla nollställningar etc. men det funkar ändå inte.. Man kan väl inte behöva ha en on start oxå för att det ska funka? Jag kan inte ha lagt den i fel katalog på servern heller för jag har lagt den i både roten och den där själva sidan ligger... hjälp mig jag blir tokig :(

------------------
//M@rtin || Peachy.nu\\

"Passa på o va glada nu för man vet aldrig när det blir roligt nästa gång."

Medlem sedan juni 200032 967 inlägg
#8

kan du få global.asa att utföra något öht?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan dec. 19992 085 inlägg
#9

Vet inte.. har du nån enkel o felfri kod som jag skulle kunna testa med?

------------------
//M@rtin || Peachy.nu\\

"Passa på o va glada nu för man vet aldrig när det blir roligt nästa gång."

Medlem sedan juni 200032 967 inlägg
#10

du kan ju exempelvis sätta application("test") = "gröfs" i application_onstart, och sedan skriva ut värdet på valfri asp-sida.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan dec. 19992 085 inlägg
#11

ja jag ska testa det.. jag återkommer.. :)

------------------
//M@rtin || Peachy.nu\\

"Passa på o va glada nu för man vet aldrig när det blir roligt nästa gång."

Medlem sedan dec. 19992 085 inlägg
#12

Nej det verkar typ inte funka alls :(
Ska man ha den här raden överst i global.asa?
<OBJECT RUNAT=Server SCOPE=Session ID=MyInfo PROGID="MSWC.MyInfo">

------------------
//M@rtin || Peachy.nu\\

"Passa på o va glada nu för man vet aldrig när det blir roligt nästa gång."

Medlem sedan juni 200032 967 inlägg
#13

ligger sajten på ett hotell?
eller pratar vi om din lokala utvecklingsserver / maskin?

om hotell, är du säker på att du har möjlighet att använda global.asa? det är inte alltid man har det, ser du.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan dec. 19992 085 inlägg
#14

Hmm... jag kör på www.netintense.se o det gör Vide oxå så jag trodde det skulle funka men jag kan ju inte vara helt säker..

Har testat i PWS oxå men där vet jag inte riktigt hur man ska göra... vilken mapp det ska vara etc.

------------------
//M@rtin || Peachy.nu\\

"Passa på o va glada nu för man vet aldrig när det blir roligt nästa gång."

Medlem sedan dec. 19998 577 inlägg
#15

Kan bara konstatera att global.asa fungerar som det skall på netintense...

Se till att global.asa ligger i rooten på din webplats (din_domän.com)

------------------
It's now safe to turn your computor to the left.
Kom hem till mig...

[Redigerat av Vide den 08 jan 2001]

Medlem sedan dec. 19992 085 inlägg
#16

Ja det har jag gjort Vide men kan du visa exakt hur det står i din? Asså du kan ju ta bort det du inte vill visa o så men det e mest det här OBJECT jag e intresserad utav...

------------------
//M@rtin || Peachy.nu\\

"Passa på o va glada nu för man vet aldrig när det blir roligt nästa gång."

Medlem sedan dec. 19998 577 inlägg
#17

Med all viktig kod borttagen så ser det ut såhär:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
	Application("intActive_users") = Application("intActive_users") + 1

	Application("visitors") = Application("visitors")+1
End Sub

Sub Session_OnEnd

	Application("visitors") = Application("visitors")-1
	Application("intActive_users") = Application("intActive_users") - 1
	
End Sub

Sub Application_OnStart
	Application("visitors") = 0
	Application("intActive_users") = 0
	Application("DBstr") = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("/scripts/xxx.mdb") & ";"
End Sub

Sub Application_OnEnd

End Sub
</SCRIPT>

------------------
It's now safe to turn your computor to the left.
Kom hem till mig...

[Redigerat av Vide den 08 jan 2001]

Medlem sedan dec. 19992 085 inlägg
#18

Jippie! Nu funkar det... :) jag hade Object istället för Script :(
1K tack till er alla..

------------------
//M@rtin || Peachy.nu\\

"Passa på o va glada nu för man vet aldrig när det blir roligt nästa gång."

Medlem sedan dec. 19998 577 inlägg
#19

Vassego... :)

------------------
It's now safe to turn your computor to the left.
Kom hem till mig...

Medlem sedan dec. 1999653 inlägg
#20

såg att du fått de å funka nu, grattis... men jag tänkte på en grej... e de inte bättre att använda Id:t istället?

nu har du

Sub Session_OnEnd
Set MinCon = Server.CreateObject("ADODB.Connection")
MinCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\clients\peachy.nu\scripts\databaser\medlem.mdb"
SQL = "UPDATE medlem SET status = 'Offline' WHERE anvandarnamn = '" & Session("anvandarnamn") & "'"
MinCon.execute (SQL)

men jag föreslår istället:

Sub Session_OnEnd
Set MinCon = Server.CreateObject("ADODB.Connection")
MinCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\clients\peachy.nu\scripts\databaser\medlem.mdb"
SQL = "UPDATE medlem SET status = 'Offline' WHERE id = '" & Session("id") & "'"
MinCon.execute (SQL)

det som är ändrat är:
SQL = "UPDATE medlem SET status = 'Offline' WHERE id = '" & Session("id") & "'"

jag tror detta skulle bli säkrare än med medlemsnamnet utifall man har något olagligt tecken eller så med?

aja, bara ett förslag :e

MVH

------------------
nakoz
http://flykt.cjb.net/ :)

261 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)