Код за брой online потребители

Styl3rbg

Registered
Чудно ми е как ще стане да се отчитат гостите, примерно в сайта ми има 2-ма гости и 1 регистриран, и да пише "В момента 3-ма преглеждат сайта"
 
Има много кодове за колко са онлине .
НАмерих един но ако има някой друг давайте го.

http://web-tourist.net/login/login/view.php?st=1775
 
Най-лесния пример, за който се сещам е:
PHP:
	$ip = $_SERVER["REMOTE_ADDR"];
	$username = $_SESSION['username'];
	if (!isset($username)) {
		$username = "$ip";
		$guest = 1;
	}
	$past = time()-300;
	mysql_query("DELETE FROM online WHERE time < '$past'");
	$result = mysql_query("SELECT time FROM `online` WHERE username='$username'");
	$ctime = time();
	if ($username!="") {
		$username = substr("$username", 0,25);
		if ($row = mysql_fetch_array($result)) {
			mysql_query("UPDATE online SET username='$username', time='$ctime', host_addr='$ip', guest='$guest' WHERE username='$username'");
		} else {
			mysql_query("INSERT INTO online (username, time, host_addr, guest) VALUES ('$username', '$ctime', '$ip', '$guest')");
		}
	}

Слагаш този код примерно в config.php (примерно!!) във файла, който е include във всички файлове най-отгоре!

След това си вадиш резултата, където искаш с този код:

PHP:
<?php
echo "Онлайн";
   $user_online_num = mysql_numrows(mysql_query("SELECT username FROM online WHERE  guest='1'"));
   echo "Анонимни: <font color=\"red\"><b>$user_online_num</b></font>
   <br />Регистрирани: ";
$sql = mysql_query("SELECT username, guest FROM online WHERE guest=0 AND username!='asd'");
$member_online_num = mysql_numrows($sql);
$who_online_now = "";
$i = 1;
	if ($member_online_num == 0 ){
		$who_online_now = "<font color=\"red\"><b>няма</b></font>";
	} else {
	$who_online_now = "<div class=\"interval\"> </div>";
		while ($online = mysql_fetch_array($sql)) {
		$username = $online['username'];
			if (isset($online["guest"]) and $online["guest"] == 0) {
				if ($i < 10) {
					$who_online_now .= "<b>0$i: <a href=\"user.php?id=$username\"><b>$username</b></a></b>\n";
				} else {
					$who_online_now .= "<b>$i: <a href=\"user.php?id=$username\"><b>$username</b></a></b>\n";
				}
				$i++;
			}
		}
	}
   echo "$who_online_now";
?>

sql.sql
Код:
CREATE TABLE IF NOT EXISTS `online` (
  `username` varchar(25) NOT NULL DEFAULT '',
  `time` varchar(14) NOT NULL DEFAULT '',
  `host_addr` varchar(48)  NOT NULL DEFAULT '',
  `guest` int(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`username`),
  KEY `time` (`time`),
  KEY `guest` (`guest`)
) ENGINE=MyISAM;
 
Благодаря и на двамата, ще прегледам кодовете и ще видим кой ми върши работа :)
 

Back
Горе