Вторник, 26.11.2024, 22:52 Вы вошли как Гость | Группа "Гость" | RSS
 

 
Главная | Форум | Чат | Информация для пользователей
[Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Показ баннеров на РНР
Grinya Дата: Вторник, 14.06.2011, 15:42 | Сообщение # 1
Легендарный
Группа: Администратор
Сообщений: 365
Статус: Offline
.: Дополнительные данные :.
Бог сайта и форума За хорошую посещаемость на форуме За супер посещаемость За Легендарныйа
Показ баннеров на РНР

Должно быть, Вы видели на многих сайтах рекламные баннеры. На некоторых сайтах они относятся к тематике сайта, на некоторых – нет, но статья не об этом. Как разместит эти баннеры на своей странице? Довольно часто web-мастера поступают следующим образом. Заходят на сайт какой-нибудь баннерной сети (допустим, http://www.best-banner-network.net.ua ), регистрируют в ней свой сайт и получают HTML-код для размещения на своем сайте случайного баннера из каталога баннерной сети. Нечто вроде такого:

Code
<IFRAME SRC=”http://www.best-banner-network.net.ua/cgi-bin/banner-show.cgi?id=12345&banner=67890” WIDTH=”468” HEIGHT=”60” SCROLLING=”no”><A HREF=” http://www.best-banner-network.net.ua/cgi-bin/banner-show.cgi?id=12345&banner=67890”></A></IFRAME>


Конечно, web-мастеру довольно выгодно зарегистрироваться в баннерной сети – ведь и его баннер демонстрируется на сайтах, зарегистрированных в той же баннерной сети.

Но этот вариант подходит далеко не в каждом случае. Сайты, сделанные только при помощи HTML, JavaScript и CSS, можно отлаживать и в режиме автономной работы. Но сайты, использующие при работе серверные скрипты (PHP, ASP) и/или базы данных, надо отлаживать на LocalHost’e НЕ в режиме автономной работы. Все бы хорошо, но при размещении приведенного выше HTML-кода при загрузке страницы браузер пытается подключиться к Интернету. Поэтому в таких случаях приходится, чтобы и сайт работал на LocalHost’e, и изображение баннера выводилось, вставлять код баннера во все страницы уже после окончания работы над сайтом. А это довольно неудобно.

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

Теперь определимся, что нужно для этого использовать. Писать будем на PHP. Вся нужная нам информация будет храниться в текстовом файле, поэтому наличия MySQL не потребуется. В этом текстовом файле должна храниться полная информация о всех баннерах (высота, ширина, адрес изображения, т.е. его URL), демонстрируемых на сайте. Кроме того, в этом файле будет храниться информация о том, сколько раз баннер демонстрировался посетителям, а также сколько раз на него нажимали (!).

Для начала давайте создадим тестовый файл. Назовем его banner.txt . В нем будут храниться данные такого вида:

Code
URL1|IMG1|NAME1|WH1|SHOW1|CL1
URL2|IMG2|NAME2|WH2|SHOW2|CL2


Эти строки означают следующее:

URL - ссылка, на которую будет переходить пользователь по нажатию на изображение баннера;
IMG - адрес файла изображения, которое будет выводиться на экран;
NAME – альтернативный текст изображения (в тэге параметр ALT);
WH - строка вида WIDTH=XX HEIGHT=XX (ширина и высота изображения). Если все изображения одного размера, соответственно можно упростить скрипт, но пока что лучше оставим так, ведь набрать лишнюю пару слов легче, чем потом переделывать весь скрипт.
SHOW - показы баннера. Поскольку баннеры еще нигде не демонстрировались, то изначально пишем - 0;
CL – количество нажатий на данный баннер, пишем тоже - 0;

Теперь создадим два PHP-файла. Один из них (show.php) будет отвечать за показ баннеров, другой (click.php) будет подсчитывать количество кликов по баннеру.

Пишем show.php. Откройте любимый текстовый редактор и наберите следующий текст.

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

Code
<?PHP
$array_bann = file ('banner.txt');


Потом выбираем случайную запись из считанного файла, разделяем ее на элементы по признаку "|" с помощью функции explode() и заносим их в массив $data_bann.

Code
srand((double)microtime()*1000000);
$pos = rand(0,sizeof($array_bann)-1);
$data_bann=explode ("|", $array_bann[$pos]);


Далее выводим на экран сам баннер на основе данных из массива $data_bann.

Code
echo "<a href=click.php?banner=$pos target=_blank><IMG SRC='$data_bann[1]' ALT='$data_bann[2]' $data_bann[3] border=0></a>"


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

Code
$data_bann[4]++;


Склеиваем измененную запись и записываем весь массив в файл.

Code
$array_bann[$pos]=join('|',$data_bann);
$fp= fopen ('database.txt',"w");
flock($fp,3);
fwrite ($fp, join('',$array_bann));
fclose ($fp);
?>


Теперь пишем файл click.php.

Открываем файл с исходными данными.

Code
<?PHP
$array_bann = file ('banner.txt');


В переменной $banner у нас находится уже переданный из html-файла номер баннера, по которому кликнули. Берем запись, соответствующую этому номеру, опять разделяем ее по признаку "|" при помощи той же функции explode() и заносим это в массив $data_bann.

Code
$data_bann=explode ("|", $array_bann[$banner]);


Увеличиваем счетчик показов на единицу, склеиваем запись обратно в $array_bann.

Code
$data_bann[5]=$data_bann[5]+1;
$array_bann[$banner]=join('|',$data_bann)."\n";


И записываем измененный массив в файл database.txt.

Code
$fp= fopen ('database.txt',"w");
flock($fp,3);
fwrite ($fp, join('',$array_bann));
fclose ($fp);


Пересылаем пользователя по адресу, хранящемуся в переменной $data_bann[0].

Code
header("Location: http://$data_bann[0]");
?>


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


  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
  • Я был ТУТ! (24)
  • Наши кнопки (0)
  • Общие правила на сайте (0)
  • Описание различных видео форматов (0)
  • Шаблоны оформления новостей (2)
  • Как вы нашли наш сайт? (8)
  • Сектор Газа, все только о них... (1)
  • Какие хорошие комедии вы видели? (5)
  • Вакансии по разделам на www.7x.net.ua (0)
  • Приглашаем! Журналистов, Риперов... (0)
  • Я был ТУТ! (24)
  • Как вы относитесь к сериалу Звёздные врата: SG-1 (17)
  • Фото приколы. (16)
  • Конкурс на лучший баннер (11)
  • Красивый шаблон для системы uCoz (10)
  • Досчитаем до 100 (9)
  • Анимированное меню (9)
  • Как вы нашли наш сайт? (8)
  • Видео приколы. (8)
  • Увеличь количество посещений своего сайта (7)
  • Grinya
  • A1rBoRnE
  • Chibcha
  • DarkSpirit
  • Змей
  • Fantom
  • Borman
  • Worlak
  • Mister_Coob
  • Anatoliy
  • ZoYOping
  • LeoFreskos
  • Avalancheflu
  • Candyktg
  • Portableddx
  • olemit
  • Valeron83Oping
  • AviorT
  • Blendermog
  • Holographictkx
  • ()


    Copyright MyCorp © 2024 Хостинг от uCoz