Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 13
На сайте нет зарегистрированных пользователей

Пользователей: 13,362
новичок: uvapke
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование системы управления качеством производственного процесса на...
Моделирование автовокзала + Отчет + Блок схема
Метод конечных разностей для интерполяции/экстраполяции на Delphi

Простая баннерная система phpFBS
Автор: Алексей Курепин
Сайт: http://foxweb.net.ru
4 февраля 2006 года

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

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

Что в нашем случае значит <управлять баннерными местами>? Что нам нужно от баннерной системы? Перечислим необходимые функции:
Централизованное хранение баннеров и информации о них.
Загрузка баннера на сайт через веб-интерфейс.
Установка направляющей ссылки.
Добавление новых записей о баннерах.
Удаление записей о баннерах.
Просмотр кода и тестирование баннера.

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

Система состоит из трёх PHP-скриптов:
adm.php - панель администрирования баннеров.
conf.php - подключения к базе и настройки.
i.php - для двух функций: показ и переход баннера.

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

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

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-код изображением-ссылкой вроде:



Теперь вы можете поместить это код в нужные места ваших HTML-страниц и... забыть о них, поскольку теперь при смене баннера вам нужно будет только изменить запись в панели администрирования.
Опубликовал Kest November 06 2008 16:37:54 · 0 Комментариев · 6828 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
EditNew
Visual Basic Script
PBEditPack
DiskInfo
SysInfo [Исходник...
Tetris 2002
ComboBox97
Быстрое создание ...
Abbrevia
ScreenSaver [Исхо...
Расширенный загру...
Prolog Interprete...
Функции Visual Basic
C++ Builder в за...
Просмотр коммент...
Indy in Depth Глу...
Книга по Delphi (...
Х. М. Дейтел, П. ...
TMS
Пример клиента ФТ...

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97829
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10290
Turbo Pascal fo... 7373
Калькулятор [Ис... 5981
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Вызов функции conn...
Коммуникация
Объединение путей.2
Нагрузка на процес...
Архивация данных в...
Программа рисовани...
Университет
Центр безопасности...
Казино Вулкан — иг...
Абстрактная машина...
Аппаратура
Доступ к удаленной...
собственно создани...
Способы обнаружени...
Программы-генераторы
Иными словами,при ...
Установка подсветк...
Вывод в текущее по...
Программа для масс...
Запуск просмотрщика
Типы и разновиднос...
Пример создания та...
внести параметры в...
Более того, для ко...
Документы консорци...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?