Bruger Online/Offline status??

Tags:    php

<< < 12 > >>
Kære udvikleren.

Jeg vil gerne lave en funktion hvor men kan se om brugeren er Online eller Offline, i henhold til om brugeren er logget ind eller ej.

Det skal være sådan at hvis man logger ind, så vil alle kunne se på ens profil at man er "Online", og hvis man ikke er logget ind vil alle kunne se at der står at man er "Offline".

Min hjemmeside er sat op sådan at hvis man ikke er logget ind kan man ikke se andet end den forside hvor man kan logge ind og/eller oprette en bruger.

Jeg håber at i kan hjælpe mig.

Mvh.
Daniele Buttigli



Registrer aktivitet for brugeren i databasen. Hver gang brugeren skifter side, er det en aktivet. Når andre kigger, så checkes der om hver enkelt bruger har været aktiv inden for de sidste fem minutter. Hvis ikke, må det antages at den enkelte brugeren ikke er online.
Logger brugeren selv ud af systemet, nulstilles aktivitets-tiden.



Ja, men jeg vil gerne bede om en kode for denne funktion. Jeg kører med SESSION, men jeg aner ikke hvordan jeg skal opsætte det.



Ja, men jeg vil gerne bede om en kode for denne funktion. Jeg kører med SESSION, men jeg aner ikke hvordan jeg skal opsætte det.


At spørge om færdigskrevet kode på et udviklerforum er en rigtig god måde at blive hadet af rigtig mange mennesker, og endda rigtig hurtigt! Der er en grund til vi normalt tager os betalt ;)


Men altså som der blev sagt tidligere ville det være en måde. En anden måde ville være at have noget AJAX kørende på klienten som pingede et script på serveren med brugerid (fx.)

Anyway det er nok en tand for meget fornemmer jeg.

Hvad teknologi har du lavet siden i, og hvordan er din database sat op (med hensyn til tabeller.)

Hvis du har en tabel med brugerne, så ville jeg tilføje et felt der med "lastactive" og så derfra inkludere en fil i toppen af hver side som opdaterede "lastactive" for den nuværende indloggede bruger hver gang vedkommende besøgte en af mine sider.

Så ville andre brugere (som der også blev sagt tidligere) kunne forbinde til et script der spørger om "hvornår bruger xxx sidst aktiv" og så ville bruger xxx's "lastactive" værdi blive hentet ud af databasen, og derfra sammenlignet med den nuværende tid. Hvis den er over 5-10 minutter siden, så vil der blive vist "offline" og ellers "online" ... Her kunne du jo fint udvide med at hvis brugeren er offline vises der "sidst set online: 3 timer siden" :)



Hej Henrik.

Ja undskyld hvordan jeg udtaler mig på i forummet med at jeg gerne vil have en kode, men det er fordi at jeg ikke er totalt god til alle mulige scripts. Har kendskab til noget PHP, HTML, CSS, Javascript(lidt), jQuery(lidt) og mySQL.

Men min side er opbygget med PHP, med ?side=profil osv, som så bliver omdannet til /profil/'brugernavn'.

Jeg ville godt kunne lave en tabel, og så skrive:
Fold kodeboks ind/udPHP kode 


Men som du sikkert kan se, så har jeg ikke så godt kendskab alligevel til det.

Men jeg ved ikke hvordan man gør sådan at det er på tid.



Indlæg senest redigeret d. 24.10.2010 21:03 af Bruger #16025
Hvis du nu sætter lastactive til hvad klokken er nu. Så kan du senere tage den og så sige
Fold kodeboks ind/udKode 


Og hvis du ikke ved hvordan man bruger tid, er der masser af guides / tutorials / dokumenter omkring det på nettet. PHP.net er en rigtig god resource, ellers kan du bare skrive dit problem i google og så skal du nok finde et svar, hvis sådan et findes.



Dvs. at koderne skal se således ud:

index.php;
Fold kodeboks ind/udPHP kode 


Ellers er jeg ikke helt med.



Noget lignende det, ja. Prøv dig lidt frem. Du får nok en eller to fejl ud fra det der. Min kode var bare lige for at demonstrere en ide



Nu har jeg prøvet med denne her kode:
Fold kodeboks ind/udPHP kode 


Men problemet er bare at den kun viser sin egen status, men når jeg går ind på andre profiler viser den den samme status.



Så skal du jo tage deres brugernavn, og ikke dit eget ($_SESSION['brugernavn'] er højst sandsynligt dit eget brugernavn).
lastactive er vist ikke en gyldig variabel



update_active.php
Fold kodeboks ind/udKode 


På alle sider din bruger kan komme til via links:
Fold kodeboks ind/udKode 


På siden der viser profil
Fold kodeboks ind/udKode 


Prikkerne (...) er fordi jeg antar du henter flere værdier ud af din bruger tabel, så dem må du selv skrive.

Jeg mener iøvrigt at der er en init option til max tiden en session findes. Ville nok være bedre at bruge den tid i stedet for en fiktiv tid.



Indlæg senest redigeret d. 25.10.2010 11:47 af Bruger #5620
<< < 12 > >>
t