/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
[SEMI PRO] Vedr. brug af sessions :-)
Fra : Bee


Dato : 21-08-01 08:15

Hej

Jeg har udarbejdet en lille brugersystem, hvor brugerne ligger i en
brugerdatabase. Når en person logger ind ændre jeg et felt i databasen fra
at være 0 til at være 1 - på den måde kan jeg via en oversigtsside danne mig
et overblik over hvilke brugere der en "online".

- men - hvis brugeren ikke "logger" rigtigt ud - eksempelvis ved at lukke
browseren (X) istedet for at trykke på "Log ud" knappen - så bliver database
naturligvis ikke opdateret fra at være 1 til at være 0 - og brugeren
forbliver "online" på min oversigts side.

Jeg benytter mig af sessions, og spekulerer nu på om det er muligt via
sessions at holde øje med hvilke brugere der er online/offline.

mao. kan jeg f.eks. tildele et felt i databasen den sessionværdi som
brugeren får tildelt når han/hun logger ind, og så via oversigtsside, udføre
et tjek på serveren for at se hvilke sessions, der stadig er "aktive" - jeg
mener at have læst et sted, at sessions først slettes på serveren efter en
"rum" tid.

Med venlig hilsen
Bee




 
 
Kasper Damkjær (21-08-2001)
Kommentar
Fra : Kasper Damkjær


Dato : 21-08-01 08:44

"Bee" <bee@bee.dk> wrote in
news:3b820af9$0$374$edfadb0f@dspool01.news.tele.dk:

> Hej
>
> Jeg har udarbejdet en lille brugersystem, hvor brugerne ligger i en
> brugerdatabase. Når en person logger ind ændre jeg et felt i databasen
> fra at være 0 til at være 1 - på den måde kan jeg via en oversigtsside
> danne mig et overblik over hvilke brugere der en "online".
>
> - men - hvis brugeren ikke "logger" rigtigt ud - eksempelvis ved at
> lukke browseren (X) istedet for at trykke på "Log ud" knappen - så
> bliver database naturligvis ikke opdateret fra at være 1 til at være 0
> - og brugeren forbliver "online" på min oversigts side.
>

Jeg har samme problem på en af mine sider. Jeg er igang med en løsning, der
registrerer tidspunkter. Når en bruger logger på, sættes der et timestamp i
databasen, og dette opdateres hvergang brugeren loader en ny side (samtidig
med hans/hendes cookie opdateres).

Derefter har jeg en funktion, der checker brugerdatabasen og sletter brugere
fra onlinelisten, hvis der er gået mere end 1 time fra deres sidste
timestamp (aktivitet). Efter dette tidsrum er deres cookie ligeledes
udløbet, og der skal logges på igen.

> Jeg benytter mig af sessions, og spekulerer nu på om det er muligt via
> sessions at holde øje med hvilke brugere der er online/offline.
>
> mao. kan jeg f.eks. tildele et felt i databasen den sessionværdi som
> brugeren får tildelt når han/hun logger ind, og så via oversigtsside,
> udføre et tjek på serveren for at se hvilke sessions, der stadig er
> "aktive" - jeg mener at have læst et sted, at sessions først slettes på
> serveren efter en "rum" tid.

Se evt. news:I76g7.5764$3q.206130@news010.worldonline.dk eller
http://php.net/manual/en/ref.session.php

(Om bl.a. session.gc_maxlifetime)

Hvis du finder en mere elegant løsning end den jeg roder, med vil jeg gerne
høre om det :)

--
Kasper Damkjær
http://damkjaer.net

Bee (21-08-2001)
Kommentar
Fra : Bee


Dato : 21-08-01 09:14


"Kasper Damkjær" <kd42@hotmail.com> skrev i en meddelelse
news:Xns91046307C3F4Ckd42hotmailcom@194.19.194.7...
> "Bee" <bee@bee.dk> wrote in
> news:3b820af9$0$374$edfadb0f@dspool01.news.tele.dk:
>
> > Hej
> >
> > Jeg har udarbejdet en lille brugersystem, hvor brugerne ligger i en
> > brugerdatabase. Når en person logger ind ændre jeg et felt i databasen
> > fra at være 0 til at være 1 - på den måde kan jeg via en oversigtsside
> > danne mig et overblik over hvilke brugere der en "online".
> >
> > - men - hvis brugeren ikke "logger" rigtigt ud - eksempelvis ved at
> > lukke browseren (X) istedet for at trykke på "Log ud" knappen - så
> > bliver database naturligvis ikke opdateret fra at være 1 til at være 0
> > - og brugeren forbliver "online" på min oversigts side.
> >
>
> Jeg har samme problem på en af mine sider. Jeg er igang med en løsning,
der
> registrerer tidspunkter. Når en bruger logger på, sættes der et timestamp
i
> databasen, og dette opdateres hvergang brugeren loader en ny side
(samtidig
> med hans/hendes cookie opdateres).
>
> Derefter har jeg en funktion, der checker brugerdatabasen og sletter
brugere
> fra onlinelisten, hvis der er gået mere end 1 time fra deres sidste
> timestamp (aktivitet). Efter dette tidsrum er deres cookie ligeledes
> udløbet, og der skal logges på igen.

Det lyder som en ganske brugbar idé - jeg har observeret at sessions også
udløber, hvis ikke brugeren er aktiv i en halv times tid - hvorefter man
igen skal logge på.

>
> > Jeg benytter mig af sessions, og spekulerer nu på om det er muligt via
> > sessions at holde øje med hvilke brugere der er online/offline.
> >
> > mao. kan jeg f.eks. tildele et felt i databasen den sessionværdi som
> > brugeren får tildelt når han/hun logger ind, og så via oversigtsside,
> > udføre et tjek på serveren for at se hvilke sessions, der stadig er
> > "aktive" - jeg mener at have læst et sted, at sessions først slettes på
> > serveren efter en "rum" tid.
>
> Se evt. news:I76g7.5764$3q.206130@news010.worldonline.dk eller
> http://php.net/manual/en/ref.session.php

Det første link - refererer bare til et spørgsmål - derfra kommer jeg ikke
videre - og det andet link synes ikke rigtig at kunne besvare mit
spørgsmål - det siger kun noget om at man kan tidsbegrænse en session.

>
> (Om bl.a. session.gc_maxlifetime)
>
> Hvis du finder en mere elegant løsning end den jeg roder, med vil jeg
gerne
> høre om det :)

Hvis det lykkes, så "poster" jeg den her

> --
> Kasper Damkjær
> http://damkjaer.net




Kasper Damkjær (21-08-2001)
Kommentar
Fra : Kasper Damkjær


Dato : 21-08-01 09:29

"Bee" <bee@bee.dk> wrote in
news:3b8218c7$0$269$edfadb0f@dspool01.news.tele.dk:

[...]
> Det første link - refererer bare til et spørgsmål - derfra kommer jeg
> ikke videre - og det andet link synes ikke rigtig at kunne besvare mit
> spørgsmål - det siger kun noget om at man kan tidsbegrænse en session.
>

Spørgsmålet, jeg henviser til, omhandler udløb/sletning af sessions og i den
forbindelse blev session.gc_maxlifetime nævnt i besvarelserne. Dette mente
jeg kunne besvare dit (indirekte?) spørgsmål om hvornår sessions bliver
slettet på serveren.



--
Kasper Damkjær
http://damkjaer.net

Bee (21-08-2001)
Kommentar
Fra : Bee


Dato : 21-08-01 09:35


