nu er jeg ikke php haj Men i asp har man jo en global.asa fil hvor man kan udføre kode når sessionen slutter Og det gør den jo når vinduet lukkes Måske noget tilsvarende findes i php?
Man kan skrive sin egen session-handler, og så lade den gøre noget bestemt når der udføres en garbagecollection of gamle sessions.
Men uden at fornærme walkie84, så tror jeg ikke det vil være en løsning han vil kaste sig ud i - (det er lidt omstændigt at debugge hvis skidtet ikke virker)
Det kan du sikkert. Du skal bare være opmærksom på at du ikke er sikret at det bliver kaldt (hvis folk har slået javascript fra, fx). Men prøv og stille spørgsmålet i javascript gruppen - det ved de mere om :)
Det kan du ikke! Meningen med at lukke et vindue er at alt lukkes..så javascript kan ikke fange den event Tænk hvis den kunne Så hver gang man lukkede et vindue popede et nyt op osv osv...ikke sjov tanke ;o)
ja det er sandt.. bare fordi jeg har lavet et community.. og hvis folk ikke logger ud selv, så står de som online selvom de lukker vinduet ned.. men så må jeg jo sætte noget tid på en session.. eller hvad er det nemmeste?
prøv søg i javascript kategorien...mener der er masser af spørgsmål omkring events når der lukkes. Og alle dem jeg har set siger det ikke er muligt. Det virker også logisk nok på mig
Men kan det virke til andet en end alert? Man kan jo fx ikke lave en <body onunload"return confirm('vil du lukke?');"> For vinduet er allerede lukket når man klikker cancel
Og som en skriver på linket skal du være opmærksom på at "boksen" dukker op når man klikker F5 Så hvis du vil bruge det til at sætte en bruger offline Ja så skal brugeren blot trykke F5 ..så er vedkommende offline :/
Som udgangspunkt antager jeg at javascript ikke virker, og sitet bør jo virke selvom brugeren ikke har javascript enablet. (Det er så også grunden til at jeg aldrig har sat mig ind i det - hvilket nok er en fejl).
I forhold til hvordan den håndterer onunload eventen...så synes jeg det er noget hø 1) som dennismp siger hvad med brugere som ikke har javascript aktiveret 2) Hvad når brugeren trykker F5 , ryger han ud, eller skifter hans status blot til offline selvom han er online 3) Kan man overhovedet køre en funktion som retter i databasen når den event kaldes..for da er vinduet lukket og funktionen væk
til 2) Han skal jo blot skifte side. Så med mindre man bruger frames, så skal man tage højde for det. Spørgsmålet er bare ikke om det er for besværligt iforhold til hvad man opnår.
jeg har også droppet den javascript funktion.. som du siger busschou, så kan den ikke rette i min db.. jeg må tilføje noget tidspunkt for login, også sætte på at brugeren er logget på x antal minutter derefter.. :/
man kan heller ikke chekke om en person er inaktiv på sitet vel?
Du kan gemme "sidst set" hver gang han henter en side. Så hvis han ikke har hentet een side i 30 mins (eller hvad man nu vælger), så antager man han er logget ud.
tilføj et last_seen felt til din bruger-tabel, den må gerne være null. I hver URL opdaterer du så dette felt til now().
Du kan så, lave et script, der kigger bruger-tabellen igennem og tjekker og last_seen er not-null og ældre end 30 minutter (eksempelvis). Hvis det er det, så reset de felter du nu har behov for, incl last_seen til null (så brugeren ikke bliver ersat flere gange)
Dette script skal jo så startes indimellem. Gerne reglmæssigt. Hvordan du kan gøre det afhænger meget af hvad du har af muligheder. Hvis du har mulighed for at bruge cronjobs, så gør det. Ellers placer dette script på fx. login-siden (så når folk forsøger at logge på, så ryddes der op først) - eller på en side der udføres reglmæssigt.
Du kan også gøre det på din forside, men afhængig af hvor mange hits du får der, så kan du måske også overveje at gøre det hver 10.ende gange. (brug random mellem 0-9 , hvis den er 0, så udfør funktionen, ellers lad hver).
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.