Виртуальный Брест
Главная Портал Форум Рассылки Контакт Для клиентов Статьи

АФФАБЕЛЬ - шаг к красоте
АФФАБЕЛЬ - шаг к красоте
 
Покупаешь у нас? Доставка в Брест!
Покупаешь у нас? Доставка в Брест!
 
Горные лыжи из Бреста
Горные лыжи из Бреста
 

Виртуальный хостинг - дом для вашего сайта - лучшее предложение в Бресте!


Полный список глав книги

Сервисы Интернет-магазина


Создавай свой проект в сети, и особенно это имеет отношение к Интернет-магазину, не стоит отказываться от дополнительных возможностей, которые открываются перед нами благодаря использованию динамических возможностей сайтов. Всегда приятно, когда посетитель ощущает постоянную работу и движение на сайте, а не месячной давности «новости» и «новинки». Но мы, как истинные программисты :-), можем позволить себе наработать материала немного вперед, и потом по мере поступления сроков, или просто по очереди, выдавать его посетителям.

Новинки в виде баннеров

Одна из наиболее часто используемых в этой области технологий, это новинки в виде баннеров. Тут два пути, и по которому из них идти, зависит от Вас.

Первый заключается в том, что изображения формируются на лету, используя какую-то готовую заготовку для подложки и несколько различных картинок для основной темы баннера. Кроме самой картинки, может присутствовать небольшой рекламный текст и возможно, цена. Разместить больше информации там, скорее всего, не получится. Зато ничто нам не мешает поставить на такой баннер ссылку, и в этом случае посетитель, если пожелает, без труда получит более полную информацию о товаре или услуге.

Второй путь - делать изображения уже готовыми, например, в пакете графического редактора, и выдавать их на экран посетителя по очереди, чередуя в зависимости оттого, что он (посетитель) просмотрел.

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

Для того, что бы была возможность работать с изображениями, в PHP предусмотрена специальная библиотеке GD, которая должна быть подключена к интерпретатору. Собственно, само подключение сводится к распаковке библиотеке GD в каталог для расширений PHP и включение поддержки ее в настроечном файле php.ini, расположенном в каталоге Windows.

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

Но, вернемся к нашим проблемам, и попробуем вместе их решить. Итак, задача в том, что бы вывести имеющиеся изображения по очереди на экран посетителю. Давайте посмотрим, как это может быть сделано. Условимся, что готовые баннеры лежат в каталоге «banner».

Первое, что нам надо сделать, это отсканировать каталог, где будут размещаться баннеры для показа. Сделать это просто, так как PHP предоставляет нам массу возможностей по работе с файловой системой сервера, где работает сайт. Вот пример:

$dir = opendir("banner/");

while($f = readdir($dir))

   {

if(!stristr($f,"..") and $f != ".")

{ $tt[] = $f; }

   } }

В этом отрезке кода мы пробегаем по выбранной директории, и все имена файлов, которые там имеются, заносим в массив $tt. Дальше можно работать уже не с директорией, так как это медленнее, а непосредственно с массивом, который будет содержать точную копию содержимого диска сервера (выбранной директории).

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

$tt1 = file ( "counter.php" );

$str = trim(str_replace ("\n","", $tt1[0]));

$str++;

if ($str >= count($tt) or $str < 0) { $str = 0; }

Итак, считываем файл с показаниями счетчика в массив, получаем из него первую строку (догадались, как можно сделать иначе?), предварительно обрезав в ней пробелы и переводы строк. Потом можно увеличить показания счетчика, и hgjdthbnm? Не вышло ли его значение за установленный предел. В нашем случае допустимые значения лежат в пределах от нуля до полной длинны массива, в котором хранятся имена файлов в директории с баннерами. И, если вышло, сбросить счетчик в ноль.

$fp = fopen("counter.php", "w");

if ($fp) { $fw = fwrite($fp, $str); fclose($fp); }

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

$str1 = trim(str_replace (".","~", $tt[$str]));

@list ($id_price, $id_ras) = split ("~", $str1);

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

