Как сделать простой ротатор баннеров? php

123 4
F
На сайте с 16.01.2010
Offline
267
8588

Приветствую всех.

Помогите сделать некий скриптик, для ротации различных баннеров в отведенном для них месте.

Допустим это место 200х200. Баннеры разные. Бывают жабоскрипты (Директ, Адсенс и другое), html конструкции разные, и просто картинки со ссылками.

Показ баннеров будет равномерный, т.е. не рандом. Количество меняется, в среднем 10 штук. Ни статистики, ни учетов переходов не требуется.

Т.е. я представляю, что это будет какой-то скрипт, в нем сразу и код ротации и коды самих баннеров (вручную добавлять/убирать), в шаблоне выводится каким-нибудь инклюдом.

Я не программист, сам не разберусь. :)

ГG
На сайте с 09.10.2007
Offline
97
#1

чтото вроде

include('banners_top.php');

banners_top.php


$ban[1] = "<script type="text/javascript" src='http://www.google.com/jsapi'></script><script type="text/javascript">google.load('search', '1');google.setOnLoadCallback(function() {google.search.CustomSearchControl.attachAutoCompletion('partner-pub-000000000000000:000000000000',document.getElementById('q'),'cse-search-box');});</script>";
$ban[2] = '<a href="" target="_blank"><img src="baner.gif" /></a>';
$ban[3] = '';
$ban[4] = '';
$ban[5] = '';

$ran = rand(1,5);
echo $ban[$ran];
Dreammaker
На сайте с 20.04.2006
Offline
570
#2
futuristian:
Показ баннеров будет равномерный, т.е. не рандом.

так что нельзя

Гарри Gudini:
$ran = rand(1,5);

:)

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#3

Почитайте, что такое рандом а?

Это и есть равномерный показ за большое количество выборки. Если он будет не равномерный, это не рандом, а глючная фигня.

---------- Добавлено 24.01.2012 в 03:44 ----------

Так что смело в файлик 1 строчка = 1 скрипт

и вывод:

echo $text[array_rand($text=file("banner.txt"))];

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
F
На сайте с 16.01.2010
Offline
267
#4

А сам скрипт буде понимать, что нужно следующий показывать, а не заново?

Юзеры X и Y

X открывает страницу видит баннер 1

Y открывает страницу видит баннер 1

X перешел на другую страницу видит баннер 2

А нужно:

X открывает страницу видит баннер 1

Y открывает страницу видит баннер 2

X перешел на другую страницу видит баннер 3

после последнего цикл повторяется.

Joker-jar
На сайте с 26.08.2010
Offline
154
#5

Можно завязать на БД. Создать таблицу типа "id | код баннера | счетчик просмотров", при генерации страницы выводить баннер с наименьшим счетчиком, увеличивая при этом последний на единицу.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#6

futuristian, ещё раз для не понятливых.

Генератор случайных чисел должен быть РАВНОМЕРНЫМ, если он НЕ РАВНОМЕРНЫЕ это НЕ генератор случайных чисел.

rand() в PHP это РАВНОМЕРНЫЙ генератор случайных чисел.

Это значит,

Дано:

1 человек

1 000 000 объявлений

1 000 000 минут

1 человек увидит за 1 000 000 минут все 1 000 000 объявлений, без повторения.

Тут проблема в другом, что такое человек, как его определить?

ВОТ! Это значит нужна система, которая будет записывать IP пользователя или его куки и вносить туда какие баннеры были показаны.

Joker-jar
На сайте с 26.08.2010
Offline
154
#7

Это называется нормальное распределение. Оно приемлимо работает при большом количестве "показов" (стремящимся к бесконечности). Не думаю, что такой вариант устраивает ТС.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#8
Joker-jar:
Это называется нормальное распределение. Оно приемлимо работает при большом количестве "показов" (стремящимся к бесконечности). Не думаю, что такой вариант устраивает ТС.

Показы тут НИ ПРИЧЁМ, всё работает идеально и стремящегося к бесконечности нет т.е. все генераторы случайных чисел тестируются и довольно быстро. Тут нужно засечь КОМУ мы будем это показывать.

А вообще ТС, я бы лично не замарачивался, это лишняя нагрузка и хлопоты, сделайте рандом и всё.

F
На сайте с 16.01.2010
Offline
267
#9
Joker-jar:
Можно завязать на БД. Создать таблицу типа "id | код баннера | счетчик просмотров", при генерации страницы выводить баннер с наименьшим счетчиком, увеличивая при этом последний на единицу.

Пока эту идею отбросил, много хлопот. Не стоит выделки. Но спасибо.

LEOnidUKG:
futuristian, ещё раз для не понятливых.

Генератор случайных чисел должен быть РАВНОМЕРНЫМ, если он НЕ РАВНОМЕРНЫЕ это НЕ генератор случайных чисел.

rand() в PHP это РАВНОМЕРНЫЙ генератор случайных чисел.

Это значит,
Дано:
1 человек
1 000 000 объявлений
1 000 000 минут

1 человек увидит за 1 000 000 минут все 1 000 000 объявлений, без повторения.

Тут проблема в другом, что такое человек, как его определить?
ВОТ! Это значит нужна система, которая будет записывать IP пользователя или его куки и вносить туда какие баннеры были показаны.

Я как раз из непонятливых, долго и муторно разбираюсь в новом.

Неправильно описал, нужен - следующий баннер при каждом хите.

Joker-jar
На сайте с 26.08.2010
Offline
154
#10

А у меня вот некоторые сомнения на счет "rand() в PHP это РАВНОМЕРНЫЙ генератор случайных чисел.". Думаю, эта равномерность может проявляться лишь в контексте одной сессии (читай, во время выполнения одного скрипта). Чтобы в разных сессиях это работало, интерпретатру пришлось бы где-то в постоянной памяти хранить, кому какие значения уже возвращались. Если мои размышления неверны, поправьте.

Хотя, видимо, LEOnidUKG что-то подобное и имел ввиду

Тут проблема в другом, что такое человек, как его определить?
ВОТ! Это значит нужна система, которая будет записывать IP пользователя или его куки и вносить туда какие баннеры были показаны.
123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий