- Joined
- Jan 17, 2009
- Messages
- 1,212
- Reaction score
- 976
Сега ще Ви покажа как да си направите прост и много функционален прояч за посещения на Вашият уеб сайт.
Какво прави той? Той показва колко онлайн потребители има в момента, колко уникални посещения, импресии и най-много потребители онлайн има за деня, за миналия ден и общо.
Системата се състои от 1 файл, който ще трябва да добавите във всички файлове, в които искате да се води статистика на посещенията, като ще ви покажа по какъв начин после ще ги изведете.
Нека започнем с създаването на таблиците в базата данни:
След това създайте файл visit.php и сложете това в него:
Готови сме. Сега този файл, чрез функцията include, трябва да бъде добавен във всички файлове, в които желаете да отчитате посещенията.
За да Ви показва статистиката на посещенията добавете това на мястото където искате са показва:
Системата работи с MySQL не с MSSQL.
Какво прави той? Той показва колко онлайн потребители има в момента, колко уникални посещения, импресии и най-много потребители онлайн има за деня, за миналия ден и общо.
Системата се състои от 1 файл, който ще трябва да добавите във всички файлове, в които искате да се води статистика на посещенията, като ще ви покажа по какъв начин после ще ги изведете.
Нека започнем с създаването на таблиците в базата данни:
Code:
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 "
);
След това създайте файл visit.php и сложете това в него:
Code:
<?php
// тук трябва да си добавите файла, който се свързва с базата данни ако слочайно той не се изисква никаде другаде където сте include visit.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, трябва да бъде добавен във всички файлове, в които желаете да отчитате посещенията.
За да Ви показва статистиката на посещенията добавете това на мястото където искате са показва:
Code:
<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>
Системата работи с MySQL не с MSSQL.
Last edited: