|
Счетчик посещаемости сайта
Как-то для одного своего сайта я искал счётчик посещений - проблем не возникло с поиском, так как сервисов статистики в интернете полно. Проблема была в том, что каждый счётчик учитывал как-то по своему - я поставил сразу 5шт, что бы проверить результаты, самое странное, не у одной пары цифры не совпадали - ну, зачем мне такая статистика подумал я и решил сделать свой счётчик.
В принципе меня интересовало количество уникальных посетителей, посетителей с разных IP адресов.
Если вас подобный учёт (по ip) устраивает - поехали.
Для начала сделаем таблицу для базы:
CREATE TABLE `counter` (
`id` int(20) unsigned NOT NULL auto_increment,
`date` date NOT NULL,
`ip` varchar(16) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
(кто не в курсе - создайте файл counter.sql и запишите это туда, затем импортируйте в свою базу).
Создаём файл для счетчика, к примеру, counter.php и записываем в него код:
$ip=$_SERVER["REMOTE_ADDR"]; # Определяем IP посетителя
$zone = "" # Ваш часовой пояс
$date = gmdate("Y-m-d", time() + 3600*($zone+date("I"))); # Реальная дата - с учётом часового пояса.
$db = mysql_query("SELECT * FROM counter WHERE ip=$ip and date = $date"); # Связь с таблицей
if(mysql_numrows($db) > "0")
{
# Если значение больше 0 ничего не произойдет
}else{ # Если значение 0, произойдёт следующие:
mysql_query("INSERT INTO counter VALUES('','$date', '$ip')"); # Добавляем запись в таблицу
}
В принципе это всё - но можно в этот, же файле (скрипте) сделать сразу и вывод, пишем:
$cont = MYSQL_QUERY ("SELECT * FROM counter WHERE data = $date"); # Смотрим наличие записей
$numb = mysql_num_rows($cont); # Считаем кол-во записей
echo $numb; # Выводим результат
Теперь можно сохранить наш не сложный счётчик и присоединить его к сайту, лучше всего, что бы он был присоединён ко всем страницам, присоединяем его так:
Если в html <? Include "counter.php"; ?>
Если в php коде, то только инклюд include "counter.php";
Всё.
|