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

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

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

Статьи

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


Главная :: Библиотека веб-дизайнера :: Хостинг, настройка веб-серверов

Анализ посещаемости сайта рефералами

 Автор: Николай Рудченко
www.codeguru.com.ua

Каждому владельцу ресурса не будет лишним знать, откуда именно заходят посетители на его сайт. Для тех, кому интересно решение данной проблемы (задачи) с помощью PHP, и посвящена данная статья.

Небольшое вступление

Реферал - это url, с которого посетитель приходит на ваш сайт. К примеру, на странице http://www.site.com/links.html есть ссылка на ваш сайт. Если человек нажмет на нее, то он попадет на ваш сайт. Тогда url http://www.site.com/links.html будет вашим рефералом.

Не спорю, что у любой уважающей себя CMS (content management system, система управления содержанием) есть модули (боты), которые отвечают за сбор статистики. Для тех же, у кого на сайте не стоит CMS, есть возможность попрактиковаться в написании и конфигурировании собственного мини-модуля статистики.

Его можно реализовать в небольшом скрипте, который будет отслеживать нажатия на ссылки, записывать их URL'ы в базу данных (в нашем примере это MySQL) и генерировать статистику в виде графика. Да и поможет разобраться, как это все работает на самом деле, не копаясь в модулях сторонних разработчиков.

Нам потребуется три файла:

referer.sql (запрос к БД на создание таблицы, где будет храниться статистика);
referer.php (сам скрипт);
viewreferer.php (скрипт для просмотра статистики).

Для создания таблицы referer необходимо выполнить запрос referer.sql. Вот его содержание:

CREATE TABLE referer (url varchar(100) NOT NULL,
  hits int(10) DEFAULT '0' NOT NULL,
  PRIMARY KEY (url)
);

Теперь займемся файлом referer.php. Зададим значения переменным:

$hostname = "localhost"; // предоставляется вашим хостером. В большинстве случаев это - localhost (иногда бывает 127.0.0.1)
$username = "your-username"; // имя пользователя - ваш логин для подключения к базе данных
$password = "your-password"; // вы должны получить его у своего хостинг-провайдера$userstable = "referer"; // таблица, в которой будут храниться результаты работы нашего скрипта
$dbName = "your-db-name"; // имя БД, в которой содержится таблица referer

В переменную $ref заносим информацию о ссылке-реферере:

$ref = strtolower($HTTP_REFERER);

С помощью функции strtolower переводим значение переменной $ref в нижний регистр. Это делается для того, чтобы ссылки типа www.site.com, www.Site.com или WWW.SITE.COM были одинакового регистра.

Если переменная $ref не пустая,

if(!empty($ref)){

то подключаемся к БД:

mysql_connect($hostname,$username, $password) or die(mysql_error());
mysql_select_db("$dbName") or die(mysql_error());

Производим выборку из столбца url, значение которого совпадает с $ref

$query = "select * from $userstable where url = '$ref'";  

Переменная $rows содержит количество совпадений

$result = mysql_query($query);
$rows = mysql_num_rows($result);

Если же не найдено ни одной записи (т.е c такого url'a еще не было рефералов)

if ($rows == 0){

устанавливаем значение переменной $hits в "1"
 

$hits = "1";

А далее просто выполняем вставку url'а и переменной $hits в нашу таблицу (referer):
 

$query1 = "insert into $userstable (url,hits) values('$ref','$hits')";

Выполняем запрос:
 

mysql_query($query1);
}

Если же были найдены записи по данному url (т.е c этого url'a уже заходили рефералы),

else {

$hitquery = "select hits from $userstable where url = '$ref'";

$result2 = mysql_query($hitquery);

$row = mysql_fetch_array($result2);

$hits = $row["hits"]; 

Инкрементируем значение переменной $hits (увеличиваем на "1")

$query2 = "update $userstable set hits = hits+1 where url = '$ref'";

mysql_query($query2);>

}

В ту страницу сайта, для которой необходима статистика по рефералам (как правило - это главная страница, index.php), необходимо вставить ссылку на скрипт referer.php. Предполагается, что файлы referer.php и index.php находятся в одной папке.

include("referer.php");  

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

Задаем переменные для подключения к БД:

$hostname = "localhost";

$username = "your-username";

$password = "your-password";

$userstable = "referer";

$dbName = "your-db-name"; 

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

$color10 = "#FFFF00";

$color20 = "#FF0000";

$color50 = "#008000";

$color1k = "#0000FF";

$color2k = "#0000A0";

$color5k = "#000040"; 

Опять соединяемся с БД:

mysql_connect($hostname, $username,$password) or die(mysql_error());

mysql_select_db("$dbName") or die(mysql_error());   

Делаем выборку из БД и упорядочиваем ее по убыванию (desc) количества хитов (столбец hits).

$query = "select * from $userstable order by hits desc";

$result = mysql_query($query);

Подсчитываем количество строк с уникальными рефералами (это попросту число строк в нашей таблице referer).

 $number = mysql_num_rows($result) or die (mysql_error());

$i = 0;

Если же не найдено ни одной записи (таблица пуста), то выводим сообщение:

if ($number == 0) {

echo "<center><p><b>Сведений о рефералах не обнаружено!</b></center>";

}Если же рефералы есть:

elseif ($number >= 1) {

while ($i < $number){

$row = mysql_fetch_array($result);

$hits = $row["hits"];

$ref = $row["url"];

Выбираем цвет для текущего значения hits:

if ($hits <10){

$color = "$color10";

}

elseif (($hits >= 10 )

and ($hits < 20)){

$color = "$color20";

}

elseif (($hits >= 20 )

and ($hits < 50)){

$color = "$color50";

}

elseif (($hits >= 50 )

and ($hits < 100)){

$color = "$color1k";

}

elseif (($hits >= 100 )

and ($hits < 200)){

$color = "$color2k";

}

elseif ($hits >= 200){

$color = "$color5k";

}

Табличка с графиком строится как результат MySQL-запроса. В первой колонке содержится название url'а, а во второй - количество хитов, а в третей - цветная полоса.

echo "<div align=\"left\">";

echo "<table cols=\"3\" border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"400\"><b><a href=\"$ref\">$ref</a></b></td>";

echo "<td align=\"right\" width=\"60\"><b>$hits</b></td>";

echo "<td align=\"left\" width=\"$hits\" bgcolor=\"$color\"></td></tr>";

$i++;

echo"</table>\n";

}

}

Итак, все готово! Теперь можно периодически вызывать скрипт viewreferer.php и смотреть графическую статистику переходов на ваш сайт.

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

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


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

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

Мы будем Вам очень благодарны. Ссылка на Вас гарантируется!


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

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

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

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

Реклама:





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


.::Поиск::.
.::Новости::.
  
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+.