Воскресенье, 2024-05-05, 11:05 AM
Главная страница | Регистрация | Вход Приветствую Вас заблудившийся пакет | RSS
Меню сайта

Категории каталога
Программирование [58]
.. все с этим делом связаное..
Нейронные сети [4]
Нейронные сети, использование алгоритмы роботы
OC [6]
Unix, FreeBSD, Windows, Linux Описание, совети, секреты, настройки
WEB [25]
web-programming и все с этим связаное
Сети [2]
Описание сетей, сетевых технологий, настройки и некоторые секреты
Мабила [9]
Описание мобильных технологий, программинг под мабилу, и просто интересные моменты
Разное [10]
то что не вошло в другие категории.. прикольные истории про программеров и деятелей информационной индустрии
История [6]
История этого компьтерного мира и некоторых ее учасников
FREE [3]
free on the web..

Наш опрос
Оцените мой сайт

Результаты · Архив опросов

Всего ответов: 129

Начало » Статьи » WEB

Простая баннерная система phpFBS

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


Что в нашем случае значит <управлять баннерными местами>? Что нам нужно от баннерной системы? Перечислим необходимые функции:



  1. Централизованное хранение баннеров и информации о них.

  2. Загрузка баннера на сайт через веб-интерфейс.

  3. Установка направляющей ссылки.

  4. Добавление новых записей о баннерах.

  5. Удаление записей о баннерах.

  6. Просмотр кода и тестирование баннера.


Все эти функции выполняет простая, на мой взгляд, баннерная система phpFBS (FoxWeb Banner System), написанная на языке PHP с базой MySQL за 4 часа.


Описание баннерной системы


Система состоит из трёх PHP-скриптов:



  1. adm.php - панель администрирования баннеров.

  2. conf.php - подключения к базе и настройки.

  3. i.php - для двух функций: показ и переход баннера.


В директории <b> по умолчанию будут храниться и загружаться файлы-картинки, то есть сами баннеры. Естественно, на неё должны быть установлены права chmod 777 для возможности загрузок.


ВНИМАНИЕ! Не рекомендуется использовать в именах скриптов и директорий слово banner или аналогичные слова, в таком случае данные, пересылаемые пользователю автоматически <обрезаются> прокси-серверами и файрволами. При тестировании баннерной системы у моего заказчика именно это и случилось :)


Начнём с простого - подключение к БД MySQL. Это осуществляет скрипт conf.php. Установите в нём необходимые учётные данные MySQL-соединения. Он вынесен отдельно, потому что подключение необходимо для <админской> и для <выводной> частей. В базе данных нам понадобится всего одна таблица banners следующей структуры:


CREATE TABLE `banners` (

`banner_id` tinyint(1) unsigned NOT NULL auto_increment,

`bannername` varchar(50) default NULL,

`filename` varchar(50) default NULL,

`url` varchar(50) default NULL,

`comment` varchar(50) default NULL,

PRIMARY KEY (`banner_id`)

) ENGINE=MyISAM;

Сразу хочу обрадовать сторонников файлового способа хранения записей - вы вольны придумывать свои функции, но с БД эта система получилась предельно простой. А если вам будущем понадобится 100 и более записей - тут конечно БД несомненно выигрывает.


conf.php


<?php

mysql_connect("localhost", "db_user", "db_pass");

mysql_select_db ("db_name");

?>


Перейдём к скрипту вывода и перенаправления. Ему передаётся два параметра: action (действие) и id (номер баннера в таблице). Первым делом скрипт подключается к базе и выполняет запрос на запись id, чтобы узнать путь к файлу баннера и ссылка, на которую он ведёт. Вообще говоря, в обоих случаях выполняется перенаправление:



  • i.php?action=redirect&id=1 - выполняется перенаправление на адрес баннера, указанный в базе в поле url. Это привычное всем действие при клике на баннере мышью.

  • i.php?id=1 - выполняется перенаправление на файл баннера, указанный в базе в поле filename. Фактически баннер выводится в окне браузера, как будто мы запросили его напрямую (но посредством переадресации от i.php). Ну, в общем вы поняли :)


i.php


<?php

include "conf.php";

$query = "SELECT * FROM banners WHERE banner_id=$id";

$f = mysql_fetch_array(mysql_query($query));

extract($f);

if ($action=="redirect") header("Location: ".$url);

elseif (!$action) header("Location: http://$HTTP_HOST/b/".$filename);

?>


Перенаправление выполняет стандартная функция PHP header(). Как видно из кода, ничего сложного.


Самая сложная часть (по сравнению с остальными, но на самом деле всё очень просто) - это скрипт администрирования adm.php. Вот краткая структура этого файла:



  • include("conf.php") - подключение к БД.

  • function http($str) - добавляет http:// при необходимости. Пользователь может ввести URL баннера как с префиксом http://, так и без него и система это учитывает.

  • function banners_table() - выводит таблицу баннеров . Фактически на экране - содержимое таблицы banners из БД.

  • function banner_code($ banner _ id ) - выводит HTML-код баннера пользователю.

  • function banner_show($banner_id) - показывает тест баннера . Он будет показан так, как будет выглядеть на HTML-странице сайта.

  • обновление данных в базе и закачка файла при нажатии кнопки отправки на форме

    if ($action=="write" && $banner_id)

  • добавление новой записи (строго после max номера)

    if ($action=="add" && $comment)

  • удаление записи с указанным id

    if ($action=="delete" && $banner_id)

  • загрузка данных в форму из записи с указанным id

    if ($action=="read" && $banner_id)

  • отображает HTML-код баннера

    if ($action=="code" && $banner_id)


Скажем, вы добавили и отредактировали записи, загрузили баннеры, и что дальше? Теперь щёлкнув по ссылке <код> в строке, соответствующей нужному баннеру, вы получите HTML-код изображением-ссылкой вроде:


<a href="./i.php?action=redirect&id=1"><img src="./i.php?id=1" border="0" /></a>


Теперь вы можете поместить это код в нужные места ваших HTML-страниц и... забыть о них, поскольку теперь при смене баннера вам нужно будет только изменить запись в панели администрирования.


Полный комплект файлов доступен здесь. Там же хранится SQL-скрипт для создания таблицы banners и демо-версия системы.

Описанная баннерная система реально используется на сайте http://58region.ru. Следует отметить, что это очень простая баннерная система, и я постарался сделать её максимально "прозрачной" для последующего наращивания и совершенствования.

Категория: WEB | Добавил: X-SAM (2006-07-18) | Автор: Алексей Курепин
Просмотров: 1966 | Рейтинг: 0.0

Всего комментариев: 0
Имя *:
Email *:
Код *:

Украинская Баннерная Сеть
Поиск по каталогу

Кнопки друзей

Статистика
Рейтинг сайтов Powered by MyPagerank.Net

Copyright DEBUGGER © 2007 Используются технологии uCoz