В нужном документе поместите следующий код на PHP:
Код: Выделить всё
<?php
//counter
$COUNT_FILE = "counter.txt";
$message="";
$ip = getenv("REMOTE_ADDR")."::".getenv("HTTP_X_FORWARDED_FOR");
$datum=date("d.m.Y", time()-3*3600);
$fp = fopen("$COUNT_FILE", "rb");
flock($fp,1);
$contents=fread ($fp, filesize ($COUNT_FILE));
fclose ($fp);
$content= explode("\n",$contents);
$counts= explode("|",$content[0]);
$counts[3]=chop($counts[3]);
if ($counts[3]=="") {$counts[3]="1";}
if (!in_array ($ip, $content)) { $content[] = $ip; $counts[1]++; }
$counts[2]++;
$counts[3]++;
// полночь. ;)
if ($counts[0]!=$datum) {
$message="total hits: ".$counts[3]."\ntoday hits: ".$counts[2]."\ntoday uniques: ".$counts[1];
$r11=$counts[1];
$r21=$counts[2];
$counts[0]=$datum; $counts[1]=1; $counts[2]=1;
}
echo ("<div align=\"center\"><span class=\"counter\">Всего посещений - ".$counts[3]." | Всего за день - ".$counts[2]." | Уникальных за день - ".$counts[1]."</span></div>");
$content[0]=$counts[0]."|".$counts[1]."|".$counts[2]."|".$counts[3];
$fd = fopen("$COUNT_FILE", "a");
$locked = flock($fd,2);
if ($locked) {
$fp = fopen("$COUNT_FILE", "wb");
if ($message=="") { fwrite($fp, implode("\n",$content)); }
else { fwrite($fp,$content[0]); }
fclose($fp);
}
fclose($fd);
//end counter
?>
Счетчик обнуляет посещения и уникальные ip-адреса за день каждую полночь.
Теперь бонус: как разместить подобный счетчик на форуме phpBB2 внизу каждой страницы. Не сложно.
Ищем файл includes/page_tail.php, в нем находим строки:
Код: Выделить всё
//
// Show the overall footer.
//
Далее в том же файле includes/page_tail.php находим строку
Код: Выделить всё
'ADMIN_LINK' => $admin_link)
Код: Выделить всё
'COUNTER3' => $counts[3],
'COUNTER2' => $counts[2],
'COUNTER1' => $counts[1],
Код: Выделить всё
2001, 2005 phpBB Group
Код: Выделить всё
<br />Всего посещений - {COUNTER3} | Всего за день - {COUNTER2} | Уникальных за день - {COUNTER1}