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: 1
0 użytkowników, 1 gości, 0 anonimowych








