Виртуальный Брест
Главная Портал Форум Рассылки Контакт Для клиентов Статьи

Баня открыта и ждет посетителей!
Баня открыта и ждет посетителей!
 
 
Магазин интимных товаров
Магазин интимных товаров
 

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


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

Ах, баннеры, баннеры…


Не секрет, что в наше время Интернет-странички  просто переполнены графикой. Без этого уже трудно представить себе какой-нибудь популярный проект. Часть этой графики является дизайном сайта, и с этим мы предпочитаем мириться. Другая часть – это баннеры, рекламная информация других сайтов в виде графической (часто даже анимированной) картинки. Это иногда раздражает, иногда выводит из себя, а иногда может оказаться полезным, так как хорошо сделанный баннер привлекает внимание и к себе и к рекламируемому ресурсу. Но у нас разговор пойдет не о самих баннерах, а о системах управления ими.

Если Вам удалось сделать хороший, полезный и посещаемый Интернет-проект, значит, Вы неизбежно сталкивались с баннерами. Часто другие Web-мастера сами предлагают обмен, иногда самому хочется поставить свой баннер на каком-либо ресурсе. Но в любом случае очень полезно иметь информацию о том, сколько раз Ваш баннер был показан и показывается ли он вообще. Это избавит от необходимости раз в неделю (день, месяц, год…) проверять, работает ли Ваш баннер на чужом сайте или давно удален.

Конечно, обойтись средствами HTML тут просто невозможно, поэтому приготовьтесь программировать.

Первое, что надо сделать – это определиться с кодом Вашего баннера и с самим баннером. Код выглядит, как правило, так:

<a href="http://myhost.com"><IMG SRC="http://myhost.com/baner.gif" alt="Мой баннер" border="0"></a>

Конечно, это только шаблон, но с него мы сможем построить то, что нам будет нужно. А нужно нам будет знать, сколько раз показывается тот или иной баннер на определенном сайте. И желательно – время последнего показа.

Для этого надо выделить один файл, который будет работать базой данных. Структура сайта выглядит следующим образом – каждая строчка соответствует одному из сайтов, на котором показывают Ваши баннеры. Разделителем между строками является, как и обычно, перевод строки. Разделителем в самой строке между информационными данными можно выбрать символ ^ (это на клавиатуре Shift+6). Этот символ не встречается в адресной строке браузера, и нам очень даже подходит.

Структуру строки файла базы данный выберем вот так:

Адрес ^ время последнего посещения ^ количество посещений

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

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

<a href="http://myhost.com">

<IMG SRC="http://myhost.com/baner.phtml?id=1"

alt="Мой баннер" border="0"></a>

Как видите, поменялось имя файла, и добавился параметр id. Теперь вызывается не непосредственно сам баннер, а скрипт baner.phtml, который и ведет статистику показов и времени посещения. В конце скрипта должен обязательно быть переход на баннер вот в таком виде:

header ("Location: baner.gif");

Теперь давайте перейдем к вопросу о ведении статистики. Несложно сделать просто подсчет показов, так как задача эта тривиальна – достаточно считать в массив базу данных посещений, и затем увеличить на 1 ячейку массива с индексом, соответствующим переменной id. Это наш идентификатор.

Но у нас более сложная задача – организовать возможность просмотра всей статистики в дальнейшем и запоминать время последнего показа баннера. Значит, надо записывать в базу и время, и адрес сайта, с которого вызывается баннер. Адрес мы будем запоминать только для того, что бы в дальнейшем можно было узнать статистику показов, а в самой процедуре подсчета он не участвует.

Итак, начали. Наш скрипт, прежде всего, должен проверить на правильность полученную переменную $id. Если она не больше установленного значения и не меньше ноля, то все нормально, иначе присваиваем переменной id ноль, или выводим сообщение об ошибке. Кому как нравится. Значение переменной id с индексом ноль нужно специально зарезервировать для таких вот ошибок, и всегда будет ясно – кто-то разместил не правильный код или допустил в нем ошибку при наборе.

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

$adds = "url.txt";

$txt = file($adds);

Вся информация оказывается в массиве с именем $txt. Идентификатор указывает на тот индекс, где в массиве расположены данные сайта, с которого вызван баннер. Обратиться к этим данным очень просто:

$str = trim(str_replace ("\n","", $txt[$id]));

Попутно мы вырезали пробелы в начале и конце строки и удалили символ перевода строки.

Хорошо бы проверить, есть ли такая учетная запись, но это по желанию. Дальше надо разложить информацию на три составляющих – адрес, время последнего доступа и количество показов. Вот как это проще всего сделать:

list ($add, $time, $counter) = split ("^", $str);

Вот тут нам и пригодился наш разделитель. Все, вся информация извлечена, теперь ее надо обновить и записать обратно. Собственно, нужно просто увеличить переменную $counter на единицу, считать текущее время и присвоить переменной $time его значение.

Если со счетчиком все ясно, то время требует пояснения. Лучше и проще всего считывать его в Unix-овском формате. Полученное значение будет равно количеству секунд, прошедшему после 1 января 1970 года. Ну, так уж принято, хоть и немного странно для простого пользователя. Но, нам важно, что это число секунд очень легко преобразуется в дальнейшем в конкретные даты, а хранить его еще проще, так как это, по сути, просто большое число.

Его получить можно так:

$time = time(void);

$counter++;

Заодно увеличили показания счетчика. Все – теперь осталось только записать всю информацию обратно. Суммируем строку, и заносим полученное значение в нужную ячейку массива (напомню, на нее указывает идентификатор в переменной $id):

$txt[$id] = $add."^".$time."^".$counter."\n";

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

$str=implode("", $txt);

$fp = fopen($adds, "w");

if ($fp) { $fw = fwrite($fp, $str); fclose($fp); }

Вот и все, так как все поставленные нами задачи мы выполнили.

Я намеренно не приводил всего кода скрипта целиком, а только по пунктам объяснял все шаги как можно подробнее.

Я хотел бы, что бы Вы не занимались бездумным копированием, а постарались самостоятельно развить предложенные тут идеи. В качестве компенсации я предлагаю Вам готовый скрипт вывода статистики на экран. Для этого достаточно вызвать в браузере файл stat.phtml.

Вот его код:

<?

$adds = "url.txt";

$txt = file($adds);

$i = 0;

while ($i <= count($txt)):

$temp = trim(str_replace ("\n","", $txt[$i]));

list ($add, $time, $counter) = split ("^", $str);

echo $add." – ".$counter." : ".$time."<br>";

$i++;

endwhile;

?>

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

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



Тодд Томлинсон

CMS Drupal 7. Руководство по разработке системы управления веб-сайтом
Многие из большинства хорошо узнаваемых веб-сайтов на планете используют в качестве платформы для доставки контента и функциональности своим посетителям систему Drupal. С выходом...

Линн Бейли, М. Моррисон

Изучаем PHP и MySQL
Вы хотите уметь создавать не только статичные, но и динамичные, связанные с базами данных сайты? Тогда вам не обойтись без знания РНР и MySQL. Эта книга является уникальным...

Дж. Гарретт

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

Павел Агуров

ASP.NET. Сборник рецептов (+ CD-ROM)
В книге собраны практические советы и примеры, которые помогут при создании веб-приложений с использованием ASP.NET: разработка архитектуры веб-приложения, его отладка,...

    Информация

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

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

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

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

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