Bannerbank за 24 часа

Nikita Kislitsin

Xakep, номер #053, стр. 053-088-4


2) show.php будет подключаться в месте, куда следует вставить баннер, принимая параметр - "тип" баннера. Здесь подразумеваются прежде всего размеры картинки.

3) users.inc.php - модульный файл, в котором описываются функции взаимодействия с рекламодателем. Это: login(login, passwd) - функция входа в систему, useredit(uid) - функция редактирования параметров пользователя, banneradd() - добавление нового баннера, banneredit(bid) - редактирование баннера, baneerdel(bid) - удаление баннера, showstats(bid, mod) - статистика вида mod по баннеру pid, и т.д.

4) users.php - административный скрипт для рекламодателей. Через него они смогут управлять показами своих баннеров на сайте.

5) admin.inc.php - модуль административного скрипта. Определяет функции: login - вход в систему, useradd() - добавление нового юзера, userdel(uid) - удаление пользователя uid, seredit(uid) - редактирование параметров пользователя uid.

На сегодня все. В листинге приведены две подробно прокомментированные ключевые функции из файла show.php.inc. Целиком он лежит на CD и на моем сайте.

Функция showbanner

function showbanner($bid) //Функция, показывающая баннер $pid

{

$sq=mysql_query("select src,type,uid from banners where bid='$bid'");

// выборка полей src, type и uid из таблицы banners по идентификатору bid. Можно было написать select *, что вернуло бы все поля записи, но все нам и не нужны - а зачем расходовать память на ненужные данные?

if(mysql_num_rows($sq) == 1) //Если баннер bid есть, и причем только один

{

$banner=mysql_fetch_array($sq);

//Выводим html-теги, показывающие картинку и создающие на нее ссылку

echo "<a href=show.php?do=click&pid=$bid><img src='$banner["src"]'></a>";

//Запрос на получение стоимости тысячи показов баннеров этого типа

$sq=mysql_query("select price from types where type='$banner["type"]'");

$type=mysql_fetch_array($sq);

$type["price"]=$type["price"]/1000; //Стоимость одного показа

mysql_query("update balance set usd=usd-$type["price"] where uid='$banner["uid"]'"); //Снимаем со счета пользователя деньги за показ баннера

mysql_query("update stats set hits=hits+1 where bid='$bid'");

// Добавляем в таблицу со статистическими данными информацию о показе

} //Если информации о баннере $bid нет в таблице, показываем баннер с bid=1 - системный баннер-заглушка, ведущий на главный сайт системы

else { $sq=mysql_query("select src from banners where bid='1'");

echo "<a href=show.php?do=click&pid=1><img src='$banner["src"]'></a>";

}

}

function click($pid)//Функция, обрабатывающая клик по баннеру

{

$sq=mysql_query("select link from banners where bid='$bid'"); //Получаем ссылку, на которую надо перейти

$li=mysql_fetch_array($sq);

mysql_query("update stats set clicks=clicks+1 where pid='$pid'"); //Добавляем в статистическую таблицу информацию о клике

Назад на стр. 053-088-3  Содержание  Вперед на стр. 053-088-5