If ($id_ras == “jpg” or $id_ras == “jpeg”) {

Если расширение очередного файла в каталоге подлежит обработке и выводу, то делаем это, если нет, ничего не делаем и пропускаем цикл.

Echo “<img border=0 src=banner/$tt[$str]>”; } else {

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

@$siluro++; }

Дело в том, что некоторые баннеры может понадобиться не выводить на экран. Это может быть, например, в связи с тем, что товара, который рекламирует баннер, нет в наличии, и сейчас мы попробуем заложить механизм влияния на такие события. Все, что нам надо, это еще несколько переменных. В самом начале этого кода надо поместить такие строчки:

$temp_siluro = @$siluro;

if (@!$siluro) {

После блока чтения списка файлов надо поставить закрывающую скобку, так как этот блок должен выполняться только один раз – тогда, когда переменная $siluro равна нулю.

А в самом конце – такие:

if (@$siluro != $temp_siluro and $siluro < 50) { include("mini.phtml"); }

Вы, наверное, уже догадались, что сам скрипт целиком должен располагаться в файле с именем «mini.phtml», и вызываться в нужном месте командой «include (“mini.phtml”);» Получается интересная ситуация. Скрипт обрабатывается, и если по какой-то причине вдруг оказывается, что баннер не выведен на экран, то программа вызывает сама себя! Это допустимо, и тут это демонстрируется. Таким образом, простой, и эффектный ход решает, казалось, очень сложную и невыполнимую задачу.

Читать еще...



Николай Прохоренок

Python 3 и PyQt. Разработка приложений
Описан базовый синтаксис языка Python: типы данных, операторы, условия, циклы, регулярные выражения, встроенные функции, объектно-ориентированное программирование, работа...

А. Гомер

XML и IE5. Справочник программиста
Опытному разработчику нужна своевременная информация о новых технологиях, желательно без ненужной рекламы и общих мест. Именно такую информацию предоставляет эта книга. Здесь...

Адам Фримен, Стивен Сандерсон

ASP.NET MVC 3 Framework с примерами на C# для профессионалов
ASP.NET MVC 3 Framework представляет собой последнюю версию веб-платформы ASP.NET от Microsoft. Она предлагает высокопроизводительную модель программирования, которая...

Джеф Раскин

Интерфейс: новые направления в проектировании компьютерных систем
Книга эта непростая и подойдет не каждому. Автор анализирует то, к чему мы все давно привыкли до автоматизма, и объясняет, что интерфейс многих современных программ далек от...

    Информация

Главная - переход на начало
Тарифы на Российский хостинг
Правила - что можно а что нет
Заказ - сделайте это сейчас
Выбор домена - найди свое имя
Регистрация домена - купить
Оплата - варианты для всех
Панель управления Россия
Панель управления Беларусь
Вопросы и ответы - информация
Разработка сайтов - сопровождение
Виртуальный Брест - портал
Контакт - обратная связь
Наш форум - пообщаемся?

Список доменов
в которых доступна бесплатная регистрация имен при покупке хостинга, а так же открытие поч- тового ящика:

Новости Бреста:

Второй порыв теплосетей в Бресте - двенадцать многоэтажных домов и один детский сад остались без тепла
Почти тонну мёда задержали налоговики при проверке в Бресте
Зарплата в конвертах в Бресте - видео
Трое жителей Кавказа в "поисках работы" забрались прямо в лес в пограничную зону
Профилактика квартирных краж - важно
Современный животноводческий комплекс на 1500 голов строится в СПК "Королевский" Кобринского района - фото
Результаты проходящей на территории Брестской области акции "Не упусти свой шанс"
Осенний месячник по наведению порядка на земле проходит на Брестчине - важно
В Лунинецком районе в водоеме нашли автомобиль с телом внутри
ГАИ: брестчанин решил стать маршрутчиком и в пьяном состоянии вез горожан

© Виртуальный Брест 2001 - 2009 Автор проекта: Андрей Кухарчик Дизайн: Partgraphic