Вот есть код, он выводит количество пользователей находятся на сайте
PHP код:
function online () {
$ip=getenv("HTTP_X_FORWARDED_FOR");
if (empty($ip) || $ip=='unknown') { $ip=getenv("REMOTE_ADDR"); }
# уд. старые сессии
mysql_query ("DELETE FROM online WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(time) > 300") or die ("Ошибка удаления данных из базы.");
# проверка на присутстаие или занесение нового пользователя
$select = mysql_query ("SELECT ip FROM online WHERE ip='$ip'") or die ("Ошибка выборки из базы.");
$tmp = mysql_fetch_row ($select);
if ($ip == $tmp[0]) {
mysql_query ("UPDATE online SET time=NOW() WHERE ip='$ip'") or die ("Ошибка обновления баз.");
} else {
mysql_query ("INSERT INTO online (ip,time) VALUES ('$ip',NOW())") or die ("Ошибка записи в базу.");
}
# считывание результатов
$select = mysql_query ("SELECT COUNT(*) FROM online") or die ("Ошибка выборки из базы.");
$tmp = mysql_fetch_row ($select);
$result = $tmp[0];
return $result;
}
echo "На сайте - ".online()." чел."
Я пытался как можно получше разобраться коде и сам сделать вывод еще и имена (логин) тех, кто есть на сайте, но как это сделать, пока не представляю. Код сразу скажу с интернета, но на нем уже около двух месяцев наверное сижу, нравится его работа, так как пишет ИП того кто сидит, но мне бы хотелось расширить этот ассортимент, и внести логин пользователя ну и вывести его.
Вот один из моих вариантов изменения:
PHP код:
# проверка на присутствие или занесение нового пользователя
$select = mysql_query ("SELECT ip,login FROM online WHERE ip='$ip'") or die ("Ошибка выборки из базы.");
$tmp = mysql_fetch_row ($select);
if ($ip == $tmp[0]) {
mysql_query ("UPDATE online SET time=NOW(), login='$id_user' WHERE ip='$ip'") or die ("Ошибка обновления баз.");
} else {
mysql_query ("INSERT INTO online (ip,time,login) VALUES ('$ip',NOW(),'$id_user')") or die ("Ошибка записи в базу.");
}
Но попытка не венчалась успехом. Можете что-то подсказать?