Avatar billede lillebror Nybegynder
09. november 2004 - 11:29 Der er 10 kommentarer og
2 løsninger

Online users

Hejsa eksperter

Jeg skal i gang med at lave et script, der tjekker hvilke brugere der er online. Jeg har tidligere lavet sådan en script, men der har jeg været nødt til at gøre brug af en iframe der refresher, for at holde øje med hvilke users der ikke længere var online.

Nu vil jeg gerne lave en løsning, hvor jeg ikke behøver sådan en iframe.

Findes der en rigtig smart måde at lave sådan et system på?

Jeg benytter php5 og mysql4.
Avatar billede jakobdo Ekspert
09. november 2004 - 12:07 #1
Avatar billede lillebror Nybegynder
09. november 2004 - 12:33 #2
Løsningen er en mulighed, men jeg synes den minder meget om den jeg selv har lavet før.

Han nævner også problemstillingen omkring at en bruger forlader siden. Den store ulempe ved scriptet er at en bruger kan stå som online i x antal minutter, selvom brugeren ikke er på siden. Findes der ikke nogen smart måde at komme rundt om det på?

Jeg ved at nogle datingsider bruger en popup når en bruger forlader siden, men den løsning holder ikke pga. popupblockers
Avatar billede sbm Nybegynder
09. november 2004 - 13:09 #3
Jeg fandt en løsning, som let kunne tilpasses til dit behov. Men den forudsætter så at javascript er aktiveret.

<html>
<head>
<script>
var UserClicked=false;
document.onkeydown=spyclick;
document.onmousedown=spyclick;
function spyclick()
{
    UserClicked=true;
    setTimeout("UserClicked=false",2000);
}
function popup()
{
    if(!UserClicked)
    {
    alert('closing... Læg et http-kald til en logout side her istedet for denne alert');
    }
}
window.onbeforeunload=popup;
</script>
</head>
<body>
Bla bla bla...
</body>
</html>
Avatar billede sbm Nybegynder
09. november 2004 - 13:10 #4
Tag ikke fejl af popup() funktionen. Den laver ikke nogen popup, men det gjorde den oprindelige løsning som jeg fandt, som jeg så har tilpasset. :-)
Avatar billede jakobdo Ekspert
09. november 2004 - 13:10 #5
Hvad hvis bruger har deaktiveret javascript?
Hvorfor ikke bruge udvikleren?
De holder 110%
Avatar billede sbm Nybegynder
09. november 2004 - 13:21 #6
Han nævner specifikt at han ikke ønsker at en bruger står online flere minutter efter at brugeren har lukket sin browser. Det afhjælper ovenstående. Men den kræver som sagt at brugeren har javascript aktiveret. Det har langt de fleste.

Ingen af løsningerne dækker 100% lillebror's ønsker, men bruger man begge dele er man rimeligvis dækket ind. Løsningen du nævner fanger dem der ikke bruger javascript, men gør det desværre først flere minutter senere. Men bedre sent end aldrig. :-)
Avatar billede lillebror Nybegynder
09. november 2004 - 16:47 #7
Hvad er præcist funktionen spyclick laver?
Avatar billede sbm Nybegynder
09. november 2004 - 20:18 #8
Den sætter midlertidigt popup() ud af funktion, ved at sætte UserClick til true, og tilbage til false med en forsinkelse på 2 sekunder.

Dertil er der de to:
document.onkeydown=spyclick;
document.onmousedown=spyclick;

som reagerer på tastetryk og museklik indenfor browservinduet, så hvis du f.eks. trykker med musen på et link, vil du IKKE aktivere popup(). På den anden side vil du heller ikke gøre det, hvis brugeren lukker sin browser med ALT-F4, så det kan godt være at funktionen bør udbygges lidt.
Avatar billede lillebror Nybegynder
11. november 2004 - 10:33 #9
Okay, det må jeg lige få kigget på, jeg synes det er fair, hvis i to deler pointene, så hvis i lige vil smide et svar begge to.
Avatar billede jakobdo Ekspert
11. november 2004 - 10:58 #10
Jeg synes nu SBM har fortjent dem alle!
Avatar billede sbm Nybegynder
11. november 2004 - 11:56 #11
Jeg deler gerne. Jeg mangler ikke point, og jeg er ikke en rigtig "samler" :-)
Avatar billede jakobdo Ekspert
11. november 2004 - 13:26 #12
Så får du sgu et svar...
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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