Реферал - это url, с которого посетитель приходит на ваш сайт. К примеру, на странице http://www.site.com/links.html есть ссылка на ваш сайт. Если человек нажмет на нее, то он попадет на ваш сайт. Тогда url http://www.site.com/links.html будет вашим рефералом.
Каждому владельцу ресурса не будет лишним знать, откуда именно заходят посетители на его сайт. Для тех, кому интересно решение данной проблемы (задачи) с помощью php, и посвящена данная статья.
Не спорю, что у любой уважающей себя 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;
Инкрементируем значение переменной $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.
Табличка с графиком строится как результат mysql-запроса. В первой колонке содержится название urlа, а во второй - количество хитов, а в третей - цветная полоса.