Avatar billede Slettet bruger
03. januar 2004 - 12:22 Der er 8 kommentarer og
1 løsning

Session-Tid?

Jeg har et lille problem med en chat jeg laver til mit community.
Når man logger ind i communityet, sætter den session tiden til 60 minutter, men chatten som ligger i mappen /chat, skal tiden være en anden, som 5 minutter så jeg kan lave en online liste? Hvordan kan jeg gøre det?
Avatar billede Slettet bruger
03. januar 2004 - 13:17 #1
Session.Timeout = 5
Avatar billede Slettet bruger
03. januar 2004 - 13:47 #2
Har du læst sprøgsmålet?
Avatar billede Slettet bruger
03. januar 2004 - 13:59 #3
jeg kan ikke forstå spm... i communityet: sesseion("tid")=60.. og så skal den være 5 i chatten eller hvad???
Avatar billede KingMedia Novice
03. januar 2004 - 18:18 #4
Du kan ikke definere to forskellige timeouts..
enten skal du sætte timeout til 60, ellers til 5.

Det smarteste vil da være at lave en KeepAlive fil. for at holde session i live, og tjekke om bruger er online...  den kan du jo lave til dit community også, og så bare generelt nøjes med at sætte session.timeout til 5 :o)

/Mads
Avatar billede Slettet bruger
04. januar 2004 - 00:21 #5
Jeg har community, hvor de må stenre en time, og en onlineliste til chat, som skal være med kun online brugere..Derfor er det sådan, og hvordan laver jeg en KeepAlive fil?
Avatar billede Slettet bruger
04. januar 2004 - 00:30 #6
chatten skal vel opdatere hele tiden.. skal du så ikke gøre det med en database, hvor brugeren hele tiden updater sin egen "sidst online på chatten"-tid.. det at brugeren har en session, kan jo kun læses af et script, der er requestet af den pågældene bruger, og kan dermed ikke vises uden nogen form for database eller lign.. eller har jeg misforstået det igen??
Avatar billede KingMedia Novice
04. januar 2004 - 10:16 #7
Jeg har lavet en KeepAlive.asp fil til noget info system jeg har lavet.

Det fungerer på følgende måde.
Når en bruger logger ind bliver der smidt et "stamp" i en session (tid/dato)
den gemmes så som Session("stamp") og det samme med brugernavnet i session("UserName").

jeg har så en Iframe (der IKKE vises) på siden et sted.
------------
<iframe src="Inc/KeepAlive.asp?user=<%= Session("UserName") %>&stamp=<%= Session("lastLogin") %>" style="display:none"></iframe>
------------

Som jeg så sender de to sessions til..

Selve min KeepAlive.asp ser ud som følger:

KeepAlive.asp
----------------------------

<meta http-equiv="refresh" content="120">
<%
user = Request.QueryString("user")
stamp = Request.QueryString("stamp")

set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={mySQL}; " &_
"Server=" & StrServer & "; " &_
"Database=" & strDB & "; " &_
"Port=3306; " &_
"Stmt=; " &_
"uid=" & strDbUser & "; " &_
"pwd=" & strDbPass & ";"

set rs = conn.execute("SELECT * FROM " & strDb & ".users WHERE Uname = '" & user & "'")

If NOT rs.eof or rs.bof Then

    If rs("lastLogin") <> stamp Then
    Session.Abandon()
    Response.Write "<script>top.document.location.reload()</script>"
    Else
    Session("Login") = True
    Session("UserName") = user
    Session("lastLogin") = RS("lastLogin")
        If RS("IsAdmin") = "true" Then
            Session("IsAdmin") = True
        Else
            Session("IsAdmin") = False
        End If
    End If
Else
Response.Write "<script>top.document.location.reload()</script>"
End If

rs.close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
%>
---------------------

Der er dog en masse ekstra i ovenstående, men i bund og grund, tjekker den op på, om stamp er større eller mindre end det stamp der er gemt i min database.. hvis det er tilfældet, så lukker den samtlige sessions (da det så kunne være en der har prøvet at "snyde" sig in via URL.
ellers hvis den passer, så opdaterer den de nuværende sessions, så de sessions forbliver aktive.
der er så smidt ind som META tag i KeepAlive.asp, at den skal refreshe hvert andet minut ( 120 ) .

Måske er det en "slamkode-løsning", det ved jeg faktisk ikke, men den fungerer efter hensigten til hvad jeg bruger den til.

Hvis andre har noget smartere vil jeg meget gerne se.. og ikke mindst lære :o)

/Mads
Avatar billede Slettet bruger
07. januar 2004 - 17:27 #8
Hvor skal jeg sætte den kode hen inde?
Avatar billede Slettet bruger
13. januar 2004 - 17:01 #9
Lukker!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester