21. oktober 2001 - 17:42Der er
22 kommentarer og 2 løsninger
Registrer log-off...
Jeg er ved at lave en chat, og har brugerne i en Access database... Jeg skal helst have et felt i databasen der fx hedder online (som indikere om brugeren er på chatten). Så skal jeg også have et felt som indeholder den tid som brugeren har været på chatten.
Mit problem er ikke koden, men teorien bag...
For når en bruger logger på, ændres online i databasen til ja. Og hvis man logger af (ved at klikke på linket logaf) ændres online til nej.
Men hvad nu når brugeren bare lukker browser vinduet, så kan jeg jo ikke registrer i databasen at han er offline og ændre online til nej. Og jeg vil heller ikke kunne nå at tilføje den tid han/hun har været på...
Håber i har nogle forslag til hvad jeg kan gøre... Jeg skal ikke bruge kode (det kan jeg sagtens selv), men jeg skal bruge ideen til at få det til at virke..
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
Kan du ikke bare kombinere det med et lille javascript som popper et lille vindue op når siden lukkes og den lille popup kan så skrive til databasen at brugeren er lukket ud.
hvad med et af de der \"hvis brugeren lukker browseren\" kode som alle de porn sites bruger til reklamer hehe...så ku den åbne en lille side med et logoutscript som så lukker sig igen efter udførelse
yep - og så bare for en sikkerheds skyld åbne det uden for skærmen så brugeren ikke lægger mærke til at det popper op, og derfor ikke lukker det inden det har nået at skrive til databasen!
Så kan du indsætte det her: header: <script language=\"JavaScript\"> <!-- function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } //--> </script>
i body: onUnload=\"MM_openBrWindow(\'dimsside.asp\',\'\',\'width=10,height=10\')
også påden side afvikler du dine asp koder og indsætter dette i bodyen: onLoad=\"window.close();\"
Du kan bruge global.asa filen til at registrere hvornår en bruger lukker browservinduet eller timeouter.
<SCRIPT LANGUAGE=VBSCRIPT RUNAT=Server> Sub Session_OnEnd Fjern brugeren fra databasen her End Sub </SCRIPT>
Gem det i en fil, som du kalder global.asa og lægger i roden af dit website. Det andet er noget lort at begynde på, så er der ingen som i længden gider bruge din chat.
Jeg tror ikke sådan et javascript vil hjælpe, da hvis nu brugerens logger direkte af nettet... Så vil det side javascriptet viser jo ikke skrive til databasen... Fordi brugeren er offline...
Thecodeman> Jeg er meget interesseret... Da det der session.end, lyder meget godt... For der er uafhængigt af om brugeren er offline... Du må meget gerne skrive det kode her (da det vist ikke er lovligt at du sender det over email) !!
Jeg må vist bøje mig og give mri ret. Jeg har tænkt nærmere over det, og fundet ud af at det jeg villge øre ikke kunne lade sig gøre, derimod er det ekstremt nemt at lave det på MRIs måde! I global.asa laver du en session_OnStart og Session_OnEnd event, der ændre status i en database. Undskyld hvis jeg gav falske forhåbninger.
Når du nu har gang i global.asa, så kunne du jo egentligt ligeså godt lave det hele i global.asa med application og session events. Så kommer du helt udenom databasen - måske.
man kan jo også lave det sådan at man ved session_onstart gemmer ens navn i en applikationsvariabel, med navnene på alle dem der er online, og ved session_onend, sletter man navnet fra strengen igen!
sub Session_OnStart Application.lock Application(\"currentusers\") = Application(\"CurrenUsers\")&\" , \"&Session(\"username\") Application.unlock
så skal den bare slettes ved en lignende OnEnd event
Jeg kan ikke gøre det med Application variabler, da det er en (meget) avanceret chat jeg laver, med flere rum, og ting og sager... Men tak...
Jeg tror jeg vil bruge global.asa måden, men kan jeg i Session_Onend eventen bruge en session variable, som hedder session(\"user\")... Så jeg kan se hvem det er der logger af?
mri> Ved du om Session_OnEnd også køres hvis en session(bruger) lige pludselig ikke er på serveren mere, fx er sessionen logget af nettet uden at lukke browseren... Eller går der så lidt tid, og så får sessionen timeout ??
Yesyes. Det skal nok virke... Ellers får jeg den til det... Du deler points med thecodeman 85/15.. Tak for hjælpen.. Global.asa var det jeg skulle høre..
Synes godt om
Ny brugerNybegynder
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.