Навигация
Главная
Поиск
Форум
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
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
Имитационное мо... 59260
Реклама
Сейчас на сайте
Гостей: 7
На сайте нет зарегистрированных пользователей

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

Моделирование процесса обработки заданий на вычислительном центре на GP...
База данных электронного документооборота на Delphi + бд Intebase
Моделирование ЭВМ на GPSS (три класса заданий) + Пояснительная записка

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Простая баннерная система 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 19:37:54 · 0 Комментариев · 5921 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Развивающийся фла...
Последние загруж...
Plasma
Программа рисует ...
Info
MiniTetris [Исход...
Delphi 2005 для .NET
32 урока по Delphi
DirHTMLReportBuil...
oTextrackBar
ComboBox97
Delphi 2005 для W...
Калькулятор [Исхо...
Tetris 2002
C# в кратком изло...
Создание отчетов ...
Время загрузки ...
Использование Lis...
Краснов М. - Open...
Delphi 7: Для про...

Топ загрузок
Приложение Клие... 100510
Delphi 7 Enterp... 89950
Converter AMR<-... 20090
GPSS World Stud... 14735
Borland C++Buil... 12617
Borland Delphi ... 8898
Turbo Pascal fo... 7088
Калькулятор [Ис... 5100
Visual Studio 2... 5016
FreeSMS v1.3.1 3552
Случайные статьи
Выбор фонового рис...
Регистрация доменн...
Поле CIST INTERNAL...
Все идентификаторы...
Параметры запроса ...
Как получить досту...
Понятие о создании...
Загрузить/скачать ...
Различные ограниче...
Основные принципы ...
Понятие "область п...
а: определение эфф...
Наследование конк...
Параметризация спи...
Создание восстанов...
Благодарности
Форматирование на ...
Увлекательные игры
Вычисление конечны...
Обработка результатов
сложение AddMoney ()
Ввод-вывод и драйв...
ЭЛЕМЕНТЫ ПРОЦЕДУРЫ...
Процедур согласова...
Основы сетевой рек...
Статистика



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


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