29. april 2004 - 21:29Der er
25 kommentarer og 1 løsning
online users script
Heysa!
Sidder med et problem, jeg er ved at lave en lille side. På den side skal man kunne se hvilke brugere der er online, og gerne hvor længe de har været det. Jeg har lavet et script, men synes ikke det fungerer optimalt. Så er der en der har et forslag til hvordan det kan fungere? Gerne med kode eksempler.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Kan du bruge denne side: http://www.udvikleren.dk/article.php?aid=148&techid=6 Jeg har selv brugt dette, og modificeret koden, så jeg på min side kan se hvilke brugere som er logget ind, og hvem som blot er "ukendte"...
jakobdo: Mht. det du siger i din første kommentar: Hvad så hvis brugeren logger ind, han lukker browseren, åbner browser, og logger ind igen. Så vil hans navn blive vist 2 gange som online.
$maxtime = time() -600; mysql_query("DELETE FROM users_online WHERE UNIX_TIMESTAMP(activ) < '$maxtime'") or die(mysql_error());
mysql_query("INSERT INTO users_online (username,activ,ip,url,user_agent) VALUES ('$online_user',NOW(), '{$_SERVER['REMOTE_ADDR']}','$onlineurl','{$_SERVER['HTTP_USER_AGENT']}')") or die(mysql_error());
Men den sletter ikke noget som helst. Det der er inkluderet på hver eneste side. Men hver gang brugeren skifter side, så er der en ny række i tabellen, med samme username! Og det holder jo ikke. Hvordan fixer man det ?
spm: 1) hvorfor sætte den session til $online_user? 2) brug session_is_registered("sesnavn"), da det ser du til at den ikke kan finde ud af om online er sat.....
så spørger den om sessionen online er sat, er den det, så updater den.
mysql_query("UPDATE du_users_online SET activ=NOW() url='$onlineurl'"); til mysql_query("UPDATE du_users_online SET activ=NOW() url='$onlineurl' WHERE username='".$_SESSION["username"]."'");
mysql_query("UPDATE du_users_online SET activ=NOW() url='$onlineurl' WHERE username='".$_SESSION["username"]."'"); til mysql_query("UPDATE du_users_online SET activ=NOW(), url='$onlineurl' WHERE username='".$_SESSION["username"]."'");
Skal nævne den ser således ud nu: mysql_query("UPDATE du_users_online WHERE username='".$_SESSION["username"]."' SET activ=NOW(), url='$onlineurl'") or die(mysql_error());
får
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE username='Human' SET activ=NOW() url='http://www.doodoo.d
mysql_query("UPDATE du_users_online WHERE username='".$_SESSION["username"]."' SET activ=NOW(), url='$onlineurl'") or die(mysql_error()); til mysql_query("UPDATE du_users_online SET activ=NOW(), url='$onlineurl' WHERE username='".$_SESSION["username"]."'") or die(mysql_error());
jaja, jeg hjalp også efter der kom noget kode på eller tror jeg sådan et indlæg skal ind under opgaver, men jeg ved ikke.... Synes bare der er mange trælse der bliver ved med at oprette indlæg igen og igen :-)
men nu er alle glade og jeg skal til at i seng, lyster ikke mere php/mysql i dag, men fortsætter lystigt i morgen....
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.