Сега ще ви покажа как да си направите брояч като този в grupata.info. Вижте го вляво, в меню "статистика".

Той показва колко онлайн потребители има в момента, колко уникални посещения, импресии и най-много потребители онлайн има за деня, за миналия ден и общо.

Системата се състои от 1 файл, който ще трябва да добавите във всички файлове, в които искате да се води статистика на посещенията, като ще ви покажа по какъв начин после ще ги изведете.




Така като за начало си създавате база данни, като трябва да добавите следните 2 полета:

CREATE TABLE `visits` (
`impresion_today` int(15) NOT NULL default '0',
`max_online_today` int(5) NOT NULL default '0',
`unique_yesterday` int(10) NOT NULL default '0',
`impresion_yesterday` int(15) NOT NULL default '0',
`max_online_yesterday` int(5) NOT NULL default '0',
`total_max_online` int(10) NOT NULL default '0',
`total_impresion` int(15) NOT NULL default '0',
`today_date` varchar(10) NOT NULL default ",
`date_unique` varchar(20) NOT NULL default ",
`max_unique` int(10) NOT NULL default '0',
`date_online` varchar(20) NOT NULL default "
);

CREATE TABLE `ips_visits` (
`ip` varchar(15) NOT NULL default ",
`timestamp` int(15) NOT NULL default '0',
`date` varchar(10) NOT NULL default "
);

След като сте направили това си създавате файл visits.php.

Сложете в него:

<?php
$time_online = 15; // колко време да показва дадено IP за онлайн (в минути)

$stats_exits = @mysql_result(mysql_query("SELECT COUNT(*) FROM `visits`"), 0);
if (!$stats_exits)
mysql_query("INSERT INTO `visits` (`today_date`) VALUES ('".date("d.m.Y")."')");

$count_ips_today = @mysql_result(mysql_query("SELECT COUNT(*) FROM `ips_visits` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' AND `date` = '".date("d.m.Y")."'"), 0);
if ($count_ips_today)
mysql_query("UPDATE `ips_visits` SET `timestamp` = '".(time() + ($time_online * 60))."' WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' AND `date` = '".date("d.m.Y")."' LIMIT 1");
else
mysql_query("INSERT INTO `ips_visits` (`ip`,`timestamp`,`date`) VALUES ('".$_SERVER['REMOTE_ADDR']."','".(time() + ($time_online * 60))."','".date("d.m.Y")."')");

$online_users = @mysql_result(mysql_query("SELECT COUNT(*) FROM `ips_visits` WHERE `date` = '".date("d.m.Y")."' AND `timestamp` > ".time()), 0);
$unique_users = @mysql_result(mysql_query("SELECT COUNT(*) FROM `ips_visits` WHERE `date` = '".date("d.m.Y")."'"), 0);
$unique_total = @mysql_result(mysql_query("SELECT COUNT(DISTINCT `ip`) FROM `ips_visits`"), 0);

$date_last = date("d.M.Y");
mysql_query("UPDATE `visits` SET `max_online_today` = '$online_users' WHERE `max_online_today` < '$online_users' LIMIT 1");
mysql_query("UPDATE `visits` SET `total_max_online` = '$online_users', `date_online` = '$date_last' WHERE `total_max_online` < '$online_users' LIMIT 1");
mysql_query("UPDATE `visits` SET `max_unique` = '$unique_users', `date_unique` = '$date_last' WHERE `max_unique` < '$unique_users' LIMIT 1");

mysql_query("UPDATE `visits` SET `impresion_today` = `impresion_today` + 1, `total_impresion` = `total_impresion` + 1 LIMIT 1");

$visits = mysql_fetch_object(mysql_query("SELECT * FROM `visits`"));
if (date("d.m.Y") != $visits -> today_date)
{
$new_timestamp = mktime(0,0,0,date("m"),(date("d")-1),date("Y"));
$unique_users_t = @mysql_result(mysql_query("SELECT COUNT(*) FROM `ips_visits` WHERE `date` = '".date("d.m.Y", $new_timestamp)."'"), 0);
mysql_query("UPDATE `visits` SET `impresion_today` = '0', `max_online_today` = '0', `unique_yesterday` = '$unique_users_t', `impresion_yesterday` = '".$visits -> impresion_today."', `max_online_yesterday` = '".$visits -> max_online_today."', `today_date` = '".date("d.m.Y")."' LIMIT 1");
}
?>

Готови сме. Сега този файл, чрез функцията include, трябва да бъде добавен във всички файлове, в които желаете да отчитате посещенията.

Ето пример с файл index.php например:

<html>

<head>

<meta http-equiv="Content-type" content="text/html; charset=windows-1251" />

<title>Demo</title>

</head>

<body>

<?php

include "visits.php";

?>

<p align="center"><b><u>Статистика за днес:</u></b></p>

<p align="center"><b>Онлайн:</b> <?=$online_users?></p>

<p align="center"><b>Уникални:</b> <?=$unique_users?><br /><b>Импресии:</b> <?=$visits -> impresion_today?><br /><b>Най-много онлайн:</b> <?=$visits -> max_online_today?></p>

<p align="center"><b><u>Статистика за вчера:</u></b></p>

<p align="center"><b>Уникални:</b> <?=$visits -> unique_yesterday?><br /><b>Импресии:</b> <?=$visits -> impresion_yesterday?><br /><b>Най-много онлайн:</b> <?=$visits -> max_online_yesterday?></p>

<p align="center"><b><u>Статистика от пускането на сайта:</u></b></p>

<p align="center"><b>Уникални:</b> <?=$unique_total?><br /><b>Най-много уникални:</b> <?=$visits -> max_unique?> на <?=$visits -> date_unique?><br /><b>Импресии:</b> <?=$visits -> total_impresion?><br /><b>Най-много онлайн:</b> <?=$visits -> total_max_online?> на <?=$visits -> date_online?></p>

</body>

</html>

Разбира се може да промените начина на показване на посещенията, по начин който вие желаете.

Това беше урокът. Надявам се да ви е бил полезен :)