global.asa

ASP

14 svar · 296 visningar · startad av Gein

Medlem sedan sep. 20005 700 inlägg
Trådstart#1

jag undrar ifall det är nåt speciellt man bör tänka på med global.asa filen..
jag försöker köra Session_OnStart samt OnEnd men har inte fått det att funka så bra. OnStart har jag däremot fått att funka en gång.. OnEnd har jag däremot aldrig fått att funka. så här ser min global.asa ut, just nu:
------------
<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Session_OnStart

Session.Timeout = 5

End Sub

Sub Session_OnEnd

Set fso = CreateObject("scripting.filesystemobject")
Set file = obj.CreateTextFile(Server.MapPath("test.txt"))
file.close

End Sub
</SCRIPT>
----------

Medlem sedan dec. 19998 577 inlägg
#2

Hur testade du repektive subbar?

Medlem sedan sep. 20005 700 inlägg
#3

jadu.. här testade jag ju att skapa en txt fil.. men det kanske var fel kod eller nåt jag skrev ..

egentligen så vill jag ju att när onEnd körs så ska den öppna en databas o registrera denne användare som 'offline'

Medlem sedan dec. 19992 085 inlägg
#4

Jag har försökt med samma sak.. jag har skrivit så här:

<OBJECT RUNAT=Server SCOPE=Session ID=MyInfo PROGID="MSWC.MyInfo">
<!--#INCLUDE FILE="peach/config.inc"-->
Sub Session_OnEnd

Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open ConString
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>

men jag får inte det att funka heller :(

//M@rtin

Medlem sedan dec. 19998 577 inlägg
#5

puzze, problemet i din kod är att du använder fel objekt för att skapa filen, testa såhär istället:

Set fso = CreateObject("scripting.filesystemobject")
Set file = fso.CreateTextFile(Server.MapPath("test.txt"))
file.close
Medlem sedan aug. 2000106 inlägg
#6

Har du testat ditt skript annat än under PWS? Jag har inte fått global.asa-filen att funka lokalt, även om den funkar på servern.

Lycka till. Meddela resultaten.

Medlem sedan sep. 20005 700 inlägg
#7

jag har fått den att funka nu, tror jag.. men är det så att man inte kan öppna databaser i global.asa?
för det verkar inte funka, däremot så funkar ju Session.abandon.

Nån som vet ett bra sett som man kan öppna o uppdatera en databas när någon avslutar sin Session.. ?

Medlem sedan dec. 19998 577 inlägg
#8

Du gör bara som vanligt... bara det att sidan kör vid förutbestämmda 'händelser'... Visa koden på din databasöppning, så skall vi kolla på den... :)

Medlem sedan sep. 20009 inlägg
#9

Ursäkta en dum fråga men vad har global.asa för funktion?

Medlem sedan dec. 19998 577 inlägg
#10

Filen global.asa anropas vid vissa händelser på servern... När t.ex en ny användare ansluter sig till din webbplats så anropar servern sub session_onend i filen. Där kan du lägga in kod som du vill skall köras vid detta tillfälle... sedan finns det en del andra subbar också...

Läs mer om global.asa här

Medlem sedan juni 200032 967 inlägg
#11

vide: är du säker på att du verkligen menar onend? jag skulle vilja säga onstart. eller är det jag som sovit taskigt?

Medlem sedan dec. 19998 577 inlägg
#12

Helt riktigt... :r Det var min katt som tog mitt sovskift inatt :e

Självklart skall det vara onstart...

Medlem sedan sep. 20005 700 inlägg
#13

så här står det t.ex:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Session_OnEnd

datum = Date()
Set onlinet = Server.CreateObject("ADODB.Connection")
onlinet.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("data/users.mdb"))
SQL = "UPDATE users Set online = '" & datum & "' Where ID = " & session("id") & ""
onlinet.execute(SQL)
onlinet.Close

End Sub
</SCRIPT>

om jag inte minns helt fel, så händer det ingenting när man t.ex stänger fönstret.. detta borde köras men det verkar inte som den gör det..

Medlem sedan mars 20002 836 inlägg
#14

Hello,

... och när tar sessionen slut???

Du har ställt timeouten till 5 minuter så det kommer ta fem minuter innan det körs

cya,
PatrikB

Medlem sedan sep. 20005 700 inlägg
#15

vadå 5 minuter innan den körs? jag fattar det som att det tar 5 minuter innan den stänger session vid inaktivt surfande.. asså om man inte gör något på 5 minuter.. men men, det är inte det som är viktigt.. det viktiga är varför min Session_OnEnd inte vill funka!? är det så att man inte kan tillkalla Session("id") i OnEnd subben.. och att man inte kan skriva till en databas i OnEnd..?

263 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)