Quote:
Originally posted by Pingu
I just changed "$datecut = time()-$cookietimeout;" into "$datecut = time()-300;"
And that worked. It just means it shows who's online in the last 5 minutes...
Can it be that the $cookietimeout query doesn't return a number but plain text?
|
I made a mistake in the code and therefore it was getting a MySQL error back instead of the cookietimeout. The corrected code is below.
Quote:
Originally posted by Sarge
...and it listed 3 members online, but the thing is.... it'sa test board and I only have 2 members total!
|
I think I figured this out too - adding "DISTINCT" should fix it. See the corrected code below.
OK after a bit of scratching my head, I think I have this thing figured out.
Code:
<?
require("forum/admin/config.php");
$db=mysql_connect($servername,$dbusername,$dbpassword);
mysql_select_db($dbname);
$cookietimeout = mysql_query("SELECT value FROM setting WHERE varname = 'cookietimeout'");
$datecut = time()-$cookietimeout[value];
$loggedins=mysql_query("SELECT DISTINCT COUNT(userid) AS users FROM session WHERE lastactivity>$datecut AND userid>0",$db) or die ("oops");
while($loggedin = mysql_fetch_array($loggedins))
$membersonline=number_format($loggedin[users]);
$guestsloggedins=mysql_query("SELECT COUNT(userid) AS users FROM session WHERE lastactivity>$datecut AND userid=0",$db) or die ("oops");
while($guestsloggedin = mysql_fetch_array($guestsloggedins))
$guestsonline=number_format($guestsloggedin[users]);
$users=mysql_query("SELECT COUNT(userid) AS registeredusers FROM user",$db) or die ("double oops");
while($user = mysql_fetch_array($users))
$totalusers=number_format($user[registeredusers]);
echo "<font face=arial size=2>We have a total of $totalusers registered users. There are currently $membersonline members and $guestsonline guests online.</font>";
?>
Just remember to change the path to config.php, based on where you put this file. I think this should work now. *crosses fingers*