Виртуальный Брест
OZ.by - не только книжный магазин
Главная Портал Форум Рассылки Контакт Для клиентов Статьи

Геологические работы
Геологические работы
 
Экскурсии в Европу, из Бреста!
Экскурсии в Европу, из Бреста!
 
Баня открыта и ждет посетителей!
Баня открыта и ждет посетителей!
 

Виртуальный хостинг - дом для вашего сайта - лучшее предложение в Бресте!


Полный список глав книги

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


Сия тема обширна и весьма любопытна. Но мы остановимся на чем-то попроще.

Итак, есть сайт. Есть и поддержка РНР, есть желание применить эту поддержку на деле. И есть проблема. Она заключается в том, что нужно узнать, сколько раз нажимают на тот или иной баннер или ссылку (это не существенно). Как частный случай - выбор пункта меню. Ведь, если помните, так тоже можно сделать переход по ссылке. Вот и займемся этим поближе.

По правде говоря, ничего сложного тут нет (когда же мы дойдем-то до сложного...). Это - самый обычный счетчик, только немного модифицированный. Начнем мы как всегда...

Нет, на этот раз - не как всегда. Мы сделаем себе ссылку для начала. Вот она: http://virtual.brest.by/php/. Пусть будет и еще одна: http://204040.com.

А это уже для коллекции, что бы не учиться на одной ссылке, а на нескольких. Вторая ссылка - это один интересный сайт одной неплохой фирмы в моем городе. Кто очень интересуется, как грабить информацию с Экселевского файла, можете посмотреть, как это там сделано (каюсь, уж очень хочется похвастаться - моя работа). Но это к слову. Теперь о деле.

А дело в том, что все эти ссылки мы должны подменить на одну свою. К примеру, у Вас есть сайт http://home.name (нет такого сайта, не ищите, это я придумал). Сайт расположен на сервере, поддерживающем препроцессор РНР.

Тогда Вы, например, можете подменить указанные выше ссылки такими:

http://home.name/reg.phtml?id=1 и

http://home.name/reg.phtml?id=2

Уловили суть? Вы направляете посетителя не сразу на выбранные им ресурсы, а сначала к себе на специальную страничку, на которой можно, проанализировав переменную $id узнать, куда именно решил уйти Ваш посетитель. Подсчитать этот переход в специальной базе данных, и под конец - без вопросов перенаправить этого непутевого посетителя на тот ресурс, который он выбрал. Обратите внимание, что ни в коем случае нельзя выводить ничего на экран, иначе переход не состоится. Хотя...

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

Так, опять куда-то ушли. Приступим к делу.


<?
$u[0] = "http://home.name";
$u[1] = "http://virtual.brest.by/php/";
$u[2] = "http://204040.com";

В этом кусочке кода мы определяемся с адресами, куда будут происходить перенаправления. Тестовые адреса у нас уже есть, вот их и будем использовать. Спрашиваете, зачем я включил сюда первый адрес, ведь это адрес Вашего (ну, представим...) сайта? Очень просто - а вдруг Вы ошибетесь c переменной $id (со значением этой переменной), и тогда Ваш скрипт переправит посетителя (вот тот удивится!) на главную страничку Вашего сайта. А можно и не на главную, достаточно прописать ее адрес в первой строке, и вот туда посетитель и попадет.

$add = "log.txt";
$sl = file($add);

Ну, это уже просто. В массив считывается содержимое базы данных со статистикой переходов.

if ($id < 1 or $id >= count ($u)) { $id = 0; }

А вот тут проверяется содержимое переменной $id на ошибку, и если она присутствует, то присваиваем ей (переменной) ноль.

$url = $u[$id];
$temp = trim(str_replace ("\n","", $sl[$id]));
if (!$temp) { $temp = 0; }
$temp++;
$sl[$i] = $temp."\n";

Тут немного сложнее, но сейчас попробуем вместе разобраться. Так как нужный нам адрес записан в массиве $u, который мы описали вначале, считываем оттуда адрес, на который потом сделаем переход. Но это еще не все, дальше считываем в переменную $temp число, соответствующее количеству переходов по этому адресу. Увеличиваем полученное число на один, и добавляем к нему символ перевода строки - для правильного считывания в будущем.

$sav = implode($sl, "");

Сращиваем весь массив в одну переменную...

$fp = @fopen($add, "w+");
if ($fp) { $fw = fwrite($fp, $sav); fclose($fp); }

И записываем в наш файл. Кстати, не забудьте его создать, а то первый раз скрипт выдаст ошибку. И про права, разрешающие запись, не забудьте, если только Вы не под виндами - там можно.

header ("Location: ".$url);
?>

Все, осталось только перейти по считанному адресу. Наш скрипт, кстати, умеет сам заполнять пустые поля. То есть, файл со статистикой не нужно заполнять нулями, он будет заполняться сам. Написать скрипт показа статистики Вы уже сможете сами. Как!!! Нет!? Ну, тогда Вам придется почитать весь предыдущий материал, или... Заглянуть в файл со статистикой.

Вот и все - теперь у Вас есть возможность самостоятельно убедиться, куда пропали Ваши посетители... И убрать эту вредную ссылку. Шутка... Успехов!

Читать еще...



С. Холзнер

PHP в примерах
Вашему вниманию предлагается один из мировых бестселлеров, посвященных программированию на РНР. В рамках данной книги автору удалось, начав с основ языка РНР, охватить весьма...

Алексис Голдстайн, Луис Лазарис, Эстель Уэйл

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

Энди Вигли, Дэниел Мот, Питер Фут

Microsoft Mobile и .Net Compact Framework. Руководство разработчика
Эта книга является практическим руководством по разработке приложений для платформы .NET Compact Framework на мобильных устройствах типа Pocket PCs и Windows Mobile Smartphones,...

Дж. Граппоне, Г. Казн

Поисковая оптимизация сайтов. Исчерпывающее руководство
Перед вами стоит задача улучшить позиции веб-сайта в поисковых системах? Занимаясь этим всего 1 час в день вы сможете достаточно быстро добиться хороших результатов. Для этого вам...

    Информация

Главная - переход на начало
Тарифы на Российский хостинг
Правила - что можно а что нет
Заказ - сделайте это сейчас
Выбор домена - найди свое имя
Регистрация домена - купить
Оплата - варианты для всех
Панель управления Россия
Панель управления Беларусь
Вопросы и ответы - информация
Разработка сайтов - сопровождение
Виртуальный Брест - портал
Контакт - обратная связь
Наш форум - пообщаемся?

Список доменов
в которых доступна бесплатная регистрация имен при покупке хостинга, а так же открытие поч- тового ящика:

Новости Бреста:

Велосипедисты, объединяйтесь! Чтобы решить свои проблемы и вопросы
ГАИ Брестской области получила 10 мобильных систем видеоконтроля скорости "Бинар"
Во дворе дома на Партизанском пр. в Бресте застрелили бездомную кормящую собаку - фото - видео
В Барановичском районе повесился 17-летний подросток
Пинского бара "Шатер", в котором была драка, больше нет
Брестские социал-демократы против введения платы за посещение поликлиник
27-летний пинчанин стрелял из самодельного оружия по окнам общежития
Выходные на Брестчине будут морозными - фото
Более 150 ребят из детских домов Брестской области во время акции "Наши дети" побывали в Беловежской пуще
Брестская область в 2012 году на 24,6% превысила план по строительству жилья для очередников с господдержкой

© Виртуальный Брест 2001 - 2009 Автор проекта: Андрей Кухарчик Дизайн: Partgraphic