Навигация
Главная
Поиск
Форум
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
Реклама
Сейчас на сайте
Гостей: 5
На сайте нет зарегистрированных пользователей

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

Создание последовательности окон и передвижение окон по экрану на Turbo ...
Программа тестирования (тест) - вступительные экзамены (математика, физи...
База данных электронного документооборота на Delphi + бд Intebase

Простая баннерная система 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 Комментариев · 6846 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Delphi на примерах
isoCanvas (Редакт...
Иллюстрированный ...
Самоучитель C++
SynEdit
База данных фильм...
Архив значков
Ehlib
Усложнённый кальк...
iComm v.6.1 - выв...
Основы программир...
Изучаем Ассемблер
CLR via C#
Сапёр
IMtale
DFileDeleter
Пятнашки и крести...
Паскаль и Дельфи....
Разработка распре...
ЯЗЫК ПРОГРАММИРОВ...

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97836
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10291
Turbo Pascal fo... 7374
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Копия установочног...
Основная задача. ...
Фантомные файлы. 2
Настройка сервера ...
Культура отношения
Задачи клиентского...
Группы с ограничен...
Illegal assignment
За что гемблеры по...
Интернет-ресурсы, ...
ЭТИКА РАЗРАБОТКИ П...
Совершенная красот...
1.5. Правила
Этот пример являет...
Быстрая публикация
Windows Server vNe...
Регулярные выражения
InfoSeek Express 2.2
Программа подписыв...
Обозначения
Вулкан Ставка
Разборка приставки...
Команды управления...
чтобы переданные п...
Процедура SetVisua...
Статистика



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


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