/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn 

Kodeord  


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
er brugere logget af?
Fra : Angband
Vist : 410 gange
220 point
Dato : 26-05-05 16:23

Hej

jeg kan ikke finde ud af hvordan man finder ud af om brugere er online/offline på min side.

Det jeg har kommet frem til er:

Når folk logger ind sætter men på deres bruger en online= 1 på databasen..

ellers sætter man sidste logind= now() på databasen...

problemet er når folk logger ud UDEN at trykke på logud knappen, altså lukker browseren eller skifter side oppe i adresse.

Nogen løsning med php... eller skal der måske javascript til?

/Angband

 
 
Kommentar
Fra : natmaden


Dato : 26-05-05 17:17

måske en opdaternig af klienten hvert 5.min.
Serversiden skal så også bare resette alle der er logget ind, og ikke er blevet opdateret de sidste 5. min.
måske det kan gøres bedre, men det var bare lige min første tanke.

Mvh. Jørgen

Kommentar
Fra : Angband


Dato : 26-05-05 17:49

hmm... men hvordan opdaterer man serversiden?

Kommentar
Fra : TeWeE


Dato : 26-05-05 19:27

Du laver sådan er i starten af dine sider der opdatere den fx. et timestamp ud fra deres IP, og der efter tjekker den om personerne har været inaktive i 5 minutter..

Du får bare hele koden her:
time(); = Antal sekunder siden den 1. Januar 1970 00:00:00 GMT (Unix Epoch)

<?php
//Mysql connect her
$ip = $_SEVER[REMOTE_ADDR]; //Henter brugerens IP
$timenow = time(); //Henter tiden ud lige nu
mysql_query("update online_users set last_seen='$timenow' where ip='$ip'"); //Opdatere ens eget timestamp i databasen ud fra deres IP, brug evt. deres brugernavn hvis du fx. har det i en SESSION.

$udlob = $timenow-300; // Udløbstid på 5 minutter (300 sekunder)
$query = "select * from online_users where last_seen > $udlob"; //Finder alle der ikke har været opdateret i mere end 300 sekunder
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
mysql_query("delete from online_users where id='$row[id]'"); //Sletter alle dem som blev fundet før
} //Lukker løkken
?>

Du må ikke hænge mig på script fejl, det er bare lige skrevet løst i hånden ;)

Håber det var lidt hjælp...

Kommentar
Fra : natmaden


Dato : 26-05-05 19:40

serversiden opdatere sådan set sig selv, hver gang der kommer nogen forbi,
og det gør der jo hvis klientens side opdatere feks når der er gået 5min.
udvidelsen kan ligge i din vel allerede eksisterende side (php på serveren)
en fuld løsning gives ikke, da der bliver nød til at komme nogen forbi, for at ligsom starte det hele.
prøv at kikke lidt rundt på http://webcafe.dk jeg husker ikke lige om det er der jeg har set et artikel om emnet.
jeg har ikke tid lige nu, men vender tilbage senere.

Kommentar
Fra : Angband


Dato : 26-05-05 21:38

$udlob = $timenow-300; // Udløbstid på 5 minutter (300 sekunder)
$query = "select * from online_users where last_seen > $udlob"; //Finder alle der ikke har været opdateret i mere end 300 sekunder
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
mysql_query("delete from online_users where id='$row[id]'"); //Sletter alle dem som blev fundet før
} //Lukker løkken

Men hvis dette ligger på klienten, hvad så når han lukker sin browser?

Det bliver nød til art ligge på serveren vil jeg mene...


det jeg kan finde med server. men jeg har ikke lov til det så vit jeg ved
http://www.webcafe.dk/artikler/diverse/cronjobs/


Accepteret svar
Fra : TeWeE

Modtaget 220 point
Dato : 27-05-05 16:18

Den næste der logger ind på sitet sætter ham som offline... ;)

Godkendelse af svar
Fra : Angband


Dato : 27-05-05 22:54

Tak for svaret TeWeE.
                        

Kommentar
Fra : TeWeE


Dato : 28-05-05 12:54

Det var så lidt :) Håber du kunne bruge det..

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 173355
Tips : 31646
Nyheder : 719565
Indlæg : 6381620
Brugere : 218245

Månedens bedste
Årets bedste
Sidste års bedste