X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Пункт обмена баннерами
M-seo
M-seo
Topic Starter сообщение 31.10.2008, 15:43; Ответить: M-seo
Сообщение #1


Раскрутка сайта и рекламирование своего ресурса — обычная унылая рутина. Один из способов заявить о своем сайте в Сети — активно обмениваться баннерами с другими сайтами подобных тематик: считается, что это привлекает новых посетителей и повышает индекс цитирования вашего сайта. Но чего стоит размещение своего баннера на чужом сайте! Переписка с разработчиком, обмен ссылками и кодами баннеров, в придачу ко всему этому нужно постоянно проверять, все ли на месте и правильно ли прописан код. В свою очередь разработчику придется вручную изменять свои страницы и перезаливать их на сервер. Как только подумаешь обо всем этом, так сразу и тянет поискать альтернативные пути решения :-). А чего искать-то, если у нас под рукой PHP? Давайте разберемся, как автоматизировать всю эту рутину, тем самым избавив себя от множества лишних хлопот.

Подготовка базы данных

Для хранения ссылок и кодов баннеров вполне хватило бы текстового файла, но мы выберем более солидный вариант — работу с базами данных MySQL. Если вы еще плохо ориентируетесь в работе с MySQL, то можно воспользоваться вспомогательными программами, например, phpMyAdmin. В Denwer эта программа идет в стандартной комплектации. Ничего сложного мы затевать не собираемся, так что можно справиться и вручную. Для начала создадим БД, если она еще не создана:
CREATE DATABASE `banners`;


Назовем ее banners; если же у вас БД уже создана, то в дальнейшем тексте программы просто подставьте ее имя. Нам понадобится таблица с двумя полями:
CREATE TABLE `ban` (
`url` TEXT NOT NULL ,
`banner` TEXT NOT NULL
);

Таблица называется ban, она имеет два поля — url и banner. В первом будут храниться ссылки на сайты, а во втором — коды баннеров для соответствующих сайтов. Оба поля имеют текстовые типы и не могут быть нулевыми. Больше ничего делать не нужно, перейдем к работе с PHP-сценарием.

Форма

Для формы нам потребуется три поля ввода и, конечно же, кнопка для обработки формы. Допустим, для обмена баннерами нам нужно узнать адрес сайта, с которым будет происходить обмен, код их баннера, а также страницу, где у них на сайте расположен наш баннер. Начнем написание сценария с формы для ввода всех этих данных:
<?php

echo "
<form action=".$PHP_SELF." method=post>
<table border=0 align=center>
<tr>
<td align=right><b>Ссылка на ваш сайт: </b></td>
<td><input type=text name=linkToUrl size=50 value='http://'></td>
</tr>
<tr>
<td align=right><b>Ссылка на ваш баннер: </b></td>
<td><input type=text name=linkTo size=50 value='http://'></td>
</tr>
<tr>
<td><b>Ссылка на страницу с нашим банером: </b></td>
<td><input type=text name=linkOn size=50 value='http://'></td>
</tr>
</table>

<p align=center>
<input type=submit value=Готово>
</p>
</form>
";

Имя скрипту можете дать любое, так как в значении action формы мы указали переменную окружения $PHP_SELF, которая обозначает путь к выполняемому сценарию. Поля называются следующим образом: linkToUrl (ссылка на чужой сайт), linkTo (ссылка на их баннер), linkOn (cсылка на страницу с нашим баннером). Заполненная форма показана на рис. 1.


Обработчик скрипта

Сразу напишем код нашего баннера, чтобы в дальнейшем можно было осуществлять проверки его наличия на указанных сайтах. В переменную $banner_text занесем его значение:
$banner_text = '<a href="http://heel.net.ua" target="_blank"><img src="http://heel.net.ua/banner.gif" width="88" height="31" alt="Описание сайта"></a>';


Адреса и описание поменяете под свои данные. Теперь подключимся к нашей БД:
  $server_db = 'server';
  $user_db = 'root';
  $password_db = 'password';
  $name_db = 'banners';

  $db = mysql_connect($server_db, $user_db, $password_db);
  mysql_select_db($name_db);


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

Теперь обработаем передачу параметров сценарию — иначе говоря, то, что будет происходить, если кто-то захочет произвести обмен баннерами с нашим сайтом:
if (!empty($_POST['linkOn'])) //если передаются параметры
{
  $linkOn = $_POST['linkOn'];
//скачиваем содержимое страницы с нашим баннером
  $banner_page = @file_get_contents($linkOn);
//поиск кода нашего баннера на указанной странице
  $find = strpos($banner_page, $banner_text);
//если код присутствует на странице
  if ($find !== 0)
  {
  $err = 0; //контроль ошибок
//проверяем, нет ли уже такой ссылки в БД
  $zap = mysql_query('select * from ban;');
  for($i=0;$i<mysql_num_rows($zap);$i++)
  {
  $row = mysql_fetch_array($zap);
  if ($row['url'] == $linkToUrl)
  {
  echo 'Ссылка на ваш сайт уже размещена на странице нашего сайта!';
  $err = 1;
  break;
  }

  }
  if ($err != 1 )
  {
/* проверяем, совпадают ли адрес сайта и адрес страницы с нашим баннером */
  $state = strpos($linkOn,$linkToUrl);
  if ($state === false)
  {
  echo 'Адрес сайта и страницы с нашим баннером не совпадают!';
  }
  Else //если все без ошибок
  {
//добавляем информацию о новом сайте в БД
  mysql_query("INSERT INTO `ban` ( `url` , `banner` ) VALUES ('".$linkToUrl."', '".$linkTo."');");

//сообщаем об успешном добавлении
  echo '<p align=center><font color=red>Баннер успешно добавлен в систему</font></p>';
//пишем письмо на свой ящик о появлении нового баннера на сайте
  mail('heel@i.ua','NEW BANNER', 'На вашем сайте появился новый баннер!');
    }
   }
  }
  else
  echo 'Не удалось найти наш баннер у вас на сайте.';
}

Здесь происходит множество различных проверок на корректность указанной информации, а также на наличие нашего баннера на странице указанного сайта. Важно, чтобы наш баннер был размещен именно на том сайте, куда мы будем ссылаться — иначе любой желающий сможет указывать в поле с адресом страницу, на которой уже размещен наш баннер. Также необходимо проверять, не числится ли этот сайт уже в БД, иначе среди баннеров может получиться соотношение «один ко многим» :-).

Теперь осталось только сделать запрос к БД и вывести на страницу все баннеры, которые уже имеются в наличии и должны быть отображены на странице:
$zap = mysql_query('select * from ban;'); /* запрос на выборку данных из таблицы */
echo '<table border=0 align=center cellspacing=10><tr>';
//выводим данные в цикле по ячейкам таблицы
  for($i=0;$i<mysql_num_rows($zap);$i++)
  {
//заносим данные в массив
  $cur = mysql_fetch_array($zap);
  echo "<td><a href=".$cur['url']." target=_blank><img src='".$cur['banner']."' border=0 width=88 height=31></a></td>";
  }
echo '</tr></table>';
  mysql_close($db);
?>


Здесь мы подаем запрос на выборку всех данных с БД: select * from ban. Далее создаем таблицу и выводим баннеры в строку, установив расстояние между ними в 10 пикселей. В конце сценария закрываем соединение с БД и завершаем сценарий.

Заключение

Конечно же, наш скрипт не учитывает множество различных уловок. Проверка наличия баннера на чужом сайте довольно поверхностная. При желании ее можно обойти небольшой функцией, написанной на Java Script. Впрочем, вы можете потратить массу времени, написав множество защит от фреймов, стилей и всяких уловок на Java Script, но дырка все равно найдется, и кто-то обязательно ею воспользуется, если очень уж захочется. Давайте не будем забывать, что от подобных вещей никто не застрахован, и обмануть можно даже при обычном обмене, предваряемом перепиской по ICQ или e–mail. Пожалуй, можно посоветовать только одно: осуществлять ежемесячные или еженедельные проверки сайтов по баннерам, размещенным на вашей странице. Если вы совсем уж недоверчивы, то можете проверять правильность размещения своего баннера самостоятельно, после каждого письма на вашем ящике о размещении нового баннера. При необходимости можно составлять черные списки, в которых будут храниться адреса нарушителей. В сценарий обмена можно добавить дополнительную проверку, которая будет игнорировать сайты, когда-либо нарушившие оговоренные правила.
_______________________________________________
Автор статьи Сергей ПАРИЖСКИЙ


--------------------


Поблагодарили: (1)
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Виталий_Б
Виталий_Б
сообщение 3.11.2008, 16:50; Ответить: Виталий_Б
Сообщение #2


Можно было прямо в php файлах выложить скрипт=) Но всё равно спасибо! работает...

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Rebex.io – Ваша инновационная платформа для обмена криптовалюты!
1 Rebex 650 Вчера, 11:50
автор: Rebex
Открытая тема (нет новых ответов) Lumex.cc - обменный пункт электронных валют
2 Lumex 1209 16.4.2024, 12:28
автор: Lumex
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСовременный сервис для быстрого и безопасного обмена валют.
14 CryptoTims 4751 11.4.2024, 15:29
автор: CryptoTims
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыEasySwap.biz - свежий формат обмена
11 easyswap 4497 2.4.2024, 15:32
автор: easyswap
Открытая тема (нет новых ответов) Zombie.Cash - мультивалютный обменный пункт 24/7 | Меняем быстро, безопасно и выгодно
Криптовалютный обменник, большой опыт в обменах через SWIFT
8 ZombieCash 3609 12.3.2024, 22:13
автор: ZombieCash


 



RSS Текстовая версия Сейчас: 18.4.2024, 12:27
Дизайн