"Kasper Damkjær" <kd42@hotmail.com> skrev i en meddelelse
news:Xns91046ABDD24D7kd42hotmailcom@194.19.194.5...
> "Bee" <bee@bee.dk> wrote in
> news:3b8218c7$0$269$edfadb0f@dspool01.news.tele.dk:
>
> [...]
> > Det første link - refererer bare til et spørgsmål - derfra kommer jeg
> > ikke videre - og det andet link synes ikke rigtig at kunne besvare mit
> > spørgsmål - det siger kun noget om at man kan tidsbegrænse en session.
> >
>
> Spørgsmålet, jeg henviser til, omhandler udløb/sletning af sessions og i
den
> forbindelse blev session.gc_maxlifetime nævnt i besvarelserne. Dette mente
> jeg kunne besvare dit (indirekte?) spørgsmål om hvornår sessions bliver
> slettet på serveren.
>

Okey tak - det er rigtig nok

Jeg har siddet og læst lidt om
http://www.php.net/manual/en/configuration.php#ini.track-vars

Her kan jeg blandt andet hente følgende $HTTP_COOKIE_VARS, men det hjælper
egentlig heller ikke, for jeg kan se i mit "Temp" dir, at jeg har sessions
liggende der er mere end 10 dage gamle - så der bliver vist ikke ryddet
ordentligt op i den folder.

Så den funktion jeg er ude efter - er egentlig den som serveren benytter til
at afgøre om en given session er "gyldig" - helst uden af være styre af
session.gc_maxlifetime

Bee

>
> --
> Kasper Damkjær
> http://damkjaer.net



Michael Rasmussen (22-08-2001)
Kommentar
Fra : Michael Rasmussen


Dato : 22-08-01 00:30

In article <3b821dc7$0$339$edfadb0f@dspool01.news.tele.dk>, "Bee"
<bee@bee.dk> wrote:


> "Kasper Damkjær" <kd42@hotmail.com> skrev i en meddelelse
> news:Xns91046ABDD24D7kd42hotmailcom@194.19.194.5...
>> "Bee" <bee@bee.dk> wrote in
>> news:3b8218c7$0$269$edfadb0f@dspool01.news.tele.dk:
>>
>> [...]
>> > Det første link - refererer bare til et spørgsmål - derfra kommer jeg
>> > ikke videre - og det andet link synes ikke rigtig at kunne besvare
>> > mit spørgsmål - det siger kun noget om at man kan tidsbegrænse en
>> > session.
>> >
>>
>> Spørgsmålet, jeg henviser til, omhandler udløb/sletning af sessions og
>> i
> den
>> forbindelse blev session.gc_maxlifetime nævnt i besvarelserne. Dette
>> mente jeg kunne besvare dit (indirekte?) spørgsmål om hvornår sessions
>> bliver slettet på serveren.
>>
> Okey tak - det er rigtig nok
> Jeg har siddet og læst lidt om
> http://www.php.net/manual/en/configuration.php#ini.track-vars Her kan
> jeg blandt andet hente følgende $HTTP_COOKIE_VARS, men det hjælper
> egentlig heller ikke, for jeg kan se i mit "Temp" dir, at jeg har
> sessions liggende der er mere end 10 dage gamle - så der bliver vist
> ikke ryddet ordentligt op i den folder.
> Så den funktion jeg er ude efter - er egentlig den som serveren benytter
> til at afgøre om en given session er "gyldig" - helst uden af være styre
> af session.gc_maxlifetime
> Bee
>
>>
>> --
>> Kasper Damkjær
>> http://damkjaer.net
>
Jubii, jeg kan åbenbart poste igen - Undskyld Niels

Har i set på javascript?

Man kan i bodytaggen bede browseren om at afvikle en funktion, når
browseren lukkes eller brugeren klikker til en anden side. Funktionen
hedder onunload.

skrives på følgende måde:

<body onunload=godbye()>


--
Hilsen/Sincerely

Michael Rasmussen

Kasper Damkjær (22-08-2001)
Kommentar
Fra : Kasper Damkjær


Dato : 22-08-01 08:43

"Michael Rasmussen" <mir@datanom.net> wrote in
news:20010822.013018.110613202.1090@loke.datanom.net:

> Har i set på javascript?
>
> Man kan i bodytaggen bede browseren om at afvikle en funktion, når
> browseren lukkes eller brugeren klikker til en anden side. Funktionen
> hedder onunload.
>
> skrives på følgende måde:
>
> <body onunload=godbye()>

