Witam
Czy jest jakiś licznik, który by wyświetlał przy linku do danej strony ilość osób online (włącznie z zerem przy braku osób )
tak jak przy linkach do czatów np:
gry1- online 21
gry2- online 0
Ewentualnie jak zmodyfikować istniejące skrypty.
Mający wyłączanie IP (roboty wyszukiwarki) i odporny na odświeżanie.
Może być ewentualnie taki, który pokazuje czy ktoś jest online czy nie ma nikogo wogóle np:
gry1- użytkownicy online-tak
gry2- uż. online -brak
Dziękuje
krzysztof
[PHP] licznik online - ilość osób przy linku do strony
Rozpoczęty przez
krys76
, 03 07 2008 20:07
2 odpowiedzi w tym temacie
#1
Napisano 03 07 2008 - 20:07
#2
Napisano 07 07 2008 - 15:19
poszukaj kolego na http://hotscripts.com/
Ew. napisz swoj wlasny licznik w PHP z wykoystaniem petli for lub while.
Prosty skrypcik, napiszesz go w 30 minut.
Ew. napisz swoj wlasny licznik w PHP z wykoystaniem petli for lub while.
Prosty skrypcik, napiszesz go w 30 minut.
#3
Napisano 07 07 2008 - 23:21
<?php class onlineInfo { static $dir='.'; static $dataFile; private $maxLastSeenTime=240; private $userOnList=false; public function __construct() { self::$dataFile=self::$dir.'/temp/usersOnline.tmp'; if(!file_exists(self::$dataFile)) { $this->save(); } $this->userIp=$_SERVER['REMOTE_ADDR']; $this->load(); $this->checkVisitors(); $this->save(); } private function load() { $this->data=file(self::$dataFile); $count=count($this->data); if($count>0) { for($i=0;$i<$count;++$i) { $this->data[$i]=trim($this->data[$i]); $this->userInfo[$i]=explode("|", $this->data[$i]); if($this->userInfo[$i][0]==$this->userIp) { $this->userOnList=true; $this->lastAvtivityTime=$this->userInfo[$i][0]; } } } if(!$this->userOnList) { $this->userInfo[$count][0]=$this->userIp; $this->userInfo[$count][1]=time(); } } function checkVisitors() { $count=count($this->userInfo); $currentTime=time(); if($count>0) { for($i=0;$i<$count;++$i) { if($this->maxLastSeenTime<=($currentTime-$this->userInfo[$i][1])) { if($this->userInfo[$i][0]==$this->userIp) { $this->userInfo[$i][1]=time(); continue; } unset($this->userInfo[$i]); } else { if($this->userInfo[$i][0]==$this->userIp) { $this->userInfo[$i][1]=time(); } } } } } public function getVisitors() { return count($this->userInfo); } function save() { $string=''; $count=count($this->userInfo); $this->saveArray=array(); $this->userInfo=array_merge($this->saveArray, $this->userInfo); $lineEnd="\n"; if($count>0) { for($i=0;$i<$count;++$i) { if($i==$count-1) { $lineEnd=''; } if(is_array($this->userInfo[$i])) { $string.=implode("|", $this->userInfo[$i]).$lineEnd; } } } file_put_contents(self::$dataFile, $string); } } ?>I to bodajże powinno wyświetlić ci ten licznik:
<?php $oInfo = new onlineInfo(); print 'ilośc osób online: '.$oInfo->getVisitors(); ?>Ale głowy za to nie dam...
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych