He encontrado un código q supuestamente muestra los usuarios online, hace un log de accesos y un contador:
CREATE TABLE `useronline` (
`timestamp` int(15) NOT NULL default ´0´,
`username` varchar(40) NOT NULL default ´´,
`file` varchar(100) NOT NULL default ´´,
`ip` varchar(255) NOT NULL default ´´,
PRIMARY KEY (`timestamp`),
KEY `username` (`username`),
KEY `file` (`file`)
) TYPE=MyISAM;
//------online.php
<?php
// Configuration
$dbhost = "localhost";
$dbuser = "
user"; // MySQL Username
$dbpass = "
pass"; // MySQL Password
$dbname = "
dbname"; // Database Name
$timeoutseconds = 900;
$timestamp=time();
$timeout=$timestamp-$timeoutseconds;
$ip = substr($REMOTE_ADDR, 0, strrpos($REMOTE_ADDR,"."));
$today=date("n-j-y");
$now1=date("n/j/y ");
$hour=date("h");
$other=date(":i:s a");
$now=$now1.$hour.$other;
if ($uname)
{
$username=$uname;
}
else
{
$username="Guest";
}
//adds .1 to the end of a guests ip to make it easier for you to tell from their ip they are a guest
if ($username == Guest)
{
$add=".1";
$ip=$ip.$add;
}
// Connect to MySQL Database
@mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($dbname) or die("No db");
// makes the log for today
$visitor_content="$now -- $username -- $url -- IP Hidden ";
$extra1="logs/";
$extra2="-visitor_log.txt";
$file=$extra1.$today.$extra2;
// Add this user to database
$loopcap = 0;
while ($loopcap<3 && @mysql_query("insert into useronline values(´$timestamp´,´$username´,´$url´,´$ip´)"))
{ // in case of collision
$log = fopen ("$file", "a");
fwrite($log, $visitor_content);
$timestamp = $timestamp+$username{0}; $loopcap++;
}
// Delete users that have been online for more then "$timeoutseconds" seconds
@mysql_query("delete from useronline where timestamp<$timeout");
// Select users online
$result1 = @mysql_query("select distinct username from useronline WHERE username != ´Guest´");
$members = @mysql_num_rows($result1);
mysql_free_result($result1);
$result = @mysql_query("select distinct ip from useronline");
$user = @mysql_num_rows($result);
mysql_free_result($result);
@mysql_close();
$guests=$user-$members;
// Show all users online
$lines = file($file);
// Loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line) {
$hits++;
}
$maxload=300;
if ($user > $maxload)
{
echo "<script language=javascript> window.location=´
http://yoursite.com/busy.php´ </script>";
}
?>
Para ver los visitantes y los miembros por separado usar:
Guests: $guests
Members: $members
Total: $user
No sé muy bien q tento q hacer :(
La primera parte en una tabla y el resto es código para la web?