Avatar billede TRoXa Novice
10. august 2003 - 13:26 Der er 25 kommentarer og
1 løsning

onunload logaf

Vidste ikke helt hvor jeg skullde smide spørgsmålet .. smed jeg det i javascript var der måske ikke nogen af dem der kan php .. så jeg satsede på denne kategori :)

Jeg har lavet en forholdsvis simpel chat .. som uhmm .. jeg har lavet med iframes .. dvs privat beskeder, brugere, og normal chat ..

Der er flere rum på denne side .. og hver gang man skifter side .. reloader siden med fx chat.php?rum=detnyerum

Nu har jeg det problem af folk i denne verden er blevet så uhyggelig dovne .. :( .. de gider da ikke trykke på Log af knappen .. de vil bare lukke vinduet .. det skal de så have lov til tænker jeg, og har prøvet uendelig mange ting, men kan ikke få det til at virke

f5 eller luk vindue = log af
men .. skifter man rum skifter siden .. = log af .. hehe ..

er der ikke nogen der har en god idé til hvordan jeg kan gøre, så det er okay at skifte side med onunload men ikke at trykke f5 eller lukke vinduet .. og at skifteside sker med fx det jeg har nu chat.php?rum=mitnyerum

Jeg skriver meget forvirrende, så hvis der er noget du/i vil have uddybet, så skal i være velkommen til at spørge.

Jeg gætter på at det ikke er så svært det her .. bare mig der ikke kan tænke.
Avatar billede roenving Novice
10. august 2003 - 13:30 #1
Hvad er dit publikum ?-)

Hvis du regner med at de fleste er IE-brugere kan du jo satse på onbeforeunload og så supplere det med en langsom aflogning (automatisk logud efter 10 min. inaktivitet ?-)
Avatar billede TRoXa Novice
10. august 2003 - 13:31 #2
Uhmm .. for lige at komme med noget mere info.. det jeg har prøvet er fx

Når man er logget ind blir man det med sessions/cookies og har lavet en sessionvariabel med navnet skiftetrum som blir "ja" når man skifter rum, og blir sat til "nej" når man har skiftet rum .. og så brugt denne onunload funktion

<body onunload="test2()">

function test2()
{
        <? if ($skiftetrum <> "ja") { ?>
        alert("Log af");
        <? } else { $skiftetrum = "nej"; } ?>
}

men .. så blir $skiftetrum så nej når man er gået ind i et rum .. når man så vil skifte rum igen blir man logget af fordi den netop er nej .. så prøvede jeg at sige .. at den skulle være ja .. men så er det jo klart. Så blir man aldrig logget af når man lukker vinduet fordi den netop står til ja
Avatar billede TRoXa Novice
10. august 2003 - 13:32 #3
Jeg er næsten ligeglad med alle andre end dem der bruger Internet Explorer :) så .. internet explorer satser jeg på.

jeg har aldrig før rodet med onunload og onbeforeunload .. så ved ikke hvordan jeg helt skal bruge dem
Avatar billede TRoXa Novice
10. august 2003 - 13:35 #4
men jeg tror ikke det med automatisk logud efter 10 min holder .. da det jo netop er en chat .. folk skal have lov til at gå væk fra chatten uden at blive logget af .. så .. der blir nødt til at være en eller anden tjek på om brugeren er på chatten eller ikke er ..

Det behøves ikke løses med onunload hvis der er nogen der har andre idéer ..

Folk der hopper af chatten skal bare logges ud så hurtigt som muligt, og helst med det samme. Det er helt mit problem
Avatar billede TRoXa Novice
10. august 2003 - 13:36 #5
har haft idéer som at lave et pingpong system, men tænkte, at det nok ville belaste serverne meget, hvis der nu fx var bare 100 brugere på chatten .. og ved så heller ikke helt hvordan man skulle kunne lave sådan et system
Avatar billede TRoXa Novice
10. august 2003 - 13:36 #6
undskyld at jeg skriver så meget .. har haft det her problem konstant i snart 2 uger, og er ved at være godt træt af det .. er nærmest blevet sindsyg af det hehe :)
Avatar billede cpfrande Nybegynder
10. august 2003 - 22:51 #7
Du kunne måske også bare lave sådan at den kun opdater dine iframes og ikke hele siden. Så vil du jo kunne lave en iframe mere, hvori, at hvis den bliver "unloaded" skal den logge af. Eller måske tjekke om brugeren er logget på ved at sætte sidste aktive tid.

Forklarede måske forvirrende.

- frande
Avatar billede jakobsynder Nybegynder
10. august 2003 - 22:51 #8
troxa, kan du ikke lave din onunload i din parent frame, og når du skifter rum, så udelukkende lade en frame skifte.
På den måde vil du kun logge dine brugere af, hvis de helt forlader chat siden, og ikke bare skifter rum.
Hvis du i forvejen gør dette, så er det jo egentlig bare at lave et frameset mere, med kun én frame i, og det er så chatten som den er nu.
Din onunload smider du så i din nye parent.
Avatar billede jakobsynder Nybegynder
10. august 2003 - 22:52 #9
cpfrande >> Det var satans! :P
Avatar billede TRoXa Novice
11. august 2003 - 00:12 #10
cpfrande og Jakobsynder >> Jeg har overvejet det med at lave det sådan som i snakker om med et ekstra frameset eller lign, men kom væk fra tanken igen, da det virkede uoverskueligt med alle de frames, men det er vist den eneste løsning. Da i kom med svar nogenlunde samtidig synes jeg at i begge skal have point.. så kom med nogle svar :)
Avatar billede jakobsynder Nybegynder
11. august 2003 - 00:19 #11
Svar :-)
Avatar billede jakobsynder Nybegynder
11. august 2003 - 00:38 #12
Hov, frande skulle da også have haft! ;-)

