Как узнать количество нажатий на ссылку?


Пример счетчика переходов по внутренним и внешним ссылкам

Как узнать и отследить, сколько раз пользователь нажал на ту или иную ссылку?

Счетчик нажатий на ссылку

Счетчик нажатий на ссылку

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

И вот на днях передо мною, буквально прям, как конь перед травою)

Взял и стал один принтер, конкретной марки ML-2165W (с вай фаем) Причем стал в прямом, не переносном смысле. У него закончился счетчик чипа, т. е. пользовательский модуль Crum. Но так, как ни чипов, ни уж тем более генераторов прошивок в паблике нет, мне пришлось выйти на связь с разработчиками  представителями данного ПО. Цена вопроса варьировалась от 300 до 600 рублей. Но мое кодерское самоосознание решило настоять на сделке, и в качестве условия, я предложил написать статью, и в конце статьи оставить реферальную ссылку на Email.

Ну это, как вы понимаете, не составило особого труда, я создал страницу на своем самописном сайте, и отправил в индекс. И все бы ни чего, но я решил немного все [усугубить] усовершенствовать, а именно вывести на странице счетчик, который будет адекватно отображать количество нажатий на ссылку, и при этом еще у пользователя (для удобства) будет запускаться почтовый клиент.

Вариантов для разработки данного счетчика, скажу вам очень много, от Ajax, Jquery[JavaScript] до PHP. Но так, как с PHP я лучше знаком и он мне просто больше нравиться, свой выбор я решил все таки остановить именно на нем. Хотя конечно, не обошлось и без JavaScript.

Так, как же узнать количество переходов по ссылке?

Отслеживаем переходы по ссылкам

Отслеживаем переходы по ссылкам!

Вот сейчас я и опишу, как это можно реализовать средствами PHP и JavaScript. И так для начала сделаем HTML ссылку, по нажатию на которую будет автоматически открываться почтовый клиент у пользователя:


<noindex>
<a href="index.php?act=push"
onclick="location.href='mailto:почта@gmail.com'" >
ссылка
</a>
</noindex>

Ну и теперь пишем PHP скрипт, (обработчик события:)

В принципе можно использовать простой файл, и производить уже дальнейшие манипуляции с ним, а можно и использовать БД MySQL, но тут уже, как говориться…

Алгоритм чтения и вывода количества кликов по ссылке выглядит так:

<?php
//Коннектимся к Базе данных, считываем и выводим данные
$all="Всего обращений: [$counts]";
print "$all";
//Если пользователь нажал на ссылку
if ($_GET[act]=="push")
{
//фиксируем нажатие на ссылку
$count++;
//соединяемся с бд мускуля, и сохраняем в нее данные
//делаем редирект на JavaScript, и данные на странице обновляются:)
echo "<script>document.location.replace('index.php');</script>";
}
?>

Вот такой получился счетчик, который записывает и выводит количество нажатий на ссылку в режиме online. Естественно если не делать редиректа, то после нажатия на ссылку, параметры переданные методом GET остаются в строке URL, и в случае обновления страницы (F5), значение счетчика начинает увеличиваться , а это, как вы понимаете не есть хорошо. В принципе, можно немного пофантазировать и сделать редирект на PHP:

header(‘Location: index.php’);

Но в данном случае я использовал JavaScript.

Вот код счетчика переходов по ссылке, который использует  текстовые файлы.

При желании вы можете сделать счетчик нажатий на ссылку с помощью БД MySQL, ибо алгоритм работы в обоих случаях одинаковый.

Исполняемый файл называется count.php, HTML код самой ссылки вы можете увидеть в самом начале статьи.

<?php
if(!($files=fopen("count.txt","a+")))
{
die("File open error");
}
flock($files,LOCK_EX);
$count=fread($files,300);
flock($files,LOCK_UN);
fclose($files);
$all="Всего нажатий на ссылку: [$counts]";
print "$all";
if ($_GET[act]=="push")
{
$files=fopen("count.txt","a+");
flock($files,LOCK_EX);
$count=fread($files,300);
@$count++;
ftruncate($files,0);
fwrite($files,$count);
fflush($files);
flock($files,LOCK_UN);
fclose($files);
echo "<script>document.location.replace('count.php');</script>";
}
?>

 

P.S. Если вам интересен язык программирования PHP, то я рекомендую вам почитать статью о отправке почты на PHP, с подробным описанием скрипта рассылки писем.

В конце статьи можно скачать бесплатно исходник PHP скрипта.