Det vil ihvertfald kræve en funktion, der tager hensyn til om man forlader
sitet eller ej. Retsinfo og Dating benytter en sådan funktion, men de
benytter også framesets, hvilket gør det nemmere.

Men man må kunne lave en goodbye() funktion i js, der evaluerer hvortil man
er på vej hen. Hvis man forlader sitet, åbnes et popup vindue med en PHP
logout-funktion, hvis man ikke forlader sitet, sker der intet.

XFUT: news:dk.edb.internet.webdesign.clientside

--
Kasper Damkjær
http://damkjaer.net

Bee (23-08-2001)
Kommentar
Fra : Bee


Dato : 23-08-01 14:01


"Kasper Damkjær" <kd42@hotmail.com> skrev i en meddelelse
news:Xns910562EBA3DBBkd42hotmailcom@194.19.194.7...
> "Michael Rasmussen" <mir@datanom.net> wrote in
> news:20010822.013018.110613202.1090@loke.datanom.net:
>
> > Har i set på javascript?
> >
> > Man kan i bodytaggen bede browseren om at afvikle en funktion, når
> > browseren lukkes eller brugeren klikker til en anden side. Funktionen
> > hedder onunload.
> >
> > skrives på følgende måde:
> >
> > <body onunload=godbye()>
>
> Det vil ihvertfald kræve en funktion, der tager hensyn til om man forlader
> sitet eller ej. Retsinfo og Dating benytter en sådan funktion, men de
> benytter også framesets, hvilket gør det nemmere.
>
> Men man må kunne lave en goodbye() funktion i js, der evaluerer hvortil
man
> er på vej hen. Hvis man forlader sitet, åbnes et popup vindue med en PHP
> logout-funktion, hvis man ikke forlader sitet, sker der intet.
>
> XFUT: news:dk.edb.internet.webdesign.clientside
>
> --
> Kasper Damkjær
> http://damkjaer.net

Hvis man lukker sin browser helt (ALT-F4) - så kan den vel næppe afvikle
javasciptet

Det behov jeg har er egentlig at de efterfølgende brugere, som kommer ind på
sitet - får en opdateret liste over online brugere - således at side udfører
et tjek på serveren for at se hvilke sessions der stadig er gyldige - måske
skal jeg alligevel benytte tidsbegrænsede sessions.

mvh
Bee





Kasper Damkjær (23-08-2001)
Kommentar
Fra : Kasper Damkjær


Dato : 23-08-01 19:55

[posted and mailed]

"Bee" <bee@bee.dk> wrote in
news:3b84ff25$0$263$edfadb0f@dspool01.news.tele.dk:

> Hvis man lukker sin browser helt (ALT-F4) - så kan den vel næppe
> afvikle javasciptet
>
> Det behov jeg har er egentlig at de efterfølgende brugere, som kommer
> ind på sitet - får en opdateret liste over online brugere - således at
> side udfører et tjek på serveren for at se hvilke sessions der stadig
> er gyldige - måske skal jeg alligevel benytte tidsbegrænsede sessions.
>

Jo, hvis browseren lukkes udføres javascriptfunktionen onUnload() mig
bekendt også, så du ad den vej også lave et popup vindue, der eksekverer en
logout php funktion.

cc: til bee pr. mail, da der i første omgang var rod i min XFUT

--
Kasper Damkjær
http://damkjaer.net

Jesper Nielsen (26-09-2001)
Kommentar
Fra : Jesper Nielsen


Dato : 26-09-01 01:55

> Hvis man lukker sin browser helt (ALT-F4) - så kan den vel næppe afvikle
> javasciptet

Jo. Selv hvis du via kommandoprompten skriver
kill iexplore.exe
bliver onUnload udført. Det kræver faktisk, at du udfører
kill -f iexplore.exe
eller at du slukker computeren, før onUnload funktionen ikke udføres. Så den
er rimelig sikker.

/jesper/



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408942
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste