Оценка сайта и рассылки, подписка на рассылку, статьи по веб-дизайну, полезные скрипты PHP и javascript
Оптимизатор сайта о раскрутке сайта и непоисковой оптимизации

Панель опций Сделать стартовой страницей Панель опций подписаться на RSS-ленту RSS-лента                         
 
.::Реклама::.

www.liex.ru - автоматическое размещение статей с прямыми ссылками
.::Наша кнопка::.
Наша кнопка
Хотите помочь нашему сайту? Установите нашу кнопку на свой сайт.
Получить код
.::Полезная ссылка::.
Лучший редактируюмемый каталог ресурсов
Лучший редактируемый людьми каталог ресурсов Интернета
.::Рекомендуем::.
.::Статистика::.

Статьи

Библиотека веб-мастера - "море" информации по веб-дизайну, которая пополняется посетителями сайта.


Главная :: Библиотека веб-дизайнера :: Веб-программирование

Полная статистика посещений своими руками

Автор: Гречухин Александр,
Статьи по PHP

Сегодня, даже далеко не все платные хостинг-компании предоставляют полную статистику посещений вашего сайта - что уж говорить о бесплатных. Разумеется, можно воспользоваться бесплатными сервисами, типа HotLog (например, счетчики чуть левее текста), однако более качественные услуги стоят дорого. Можно создать свою статистику, практически без труда, для этого нужно написать всего пару строчек кода. Ну что ж, приступим...

Доступ к лог-файлам сайта есть не везде, а хочется все-таки просмотреть логи, проблема решаема - пишем скрипт для создания своих лог-файлов. На вооружение возьмем два метода - с использованием сессий - в логе остается лишь одна запись - и без - остается запись после каждого нового хита пользователя. Для хранения мы будем использовать обычные текстовые файлы.

Метод первый с использованием сессий:

<?php
session_start();
if(!session_is_registered('counted')){
$agent = $_SERVER['HTTP_USER_AGENT'];
$uri = $_SERVER['REQUEST_URI'];
$user = $_SERVER['PHP_AUTH_USER'];
$ip = $_SERVER['REMOTE_ADDR'];
$ref = $_SERVER['HTTP_REFERER'];
$dtime = date('r');

if($ref == ""){
$ref = "None";
}
if($user == ""){
$user = "None";
}

$entry_line = "$dtime - IP: $ip | Agent: $agent | URL: $uri | Referrer: $ref | Username: $user n";
$fp = fopen("logs.txt", "a");
fputs($fp, $entry_line);
fclose($fp);
session_register('counted');
}
?>

Теперь давайте пройдемся по отдельным частям кода:

session_start();

Здесь мы запускаем механизм сессий, эта строчка просто необходима, ведь в представленном примере мы будем вести учет пользователей, "не учтенных" сессией.

if(!session_is_registered('counted')){

Здесь мы проверяем существует ли сессия с именем 'counted', если нет, то выполняем идущий за этой строкой код.

$agent = $_SERVER['HTTP_USER_AGENT'];
$uri = $_SERVER['REQUEST_URI'];
$user = $_SERVER['PHP_AUTH_USER'];
$ip = $_SERVER['REMOTE_ADDR'];
$ref = $_SERVER['HTTP_REFERER'];
$dtime = date('r');

А вот уже в этом куске кода мы объявляем список переменных, которые в свою очередь обращаются к глобальным переменным, пожалуй, не стоит описывать работу всех их, лишь скажу о функциях оных.
$_SERVER['HTTP_USER_AGENT'] - расскажет нам в логе о том, каким браузером и ОС пользуется юзер.
$_SERVER['REQUEST_URI'] - поведает о том, с какой страницы была произведена запись, можно также составить статистику наиболее популярных для входа страниц.
$_SERVER['PHP_AUTH_USER'] - работает, только, если у вас на сайте есть регистрация и пользовательские аккуанты - запишется имя пользователя.
$_SERVER['REMOTE_ADDR'] - ну здесь по-моему все понятно - определяется ip пользователя
$_SERVER['HTTP_REFERER'] - очень удобная вещь - с помощью нее мы узнаем откуда пришел пользователь, и узнаем о сайтах, поместивших на нас ссылку.
date('r') - записывается время в стандартно формате.

if(!$ref){
$ref = "Нет";
}
if(!$user){
$user = "Нет";
}

Если человек пришел на ваш сайт, просто набрав в адрестой строке браузера ваш адрес и он не зарегистрирован, то в этом случае в логе будет записано "нет".

$entry_line = "$dtime - IP: $ip | Agent: $agent | URL: $uri | Referrer: $ref | Username: $user n";
$fp = fopen("logs.txt", "a");
fputs($fp, $entry_line);
fclose($fp);
session_register('counted');

В последнем куске кода - мы записываем соответствующую информацию в файл logs.txt. Все скрипт статистики готов!


Способ второй - без использования сессий.
Во втором способе мы не будем использовать сессии, то есть каждый хит пользователя будет заносится в ваш лог файл. Если посещаемость вашего ресурса высока - то не советую применять этот способ, хотя с помощью него вы получаете полную картину посещаемости вашего сайта.

<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
$uri = $_SERVER['REQUEST_URI'];
$user = $_SERVER['PHP_AUTH_USER'];
$ip = $_SERVER['REMOTE_ADDR'];
$ref = $_SERVER['HTTP_REFERER'];
$dtime = date('r');

if($ref == ""){
$ref = "None";
}
if($user == ""){
$user = "None";
}

$entry_line = "$dtime - IP: $ip | Agent: $agent | URL: $uri | Referrer: $ref | Username: $user n";
$fp = fopen("logs.txt", "a");
fputs($fp, $entry_line);
fclose($fp);
?>

Практически тоже самое, что и в первом способе - поэтому останавливаться на нем мы не будем.
Данный скрипт можно модернизировать таким образом, чтобы, например, каждые 24 часа - информация из него отсылалась владельцу ресурса, а сам он очищался, но это уже совсем другая история...

Дата публикации: 5.04.06

 

При публикации этой статьи на других сайтах указание имени автора статьи и ссылки на источник обязательно.


В этом списке может оказаться и Ваша статья!

Если Ваша статья относится к тематике данного сайта, то Вы можете прислать её нам, заполнив специальную веб-форму на сайте в разделе " Статьи" или отправив её на наш e-mail: .

Ваша статья будет рассмотрена администрацией сайта, и, если она удовлетворяет нашим требованиям, будет опубликована на нашем сайте в течение 1 - 5 дней. (1-2 дня - при платной регистрации).

Что почитать ещё?

  1)Подсказки по работе в системе Google Adsense;
2)Как проиндексировать сайт в поисковой базе Google менее чем за 24 часа?;
3)Доменные имена. Как выбрать хорошее имя для своего сайта;
4)SEO-специалист делится своими секретами;
5)Двадцать шесть способов получения качественного трафика на ваш сайт.

Главная :: Библиотека веб-дизайнера :: Веб-программирование

"Веб-дизайн - это просто! Теория и практика"
Эта рассылка создана специально для тех, кто не хочет иметь проблем с созданием, поддержкой и раскруткой своего сайта. Полезные и интересные статьи по веб-дизайну в Ваш почтовый ящик. Мы ответим на все ваши вопросы, связанные с разработкой и поддержкой сайта;

RSS-канал
Все свежие новости об обновлениях на сайте, а также новости на тему веб-дизайна, хостинга, web-программирования и других тем тем, связанных с веб-дизайном. Если вы следите за нужной информацией, то получите информацию первым через наш RSS-канал, даже не заходя на наш веб-сайт.
Экономьте Ваше время с Vitaweb!

Субъективная оценка Вашего веб-сайта.
Специально для Вас был создан наш новый сервис, целиком и полностью посвящённый целенаправленной критике Ваших сайтов. Мы оценим Ваш сайт со всех позиций оптимизации, юзабилити и прочих немаловажных как для разработчика, так и для Вашего посетителя, моментов. Порой безупречный в глазах разработчика проект может оказаться совсем противоположным по мнению Вашего посетителя.  

Реклама:



Связь с автором сайта:

.::Поиск::.
.::Новости::.
  
05.08.2013
Новое онлайн интервью: вопросы Роману Ширяеву (Пузату);

04.07.2013
Теперь вы можете снова подать заявку на БЕСПЛАТНУЮ оценку сайта;

15.04.2013
Социальная сеть: опыт создания высоконагруженного проекта Подробнее.


.::Опрос::.
"На какой язык вы ориентируетесь при создании сайта? "

PHP;
PERL;
C;
ASP;
AJAX;
JAVA;
Python;
Javascript/Vbscript;
"Чистый" HTML.

.::Реклама::.



RotaPost
Копирование информации с этого сайта на другие ресурсы разрешено только при наличии видимой ссылки на наш сайт.
Электронная почта редактора сайта: audit(@)vitaweb.pp.ru (уберите скобки). 2005-2014 год. 18+.