30. april 2006 - 18:02
Der er
9 kommentarer og 2 løsninger
Online brugere
er der en som har/kan lave et script der viser hvor mange der er online, og hvem der er online måden det skal virke på er at den gemmer id'et på brugerne der er online, og evt brugernavnet på min side gemmer jeg navn id osv i sessions
Annonceindlæg fra Pax8
30. april 2006 - 21:20
#1
Onlineuser.php <? mysql_connect("localhost", "brugernavn", "kodeord"); mysql_select_db("database"); function ShowUsers() { $time = explode(" ", microtime()); $usersec = (double)$time[1]; mysql_query("DELETE FROM online_users WHERE date < $usersec -100"); $countusers = mysql_fetch_array(mysql_query("SELECT count(*) as total FROM online_users")); print ('<table border="0" BGCOLOR="#000000" CELLSPACING="1">'); print ('<tr><td BGCOLOR="#FFFFFF" COLSPAN="4"><B><font color="#727272"><center>Users online: '.$countusers[total].'</center></font></B></td></tr>'); print ('<tr>'); print ('<td BGCOLOR="#FFFFFF"><B><center>Ip:</center></B></td>'); print ('<td BGCOLOR="#FFFFFF"><B><center>Host:</center></B></td>'); print ('<td BGCOLOR="#FFFFFF"><B><center>Browser:</center></B></td>'); print ('</tr>'); $result = mysql_query("SELECT * FROM online_users"); while ($row = mysql_fetch_array($result)) { print ('<tr>'); print ('<td bgcolor="#FFFFFF"><small>'.$row[ip].'</small></td>'); print ('<td bgcolor="#FFFFFF"><small>'.$row[host].'</small></td>'); print ('<td bgcolor="#FFFFFF"><small>'.$row[page].'</small></td>'); print ('</tr>'); } print ('</table>'); } showUsers(); ?> triguser.php ( Har bare lavet den som include funktion ) <? mysql_connect("localhost", "brugernavn", "kodeord"); mysql_select_db("database"); function InsertUser() { global $REMOTE_ADDR, $HTTP_USER_AGENT, $PHP_SELF; $ip = $REMOTE_ADDR; $host = gethostbyaddr($ip); $browser = $HTTP_USER_AGENT; $page = $PHP_SELF; $time = explode(" ", microtime()); $usersec = (double)$time[1]; mysql_query("DELETE FROM online_users WHERE ip like '$ip'"); mysql_query("INSERT INTO online_users (ip,host,date,browser,page) VALUES ('$ip','$host','$usersec','$browser','$page')"); } InsertUser(); ?> Håber det hjælper dig :-)
30. april 2006 - 21:22
#2
ups glemte lige at sige at triguser.php den skal i i toppen af alle dine filer <?php include ("triguser.php"); ?>
undskyld have glemt jeg havde oprettet dette spørgsmål doh :p prøver det lige når jeg kommer hjem engang på søndag men det ser lovende ud ;)
det virker jeg bruger det selv :D
Hmm hvordan skal mysql tabellen se ud?
heysan, jeg finder lige mysql. jeg ved godt jeg glemte den, min server har vært brækket ned..... CREATE TABLE `online_users` ( `id` int(11) NOT NULL auto_increment, `ip` varchar(255) collate latin1_general_ci NOT NULL default '', `host` varchar(255) collate latin1_general_ci NOT NULL default '', `date` int(11) NOT NULL default '0', `browser` varchar(255) collate latin1_general_ci NOT NULL default '', `page` varchar(255) collate latin1_general_ci NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=15242
<HTML> <HEAD> <TITLE>Untitled Document</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> <?PHP mysql_connect("localhost", "test", "test"); mysql_select_db("test"); /* Mysql Dump CREATE TABLE online_users ( id int(11) NOT NULL auto_increment, ip varchar(255) NOT NULL default '', host varchar(255) NOT NULL default '', date int(11) NOT NULL default '0', browser varchar(255) NOT NULL default '', page varchar(255) NOT NULL default '', PRIMARY KEY (id) ) TYPE=MyISAM; */ function ShowUsers() { $time = explode(" ", microtime()); $usersec = (double)$time[1]; mysql_query("DELETE FROM online_users WHERE date < $usersec -100"); $countusers = mysql_fetch_array(mysql_query("SELECT count(*) as total FROM online_users")); print ('<table border="0" BGCOLOR="#000000" CELLSPACING="2">'); print ('<tr><td BGCOLOR="#008000" COLSPAN="4"><B><font color="#ffffff">Users online: '.$countusers[total].'</font></B></td></tr>'); print ('<tr>'); print ('<td BGCOLOR="#FFFFFF"><B>Ip</B></td>'); print ('<td BGCOLOR="#FFFFFF"><B>Host</B></td>'); print ('<td BGCOLOR="#FFFFFF"><B>Browser</B></td>'); print ('<td BGCOLOR="#FFFFFF"><B>Side</B></td>'); print ('</tr>'); $result = mysql_query("SELECT * FROM online_users"); while ($row = mysql_fetch_array($result)) { print ('<tr>'); print ('<td bgcolor="#FFFFFF"><small>'.$row[ip].'</small></td>'); print ('<td bgcolor="#FFFFFF"><small>'.$row[host].'</small></td>'); print ('<td bgcolor="#FFFFFF"><small>'.$row[browser].'</small></td>'); print ('<td bgcolor="#FFFFFF"><small>'.$row[page].'</small></td>'); print ('</tr>'); } print ('</table>'); } /* dette skal indsættes på alle undersider */ function InsertUser() { global $REMOTE_ADDR, $HTTP_USER_AGENT, $PHP_SELF; $ip = $REMOTE_ADDR; $host = gethostbyaddr($ip); $browser = $HTTP_USER_AGENT; $page = $PHP_SELF; $time = explode(" ", microtime()); $usersec = (double)$time[1]; mysql_query("DELETE FROM online_users WHERE ip like '$ip'"); mysql_query("INSERT INTO online_users (ip,host,date,browser,page) VALUES ('$ip','$host','$usersec','$browser','$page')"); } InsertUser(); /* her til */ showUsers(); /* Udskriver koden */ print ("<hr>"); show_source(basename($PHP_SELF)); ?> </BODY> </HTML> CREATE TABLE online_users ( id int(11) NOT NULL auto_increment, ip varchar(255) NOT NULL default '', host varchar(255) NOT NULL default '', date int(11) NOT NULL default '0', browser varchar(255) NOT NULL default '', page varchar(255) NOT NULL default '', PRIMARY KEY (id) ) TYPE=MyISAM; -- INSTALLER -- Linie 25-77 = Dette placeres der hvor man gerne vil have udskrevet tabellen med hvem der er online Linie 56-68 = Dette indsættes på alle de sider, som man gerne vil holde øje med Linie 75-77 = Denne kode udskriver hele scriptet
Kanon det virker som det skal ;) og lidt bedre :) ligger du et svar
Vi tilbyder markedets bedste kurser inden for webudvikling