Avatar billede blueeye97 Nybegynder
09. august 2005 - 15:58 Der er 6 kommentarer og
1 løsning

online brugere

Jeg har fundet nedenstående script her på exp. Men det virker helt så vidt jeg kan se.

Der bliver ikke slettet fra databasen selvom en aktiv bruger logger sig af.

Er der en der kan se hvorfor ?


<?php
$connection = mysql_pconnect("host", "user", "pass");
mysql_select_db("database");
$ip = getenv(REMOTE_ADDR);
$tid = date("Y-m-d H:i:s", (time()-600));
mysql_query("DELETE FROM online WHERE tid < '$tid'");

$tjek = mysql_query("SELECT * FROM online where ip='$ip'");
if(mysql_num_rows($tjek) == 0) {
    mysql_query("INSERT INTO online (tid, ip) VALUES (now(),'$ip')");
} else {
    mysql_query("update online set tid=now() where ip='$ip'");
}
$online = mysql_query("SELECT * FROM online");
echo "Der er lige nu ".mysql_num_rows($online)."online";
mysql_close($connection);
?>
Avatar billede jakobdo Ekspert
09. august 2005 - 16:19 #1
Hvad mener du med logger af?
Det script der er sat op til at slette brugere som ikke har været online de sidste 10 minutter.
Hvis du har en knap som hedder log ud, kan du evt lave et script som sletter brugeren fra din DB.
Avatar billede blueeye97 Nybegynder
09. august 2005 - 16:33 #2
med "logge af" mener jeg at lukke browseren så man ikke længere er på den side hvor scriptet er. Selvom jeg lukker browseren ned, bliver brugeren ved med at være i databasen. Den sletter altså ikke som den skal efter 10 minutter..
Avatar billede blueeye97 Nybegynder
09. august 2005 - 16:35 #3
Det jeg har brug for, er at kunne se hvem der er online lige nu. Om det er 10 minutter eller 1 minut er for så vidt underordnet.
Avatar billede blueeye97 Nybegynder
09. august 2005 - 16:35 #4
Er der en smartere måde at gøre det på ? Altså at vise hvor mange der er online lige nu ?
Avatar billede blueeye97 Nybegynder
09. august 2005 - 17:39 #5
Jeg har fundet ud af det. Jeg havde lavet en skrivefejl da jeg "oversatte" scriptet til min egen Mysql. Jeg havde glemt at ændre "online" i nedenstående linie til mit eget databasenavn. Nu virker det som det skal :o)

mysql_query("DELETE FROM online WHERE tid < '$tid'");
Avatar billede blueeye97 Nybegynder
09. august 2005 - 17:39 #6
tabelnavn...
Avatar billede blueeye97 Nybegynder
09. august 2005 - 17:39 #7
lukker igen...
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