05. september 2006 - 00:44Der er
17 kommentarer og 1 løsning
Logaf hvis man ikke benytter logaf linket - hvordan?
Hej eksperter. Jeg har lavet et login system(I PHP + mySQL) som registrer om brugeren er online lige pt. men førhen SP2 udkom, brugte jeg bare et popup til at logge end af med <body unload="minLogUdFunc();">
Men nu er SP2 jo kommet (for lang tid siden) og den blokere jo popup'et automatisk.
Men samtdig synes jeg heller ikke man bare kan kicke alle der har været inaktiv i f.eks. 5 min, tænk nu hvis de er igang med at lave noget, f.eks. rette profil eller lign.
Jeg brugte engang følgende http://www.eksperten.dk/spm/654409 til at skrive til en db uden at reloade. Den kalder en anden side, uden at åbne den direkte. Om den vil nå at virke ved body unload, ved jeg ikke!
Synes godt om
Slettet bruger
05. september 2006 - 04:15#2
Jamen det skal jo ske i det samme du lukker browseren eller lign.
Lidt kort.. Men hvis du benytter sessions til at give adgang, f.eks.: <?php if($_SESSION['yes_sir'] != '') { echo "Du er online min ven!"; } else { echo "Log da på min ven!"; } ?>
Sessions forsvinder så snart du lukker vinduet, altså logger han af =)
Synes godt om
Slettet bruger
05. september 2006 - 13:09#6
Jamen det skal jo ske i det man lukker vinduet og det så skal man slettes fra databasen (online)
Du kunne jo lave et script i en frame der, hver 5. minut, skriver til DB. Hvis der så er gået mere end 5 minutter, betragtes vedkommende at være "ikke til stede" og efter 10 minutter "offline". Problemet er den forb...... kliklyd IE laver ved reload.
Jeg har selv, i sin tid, ledt en del efter løsninger, og dem jeg fandt gør noget lignende.
Synes godt om
Slettet bruger
06. september 2006 - 02:06#9
Den holder heller ikke: Der er 2 muligheder ud fra det du siger: At brugeren har en logOn loader, der tjekker hvert 5 min, om man har gjort noget, og hvis der går 10 bliver man smidt af. Men hvad hvis du lukker ned inde de 10? Og ting nu hvis brugeren er igang med at læse en artikel eller lign.?
2. at logge alle ud, der har været inaktive i 10 min, men igen det hvis de nu læser, skriver ect.
1. Er det ikke bare meningen du vil registrere hvem der online? Du skal da bare sørge for at deres login lever via session eller cookie. Det jeg henviser til er at der hvert 5. minut bliver skevet klokkeslet til db ud for brugeren. I din kontrol, hvad enten det er til at vise hvem der er på eller hvad, sammenligner du bare tiden nu med brugerns seneste registrerede tid
2. Logge ud? Forklar!
Synes godt om
Slettet bruger
06. september 2006 - 04:25#11
Jeg vil jo netop som du skriver registrer hvem der er online. Men så snart de lukker siden vil jeg have de bliver logget af jo -> i det tilfælde at de altså ikke bruger linket 'logaf'.
Jeg tror jeg skal se noget kode, for at forstå din metode. F.eks. ved et chat system eller lign. skal brugeren jo logges af med det samme, og ikke 5-10 efter.
For at kunne se hvem der er online på en liste, er du nødt til at reloade en side i en frame eller lignende! F.eks hvert minut. Hver gang dette sker, kalder den pågældene side din database og kigger efter det seneste tidspunkt folk har været på.
Du har sikkert i forvejen en registrering ud fra hver bruger af hvornår de loggede på. Du laver bare en ny kolonne i databasen med en ny tidsregistrering. Denne opdaterer du både når der logges ind og for hver 5. minut brugeren har browseren åbnet.
På siden med chat'en, hvor du har en frame der reloader hvert minut, sammenligner du alle brugeres seneste registrerede til med aktuel timestamp. Hvis forskellen er mere end 5 minutter, betragtes vedkommende som værende logget af.
Hvis man i din chat sidder og skriver en længere besked, og den der skal modtage den i mellemtiden er hoppet fra, får vekommende jo alligevel ikke beskeden. Eller hvad?
Ellers forklar lidt nærmere om hvordan chatten fungerer i dag.
Synes godt om
Slettet bruger
06. september 2006 - 13:38#13
Ja det er rigtig nok det du skriver. Hvis brugeren er logget af i mellem tiden ect. modtager brugeren det pr. post, altså internt post er idén.
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.