Tento článek doposud nikdo nehodnotil

Počítadlo online lidí na webu

Script na počítání online lidí na webu bez použití databáze.

Jak to vůbec funguje

Základem jsou 2 textové soubory. Do prvního se ukládá seznam ip adres, které jsou momentálně online a do druhého časy poslední aktivity.

Obslužný PHP script je rozdělen na dvě hlavní části. První má na starosti aktualizaci seznamu ip adres a smazání neaktivních lidí (těch, kteří již na webu nejsou), další pouze přečte soubor se seznamem ip adres, spočítá je a výsledek zobrazí.

Kvůli lepší přehlednosti jsem každou z částí umístil do zvláštního souboru
pocitadlo.php - aktualizace seznamu ip adres a
ukaz.php - zobrazení počtu lidí, co jsou online.

Soubor: pocitadlo.php
<?php
// ip adresa
$ip $_SERVER["REMOTE_ADDR"];

//soubory se seznamem ip adres a časů poslední aktivity
$soubor_ip "ip.txt";
$soubor_cas "cas.txt";

// doba po kterou bude uživatel online (15 minut)
$limit 60*15;

// uložíme soubory do proměnných
$data_ip file_get_contants($soubor_ip);
$data_cas file_get_contants($soubor_cas);

// vytvoříme pole, oddělovací znak je zalomení řádku (\n)
$pole_ip explode("\n",$data_ip);
$pole_cas explode("\n",$data_cas);

// výstupní proměnné
$vystup_ip="$ip\n";
$vystup_cas=time()."\n";



// zkontrolujeme online uživatele a zmažeme ty kteří nebyli aktivní déle než 15 minut
foreach($pole_cas as $index => $cas){
  if( (
$cas!="") && ($cas>(time()-$limit)) && ($pole_ip[$index]!="$ip") ){
    
$vystup_ip.=$pole_ip[$index]."\n";
    
$vystup_cas.="$cas\n";
  }
}

// zapíšeme výsledek do souborů

  
$fp_ip fopen($soubor_ip,"w");
  
fwrite($fp_ip,$vystup_ip);
  
fclose($fp_ip);
  
  
$fp_cas fopen($soubor_cas,"w");
  
fwrite($fp_cas,$vystup_cas);
  
fclose($fp_cas);
?>

Myslím, že k tomu neni moc co dodávat. Script si načte soubory do proměnných, vytvoří pole (každá ip je jeden objekt v poli) a aktualizuje poslední klik z mojí IP adresy. Poté následuje cyklus, který u všech ip adres zkontroluje čas poslední aktivity a pokud je starší než 15 minut, tak danou ip adresu vymaže.
Úplně nakonec se uloží aktualizovaný seznam ip adres a časů aktivit zpátky do souborů, ze kterých byl načten.

Další krok je zobrazení počtu online uživatelů. To obstará tento script.

Soubor: ukaz.php
<?php
$soubor 
"online/ip.txt";

// uložíme soubor do proměnné
$data file_get_contents($soubor);

// vytvoříme pole
$pole explode("\n",$data);

// spočítáme řádky v poli
$count count($pole)-1;

// zobrazíme výsledek
echo $count;
?>

Jak jste si jistě všimli, je od celkového počtu odečtena jednička. Je to z toho důvodu, že seznam ip adres vždy končí zalomením řádku, nikdy ne ip adresou. Díky tomu má pole vždy o 1 prvek víc než je ve skutečnosti ip adres.

Oživení počítadla

K tomu, aby počítadlo fungovalo je potřeba do všech stránek přidat tento kód:

<?php include("pocitadlo.php"); ?>

Zobrazení na stránce

Jako poslední je potřeba někde na webu zobrazit výsledek celého našeho snažení. Obstará to tento kód:

<?php include("ukaz.php"); ?>

Tím by bylo počítadlo hotové. Celý script si ještě můžete stáhnout zde

Statistiky
Autor  Autor: .:|IK|:.
Další články od tohoto autora >>>
  Přidáno: 2009-01-03 12:30:52   Přečteno: 1089x
Hodnocení  Hodnocení: 0/10
Hodnotit článek mohou pouze přihlášení uživatelé
  Celkem hodnotilo 0 lidí
Komentářů  Komentářů: 1039 Číst/napsat komentář

Číst všechny komentáře >>> Komentáře (posledních 10)
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      BKAcoZClkTfojj   2010-09-05 03:55:37

viagra :-))
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      XObvfysHquO   03.09.2010 12:16:00

buy viagra in usa %[[
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      rTOtCqLuStYoufIM   03.09.2010 12:00:53

viagra %-(
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      tDoyFOwfifkhJBUERB   03.09.2010 11:42:02

viagra golc
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      MIpZfqEZETGcmd   03.09.2010 11:07:02

GHSpKF <a href="http://snkigndhsmgl.com/">snkigndhsmgl</a>, hdujsglezzmg, [link=http://pvnoilrvtdmv.com/]pvnoilrvtdmv[/link], http://gmjanzucrbhr.com/
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      MaRWTPWlYwBxTPuutTb   03.09.2010 10:48:41

auto insurance rates jsnd slots =-DDD cheap home insurance =-O
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      ccVXxQErNPP   03.09.2010 06:17:49

cheap home insurance 402 nj car insurance ipxaa car insurance quotes =]
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      TlfoIYsUBgkebnG   03.09.2010 05:09:14

propecia 1717 valium 8P Prednisone rtpadt levitra 606
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      dMZEGtxg   03.09.2010 04:58:40

phentermine yvdd levitra %OO credible online cialis 4900 cialis for sale >:-[[[
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      GxZcUWsImRA   03.09.2010 04:18:26

levitra sygr Prednisone :))) compare cialis levitra viagra %-((( viagra 379688