Форум сетевых администраторов
Показаны 12 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- сколько людей он лайн (http://netadmin.ws/forum/showthread.php?threadid=8168)


Помещено MLSIL 16-03-2004 в 01:23:

сколько людей он лайн

сообственно знаю поверхностно что на asp можно написать некий код что бы узнавать сколько в реальном времени находется посетителей на моём сайте... но беда в том что поддержки asp у меня на хосте нет тагже нет c++ and perl выходет только на php можно что то смостерить... но не то что я незнаю как, а просто незнаю возможно ли ообьще... сам я php можно сказать незнаю, и если поможите, буду очень рад!


Помещено he][es 16-03-2004 в 09:39:

MLSIL посмотри на vingradе там эта тема обсуждалась. Обычным образом это сделать не реально, но там предложили хитрожопый вариантик...

__________________
Админ - вождь Апачей...


Помещено Orliha 16-03-2004 в 14:19:

можно небольшой аплетец на жаве написать который будет от клиента к сервачку (скриптец на пхп). На экран так же можно в прямом эфире выводить присутсвующих тем же апплетом, а можно писать присутствующих в базо и тем же пхп вынимать, но это уже немного не прямой эфир, при перезагрузке тока видно.

Плюсы: видно реально сколько людей а не "в течении 15-ти минут"
Минусы: это теория, на практике это надо написать )

__________________
RTFM (Уважаемые! Читайте документацию!)


Помещено MLSIL 16-03-2004 в 15:17:

хмм, ясно мужики... писать я несмогу
he][es , а что такое vingradе ?

кстатей, посмотрел на порталах, и заметел, что у них ведь тоже выводится сколько человек он лайн... хотя больше смахивает на то как подметил Orliha, тоесть за опредделённое количество минут... если вы такой скриптик можите достать, то дайте пожалуйста.
кстатей, нельзя ли потом будет место 15 минут зделать например 1 сек.? тогда будет типа режим он лайн хотя мне что нибуть из двух вареантов... главное что бы знал сколько народу находится на сайте...


Помещено Orliha 16-03-2004 в 15:27:

можно поставить одну секунду но тогда у тебя на сайте будет почти всегда один человек - ты. опять таки скриптик придется писать - вешаем человеку куку и по кукам смотрим.... или например заходит человек пишем время посещения в базо и айпишник, а на странице выводим сколько разных айпишников за последние 10 минут...

__________________
RTFM (Уважаемые! Читайте документацию!)


Помещено polo 16-03-2004 в 19:45:

На чем бы не писалось, принцип один, сесси/куки/хранение инфы, либо напрямую обращятся к логам апачи и парсить оттуда инфу, но это не разумно при большом логе.

__________________
Всегда есть решение.


Помещено MLSIL 16-03-2004 в 23:00:

хмм, теперь осталось только найти такой скриптик


Помещено he][es 18-03-2004 в 00:18:

А вы посмотрите на винграде (надеюсь polo не обидится за ссылку vingrad.ru поищите) там вариант интересный, только реальность его реализации для меня под вопросом, не силен я в таких познаниях...

__________________
Админ - вождь Апачей...


Помещено AntiMozg 21-03-2004 в 02:22:

MLSIL:
Дык вот оно скриптик то...

Смотри в аттач.

__________________
Folloving the Lenin's way!..


Помещено MLSIL 21-03-2004 в 06:50:

AntiMozg
я бы был бы очень рад если бы он ещё выполнял своё назначение он ведь как каунтер работает то...


Помещено mr_fox 21-03-2004 в 07:43:

вот лови, давно писал себе такой скрипт.

PHP:



<?
/*
** Online Short Stats v0.2
**
** coded by mr fox @ 2003.08.02-05
** email: mr_foxs@mail.ru
*/

/*** config : begin ***/

$online_time = 60*5; // in seconds (1min = 60sec, 60*2 = 120sec = 2min)
$online_file = 'online.txt'; // file to write who is now in online

/*** config : end ***/

/*** initialization : begin ***/

if(!file_exists($online_file)) {
    
fopen($online_file, w);
}

if(
$_SERVER['HTTP_X_FORWARDED_FOR']=='') {
    
$ip = ip2long($_SERVER['REMOTE_ADDR'])."\t\t";
} else {
    
$ip = ip2long($_SERVER['REMOTE_ADDR'])."\t".ip2long($_SERVER['HTTP_X_FORWARDED_FOR'])."\t";
}

$online_exists = false; // ip exist check
$timestamp = time();
$timeout = $timestamp - $online_time;

/*** initialization : end ***/

/*** online statistic : begin ***/

$fp = fopen($online_file, r);
$readed = fread($fp, filesize($online_file));
fclose($fp);
$array = explode("\n", $readed);
for(
$i=0; $i<count($array); $i++) {
    
$array[$i] = explode("\t", $array[$i]);
    
$online_count += 1;
    if(
$array[$i][0]."\t".$array[$i][1]."\t"==$ip) {
        
$readed = str_replace($array[$i][0]."\t".$array[$i][1]."\t".$array[$i][2]."\n", $ip.$timestamp."\n", $readed);
        
$online_exists = true;
    }
    if(
$array[$i][2]<$timeout && !$online_exists) {
        
$readed = str_replace($array[$i][0]."\t".$array[$i][1]."\t".$array[$i][2]."\n", '', $readed);
        
$online_count -= 1;
    }
}

$fp = fopen($online_file, w);
fwrite($fp, $readed);
fclose($fp);

if(!
$online_exists) {
    
$fp = fopen($online_file, a);
    
fwrite($fp, $ip.$timestamp."\n");
    
fclose($fp);
    
$online_count += 1;
} else {
    
$online_count -= 1;
}

/*** online statistic : end ***/

/*** total : start ***/

echo 'Сейчас в онлайне <b>'.$online_count.'</b>.';

/*** total : end ***/
?>


Помещено MLSIL 21-03-2004 в 18:22:

mr_fox, БАЛЬШОЕ те спасибо! пока не проверял на деле, но то что 1 чел в онлайне(тобеш я) уже заметел
ещё раз спасибо тебе!!!


Формат времени GMT. Текущее время 13:42.
Показаны 12 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.