cpfrande >> Her: http://www.eksperten.dk/spm/385990
Avatar billede TRoXa Novice
11. august 2003 - 00:44 #13
jeg har ikke helt styr på hvordan man gør det med at dele op .. troede man kunne vælge accepter svar, og så vælge point :( hehe .. sorry, men tak fordi du ordnede det, så han også får point :)
Avatar billede jakobsynder Nybegynder
11. august 2003 - 01:00 #14
:-)
Avatar billede TRoXa Novice
11. august 2003 - 01:41 #15
uhmm .. glemte at spørge om noget .. :)

hvordan får jeg den til at køre logaf.php vha onunload ?

har lavet det sådan her, men den kører ikke filen

<script>
    function test3()
    {
        ans = confirm("Er du sikker på at du vil logge af chatten?")

        if(ans == true)
        {
            return(false);
            window.location="logaf.php";
        }
    }
</script>
<body onunload="test3()">
Avatar billede jakobsynder Nybegynder
11. august 2003 - 01:59 #16
Du er nok nødt til at åbne filen i en mini popup.
Avatar billede roenving Novice
11. august 2003 - 02:11 #17
return(false);
kommer jo før location !-)
Avatar billede TRoXa Novice
11. august 2003 - 02:18 #18
roenving >> den skal egentlig heller ikke stå der .. prøvede bare at se om den hjalp :)

jakobsynder >> har man så ikke et problem hvis en person kører popup killer, som mange gør efterhånden ? :-/
Avatar billede jakobsynder Nybegynder
11. august 2003 - 02:20 #19
Jo, men kan det der lade sig gøre? Hvordan kan du hente en ny side i vinduet hvis brugeren har lukket det?
Avatar billede TRoXa Novice
11. august 2003 - 02:22 #20
ja det er jo lige det .. det kan det ikke hehe for vinduet lukker, og så kommer confirm boksen bagefter .. så der er nok ikke andre løsninger end popup .. :(
Avatar billede jakobsynder Nybegynder
11. august 2003 - 02:33 #21
Ja, det er noget rod.
Man er faktisk nødt til at kode en applet med tilhørende server software, hvis man vil have det ordentligt.
Avatar billede jakobsynder Nybegynder
11. august 2003 - 02:36 #22
Du kan i øvrigt også risikere at popup'en ikke lige virker efter hensigten.
Det vil resultere i at brugeren bliver ved med at være logget ind.
Avatar billede TRoXa Novice
11. august 2003 - 03:06 #23
der blir kørt baggrundstjek der gør, at en bruger der ikke har været aktiv i 30 min blir logget af :)
Avatar billede cpfrande Nybegynder
11. august 2003 - 07:11 #24
Hej !

Som svar på videregående spørgsmål, samt konkludering af min tidligere kommentar.

Du siger, at det vil virke uoverskuelig med alle de frames.
Du kunne f.eks. navngive hvert frame med et navn. Kunne f.eks. være framets funktion(er) (f.eks. onlinetjek, chat, skriv osv.).

Dertil behøver du jo ikke lave et desideret frame til brugertjek (ligesom jeg tidligere foreslog). Ønskes det ikke, kan du jo bare lave en desideret log-af funktion på den side, som henter dine frames.

Nu har jeg selv en del erfaringer med chat-systemer og vil mene, at du burde lave et baggrundstjek. Så kunne du lave en frame, der automatisk opdatere hvert minut eller et andet tids-interval. Den vil så logge, hvornår brugeren sidst fik opdateret den side. Dertil skal du lave i samme fil, sådan at hver bruger tjekker om de andre brugere har været inaktive. Altså om de har været aktive indenfor det tids-interval du har valgt siden skal opdateres med. Har de ikke logger du dem automatisk ud.

Det vil både hjælpe på dit problem, HVIS nogen skulle kører med POPUP-killer, men det vil også hjælpe mod, hvis brugeren har slået JavaScript fra i sin browser.

Held og lykke med det ! ;)

- frande
Avatar billede TRoXa Novice
11. august 2003 - 07:59 #25
Tak cpfrande :) jeg valgte netop at give mine frames navne, så det var mere overskueligt :) men dog inden du skrev det, så jeg er glad for at jeg får idéer som en med en del erfaringer indenfor chatsystemer :)

Min chat virker nu, og jeg er vildt glad, da jeg har brugt alllttt for lang tid på at få det lavet.

Nu kan folk endelig blive tilfredse på min side www.troxa.dk :)

Endnu en gang tak :)
Avatar billede cpfrande Nybegynder
11. august 2003 - 15:37 #26
Det er jeg da glad for at hører!

Held og lykke med siden ;)

- frande
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