Autor Zpráva
zimmi
Profil
Ahojte, prosimvas potreboval bych vedet, jak zjistit na svych strankach kolik lidi je na strankach on-line?
myslim tim, aby to vypadalo asi takhle: 2 lide online. Nechtel bych tam zadny pocitadlo jako je treba toplist, potreboval bych pouze to cislicko.
znate nejaky server, kde poskytuji tuhle sluzbu, popripade jak to udelat?
diky moc
Fred
Profil
Zkus to tady hledat, někde to tu několikrát je
zimmi
Profil
Tak jsem hledal jako 'online', ale nic souvisejiciho jsem nenasel:(
meca
Profil
<?php

// Zde napište čas v minutách
// během této doby se bude
// jedno navštívení vaší stránky
// počítat jako online přístup.
// Po jeho uplynutí budou staré
// záznamy smazány.
$timer = 2;
// Název souboru pro ukládání údajů
$filename = "log.txt";

if (!$datei) $datei = dirname(__FILE__)."/$filename";
$time = @time();
$ip = $REMOTE_ADDR;
$string = "$ip|$time\n";
$a = fopen("$filename", "a+");
fputs($a, $string);
fclose($a);

$timeout = time()-(60*$timer);

$all = "";
$i = 0;
$datei = file($filename);
for ($num = 0; $num < count($datei); $num++) {
$pieces = explode("|",$datei[$num]);

if ($pieces[1] > $timeout) {
$all .= $pieces[0];
$all .= ",";
}
$i++;
}

$all = substr($all,0,strlen($all)-1);
$arraypieces = explode(",",$all);
$useronline = count(array_flip(array_flip($arraypieces)));

// Vypíše počet online uživatelů
// VÝSTUP
echo $useronline;
// VÝSTUP

// Mazání prošlých záznamů
$dell = "";
for ($numm = 0; $numm < count($datei); $numm++) {
$tiles = explode("|",$datei[$numm]);
if ($tiles[1] > $timeout) {
$dell .= "$tiles[0]|$tiles[1]";
}
}

if (!$datei) $datei = dirname(__FILE__)."/$filename";
$time = @time();
$ip = $REMOTE_ADDR;
$string = "$dell";
$a = fopen("$filename", "w+");
fputs($a, $string);
fclose($a);
?>


... neím... někde sem to stáhnul, ale myslim, že to funguje ;)
Fred
Profil
Omoluvám se, sice jsem to sice našel, ale koukám že se to tam v podstatě nedořešilo http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=3&topic=23 56
zimmi
Profil
Njn, diky,ale uz jsem zridil ucet u blueboardu:))
Honza Hučín
Profil
Zkusím popsat myšlenku, jinak něco podobného se popisuje na Intervalu v jednom článku o PHP - dá se to tam najít.

Na serveru se zaznamenává, kdy byla z jaké IP (či kombinace IP+prohlížeč) poslední návštěva některé ze stránek. Pokud byla před N minutami (kde se to N volí odhadem, může to být 2 nebo 5 nebo cokoliv), předpokládá se, že uživatel pořád na webu ještě je (i když ve skutečnosti už být nemusí).

Takže jako počet lidí online se bere počet návštěv ne starších než N minut. Je to velmi hrubý odhad. Přesněji by to šlo zjistit jedině tehdy, kdyby se lidi přihlašovali a odhlašovali (nebo odcházeli přes jednu stránku). Ale ani to nezaručí přesné výsledky.
mipo
Profil
něco podobného se popisuje na Intervalu v jednom článku o PHP - dá se to tam najít
Ide o článok Počet online čtenářů v PHP bez použití databáze.
bojars
Profil
O podobnej téme je tu aj tento topic, je tam link na súbor počítadla v PHP. Myslím, že principiálne je urobený podľa toho, čo popísal Honza Hučín.

http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=1&topic=14 8
Kráťa
Profil
Já to mám od Blueboardu, pouze jsem si dal do stránky kousek kódu a je to bezva.
Toto téma je uzamčeno. Odpověď nelze zaslat.